elracodelangela/0000755000176700017710000000000011073161126014417 5ustar essawireessawireelracodelangela/LICENSE.php0000755000176700017710000004263011061563507016230 0ustar essawireessawireGNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. elracodelangela/LICENSES.php0000755000176700017710000007375711061563507016371 0ustar essawireessawire Joomla! includes or is derivative of works distributed under the licenses listed below. This file includes the full text of the following licenses: ------------------------------------------------------------------ * BSD License * GNU Lesser General Public License (GNU LGPL) version 2.1 * MIT License * PHP License version 3.0 BSD License: --------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the "XML-RPC for PHP" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------ GNU LGPL: --------------------- GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ------------------------------------------------------------------ MIT License: --------------------- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------ PHP License: --------------------- The PHP License, version 3.0 Copyright (c) 1999 - 2006 The PHP Group. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name "PHP" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact group@php.net. 4. Products derived from this software may not be called "PHP", nor may "PHP" appear in their name, without prior written permission from group@php.net. You may indicate that your software works in conjunction with PHP by saying "Foo for PHP" instead of calling it "PHP Foo" or "phpfoo" 5. The PHP Group may publish revised and/or new versions of the license from time to time. Each version will be given a distinguishing version number. Once covered code has been published under a particular version of the license, you may always continue to use it under the terms of that version. You may also choose to use such covered code under the terms of any subsequent version of the license published by the PHP Group. No one other than the PHP Group has the right to modify the terms applicable to covered code created under this License. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes PHP, freely available from ". THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------elracodelangela/htaccess.txt0000755000176700017710000000514711061563454016776 0ustar essawireessawire## # @version $Id: htaccess.txt 10492 2008-07-02 06:38:28Z ircmaxell $ # @package Joomla # @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # @license http://www.gnu.org/copyleft/gpl.html GNU/GPL # Joomla! is Free Software ## ##################################################### # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE # # The line just below this section: 'Options +FollowSymLinks' may cause problems # with some server configurations. It is required for use of mod_rewrite, but may already # be set by your server administrator in a way that dissallows changing it in # your .htaccess file. If using it causes your server to error out, comment it out (add # to # beginning of line), reload your site in your browser and test your sef url's. If they work, # it has been set by your server administrator and you do not need it set here. # ##################################################### ## Can be commented out if causes errors, see notes above. Options +FollowSymLinks # # mod_rewrite in use RewriteEngine On ########## Begin - Rewrite rules to block out some common exploits ## If you experience problems on your site block out the operations listed below ## This attempts to block the most common type of exploit `attempts` to Joomla! # # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] # Block out any script that includes a
me->authorize( 'com_users', 'block user' )) { ?> me->authorize( 'com_users', 'email_events' )) { ?> user->get('id') ) { ?>
user->get('password')) : ?>
user->get('password')) : ?>
lists['gid']; ?>
lists['block']; ?>
lists['sendEmail']; ?>
user->get('registerDate'), '%Y-%m-%d %H:%M:%S');?>
user->getParameters(true); echo $params->render( 'params' ); ?>
contact ) { ?>

:
.


contact[0]->image) { ?>
contact[0]->name;?>
contact[0]->con_position;?>
contact[0]->telephone;?>
contact[0]->fax;?>
contact[0]->misc;?>
<?php echo JText::_( 'Contact' ); ?>
 



' Contact -> Manage Contacts' ); ?>'
me->authorize( 'com_users', 'email_events' )) { ?>
elracodelangela/administrator/components/com_users/views/user/tmpl/index.html0000755000176700017710000000005411061563415030555 0ustar essawireessawireelracodelangela/administrator/components/com_users/views/user/view.html.php0000755000176700017710000001041611061563415030235 0ustar essawireessawirebind($post); } if ( $user->get('id')) { $query = 'SELECT *' . ' FROM #__contact_details' . ' WHERE user_id = '.(int) $cid[0] ; $db->setQuery( $query ); $contact = $db->loadObjectList(); } else { $contact = NULL; // Get the default group id for a new user $config = &JComponentHelper::getParams( 'com_users' ); $newGrp = $config->get( 'new_usertype' ); $user->set( 'gid', $acl->get_group_id( $newGrp, null, 'ARO' ) ); } $userObjectID = $acl->get_object_id( 'users', $user->get('id'), 'ARO' ); $userGroups = $acl->get_object_groups( $userObjectID, 'ARO' ); $userGroupName = strtolower( $acl->get_group_name( $userGroups[0], 'ARO' ) ); $myObjectID = $acl->get_object_id( 'users', $myuser->get('id'), 'ARO' ); $myGroups = $acl->get_object_groups( $myObjectID, 'ARO' ); $myGroupName = strtolower( $acl->get_group_name( $myGroups[0], 'ARO' ) );; // ensure user can't add/edit group higher than themselves /* NOTE : This check doesn't work commented out for the time being if ( is_array( $myGroups ) && count( $myGroups ) > 0 ) { $excludeGroups = (array) $acl->get_group_children( $myGroups[0], 'ARO', 'RECURSE' ); } else { $excludeGroups = array(); } if ( in_array( $userGroups[0], $excludeGroups ) ) { echo 'not auth'; $mainframe->redirect( 'index.php?option=com_users', JText::_('NOT_AUTH') ); } */ /* if ( $userGroupName == 'super administrator' ) { // super administrators can't change $lists['gid'] = ''. JText::_( 'Super Administrator' ) .''; } else if ( $userGroupName == $myGroupName && $myGroupName == 'administrator' ) { */ if ( $userGroupName == $myGroupName && $myGroupName == 'administrator' ) { // administrators can't change each other $lists['gid'] = ''. JText::_( 'Administrator' ) .''; } else { $gtree = $acl->get_group_children_tree( null, 'USERS', false ); // remove users 'above' me //$i = 0; //while ($i < count( $gtree )) { // if ( in_array( $gtree[$i]->value, (array)$excludeGroups ) ) { // array_splice( $gtree, $i, 1 ); // } else { // $i++; // } //} $lists['gid'] = JHTML::_('select.genericlist', $gtree, 'gid', 'size="10"', 'value', 'text', $user->get('gid') ); } // build the html select list $lists['block'] = JHTML::_('select.booleanlist', 'block', 'class="inputbox" size="1"', $user->get('block') ); // build the html select list $lists['sendEmail'] = JHTML::_('select.booleanlist', 'sendEmail', 'class="inputbox" size="1"', $user->get('sendEmail') ); $this->assignRef('me', $me); $this->assignRef('lists', $lists); $this->assignRef('user', $user); $this->assignRef('contact', $contact); parent::display($tpl); } } elracodelangela/administrator/components/com_users/views/index.html0000755000176700017710000000005411061563415026623 0ustar essawireessawireelracodelangela/administrator/components/com_users/controller.php0000755000176700017710000003035611061563414026374 0ustar essawireessawireregisterTask( 'add' , 'display' ); $this->registerTask( 'edit' , 'display' ); $this->registerTask( 'apply', 'save' ); $this->registerTask( 'flogout', 'logout'); $this->registerTask( 'unblock', 'block' ); } /** * Displays a view */ function display( ) { switch($this->getTask()) { case 'add' : { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); JRequest::setVar( 'view', 'user' ); JRequest::setVar( 'edit', false ); } break; case 'edit' : { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); JRequest::setVar( 'view', 'user' ); JRequest::setVar( 'edit', true ); } break; } parent::display(); } /** * Saves the record */ function save() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $option = JRequest::getCmd( 'option'); // Initialize some variables $db = & JFactory::getDBO(); $me = & JFactory::getUser(); $acl =& JFactory::getACL(); $MailFrom = $mainframe->getCfg('mailfrom'); $FromName = $mainframe->getCfg('fromname'); $SiteName = $mainframe->getCfg('sitename'); // Create a new JUser object $user = new JUser(JRequest::getVar( 'id', 0, 'post', 'int')); $original_gid = $user->get('gid'); $post = JRequest::get('post'); $post['username'] = JRequest::getVar('username', '', 'post', 'username'); $post['password'] = JRequest::getVar('password', '', 'post', 'string', JREQUEST_ALLOWRAW); $post['password2'] = JRequest::getVar('password2', '', 'post', 'string', JREQUEST_ALLOWRAW); if (!$user->bind($post)) { $mainframe->enqueueMessage(JText::_('CANNOT SAVE THE USER INFORMATION'), 'message'); $mainframe->enqueueMessage($user->getError(), 'error'); //$mainframe->redirect( 'index.php?option=com_users', $user->getError() ); //return false; return $this->execute('edit'); } $objectID = $acl->get_object_id( 'users', $user->get('id'), 'ARO' ); $groups = $acl->get_object_groups( $objectID, 'ARO' ); $this_group = strtolower( $acl->get_group_name( $groups[0], 'ARO' ) ); if ( $user->get('id') == $me->get( 'id' ) && $user->get('block') == 1 ) { $msg = JText::_( 'You cannot block Yourself!' ); $mainframe->enqueueMessage($msg, 'message'); return $this->execute('edit'); } else if ( ( $this_group == 'super administrator' ) && $user->get('block') == 1 ) { $msg = JText::_( 'You cannot block a Super Administrator' ); $mainframe->enqueueMessage($msg, 'message'); return $this->execute('edit'); } else if ( ( $this_group == 'administrator' ) && ( $me->get( 'gid' ) == 24 ) && $user->get('block') == 1 ) { $msg = JText::_( 'WARNBLOCK' ); $mainframe->enqueueMessage($msg, 'message'); return $this->execute('edit'); } else if ( ( $this_group == 'super administrator' ) && ( $me->get( 'gid' ) != 25 ) ) { $msg = JText::_( 'You cannot edit a super administrator account' ); $mainframe->enqueueMessage($msg, 'message'); return $this->execute('edit'); } // Are we dealing with a new user which we need to create? $isNew = ($user->get('id') < 1); if (!$isNew) { // if group has been changed and where original group was a Super Admin if ( $user->get('gid') != $original_gid && $original_gid == 25 ) { // count number of active super admins $query = 'SELECT COUNT( id )' . ' FROM #__users' . ' WHERE gid = 25' . ' AND block = 0' ; $db->setQuery( $query ); $count = $db->loadResult(); if ( $count <= 1 ) { // disallow change if only one Super Admin exists $this->setRedirect( 'index.php?option=com_users', JText::_('WARN_ONLY_SUPER') ); return false; } } } /* * Lets save the JUser object */ if (!$user->save()) { $mainframe->enqueueMessage(JText::_('CANNOT SAVE THE USER INFORMATION'), 'message'); $mainframe->enqueueMessage($user->getError(), 'error'); return $this->execute('edit'); } /* * Time for the email magic so get ready to sprinkle the magic dust... */ if ($isNew) { $adminEmail = $me->get('email'); $adminName = $me->get('name'); $subject = JText::_('NEW_USER_MESSAGE_SUBJECT'); $message = sprintf ( JText::_('NEW_USER_MESSAGE'), $user->get('name'), $SiteName, JURI::root(), $user->get('username'), $user->password_clear ); if ($MailFrom != '' && $FromName != '') { $adminName = $FromName; $adminEmail = $MailFrom; } JUtility::sendMail( $adminEmail, $adminName, $user->get('email'), $subject, $message ); } // If updating self, load the new user object into the session if ($user->get('id') == $me->get('id')) { // Get an ACL object $acl = &JFactory::getACL(); // Get the user group from the ACL $grp = $acl->getAroGroup($user->get('id')); // Mark the user as logged in $user->set('guest', 0); $user->set('aid', 1); // Fudge Authors, Editors, Publishers and Super Administrators into the special access group if ($acl->is_group_child_of($grp->name, 'Registered') || $acl->is_group_child_of($grp->name, 'Public Backend')) { $user->set('aid', 2); } // Set the usertype based on the ACL group name $user->set('usertype', $grp->name); $session = &JFactory::getSession(); $session->set('user', $user); } switch ( $this->getTask() ) { case 'apply': $msg = JText::sprintf( 'Successfully Saved changes to User', $user->get('name') ); $this->setRedirect( 'index.php?option=com_users&view=user&task=edit&cid[]='. $user->get('id'), $msg ); break; case 'save': default: $msg = JText::sprintf( 'Successfully Saved User', $user->get('name') ); $this->setRedirect( 'index.php?option=com_users', $msg ); break; } } /** * Removes the record(s) from the database */ function remove() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $currentUser =& JFactory::getUser(); $acl =& JFactory::getACL(); $cid = JRequest::getVar( 'cid', array(), '', 'array' ); JArrayHelper::toInteger( $cid ); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select a User to delete', true ) ); } foreach ($cid as $id) { // check for a super admin ... can't delete them $objectID = $acl->get_object_id( 'users', $id, 'ARO' ); $groups = $acl->get_object_groups( $objectID, 'ARO' ); $this_group = strtolower( $acl->get_group_name( $groups[0], 'ARO' ) ); $success = false; if ( $this_group == 'super administrator' ) { $msg = JText::_( 'You cannot delete a Super Administrator' ); } else if ( $id == $currentUser->get( 'id' ) ) { $msg = JText::_( 'You cannot delete Yourself!' ); } else if ( ( $this_group == 'administrator' ) && ( $currentUser->get( 'gid' ) == 24 ) ) { $msg = JText::_( 'WARNDELETE' ); } else { $user =& JUser::getInstance((int)$id); $count = 2; if ( $user->get( 'gid' ) == 25 ) { // count number of active super admins $query = 'SELECT COUNT( id )' . ' FROM #__users' . ' WHERE gid = 25' . ' AND block = 0' ; $db->setQuery( $query ); $count = $db->loadResult(); } if ( $count <= 1 && $user->get( 'gid' ) == 25 ) { // cannot delete Super Admin where it is the only one that exists $msg = "You cannot delete this Super Administrator as it is the only active Super Administrator for your site"; } else { // delete user $user->delete(); $msg = ''; JRequest::setVar( 'task', 'remove' ); JRequest::setVar( 'cid', $id ); // delete user acounts active sessions $this->logout(); } } } $this->setRedirect( 'index.php?option=com_users', $msg); } /** * Cancels an edit operation */ function cancel( ) { $this->setRedirect( 'index.php?option=com_users' ); } /** * Disables the user account */ function block( ) { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $acl =& JFactory::getACL(); $currentUser =& JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(), '', 'array' ); $block = $this->getTask() == 'block' ? 1 : 0; JArrayHelper::toInteger( $cid ); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select a User to '.$this->getTask(), true ) ); } foreach ($cid as $id) { // check for a super admin ... can't delete them $objectID = $acl->get_object_id( 'users', $id, 'ARO' ); $groups = $acl->get_object_groups( $objectID, 'ARO' ); $this_group = strtolower( $acl->get_group_name( $groups[0], 'ARO' ) ); $success = false; if ( $this_group == 'super administrator' ) { $msg = JText::_( 'You cannot block a Super Administrator' ); } else if ( $id == $currentUser->get( 'id' ) ) { $msg = JText::_( 'You cannot block Yourself!' ); } else if ( ( $this_group == 'administrator' ) && ( $currentUser->get( 'gid' ) == 24 ) ) { $msg = JText::_( 'WARNBLOCK' ); } else { $user =& JUser::getInstance((int)$id); $count = 2; if ( $user->get( 'gid' ) == 25 ) { // count number of active super admins $query = 'SELECT COUNT( id )' . ' FROM #__users' . ' WHERE gid = 25' . ' AND block = 0' ; $db->setQuery( $query ); $count = $db->loadResult(); } if ( $count <= 1 && $user->get( 'gid' ) == 25 ) { // cannot delete Super Admin where it is the only one that exists $msg = "You cannot block this Super Administrator as it is the only active Super Administrator for your site"; } else { $user =& JUser::getInstance((int)$id); $user->block = $block; $user->save(); if($block) { JRequest::setVar( 'task', 'block' ); JRequest::setVar( 'cid', array($id) ); // delete user acounts active sessions $this->logout(); } } } } $this->setRedirect( 'index.php?option=com_users', $msg); } /** * Force log out a user */ function logout( ) { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); global $mainframe; $db =& JFactory::getDBO(); $task = $this->getTask(); $cids = JRequest::getVar( 'cid', array(), '', 'array' ); $client = JRequest::getVar( 'client', 0, '', 'int' ); $id = JRequest::getVar( 'id', 0, '', 'int' ); JArrayHelper::toInteger($cids); if ( count( $cids ) < 1 ) { $this->setRedirect( 'index.php?option=com_users', JText::_( 'User Deleted' ) ); return false; } foreach($cids as $cid) { $options = array(); if ($task == 'logout' || $task == 'block') { $options['clientid'][] = 0; //site $options['clientid'][] = 1; //administrator } else if ($task == 'flogout') { $options['clientid'][] = $client; } $mainframe->logout((int)$cid, $options); } $msg = JText::_( 'User Session Ended' ); switch ( $task ) { case 'flogout': $this->setRedirect( 'index.php', $msg ); break; case 'remove': case 'block': return; break; default: $this->setRedirect( 'index.php?option=com_users', $msg ); break; } } function contact() { $contact_id = JRequest::getVar( 'contact_id', '', 'post', 'int' ); $this->setRedirect( 'index.php?option=com_contact&atask=edit&cid[]='. $contact_id ); } } elracodelangela/administrator/components/com_users/users.xml0000755000176700017710000000077511061563415025366 0ustar essawireessawire User Manager Joomla! Project April 2006 (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 User Manager elracodelangela/administrator/components/com_users/config.xml0000755000176700017710000000202311061563415025456 0ustar essawireessawire elracodelangela/administrator/components/com_poll/0000755000176700017710000000000011061563562023277 5ustar essawireessawireelracodelangela/administrator/components/com_poll/poll.xml0000755000176700017710000000101711061563424024766 0ustar essawireessawire Polls Joomla! Project July 2004 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 This component manages polls elracodelangela/administrator/components/com_poll/index.html0000755000176700017710000000005411061563424025273 0ustar essawireessawireelracodelangela/administrator/components/com_poll/tables/0000755000176700017710000000000011061563562024551 5ustar essawireessawireelracodelangela/administrator/components/com_poll/tables/index.html0000755000176700017710000000005411061563424026545 0ustar essawireessawireelracodelangela/administrator/components/com_poll/tables/poll.php0000755000176700017710000000612011061563424026227 0ustar essawireessawireid = (int) $this->id; return $result; } /** * Overloaded check function * * @access public * @return boolean * @see JTable::check * @since 1.5 */ function check() { // check for valid name if (trim( $this->title ) == '') { $this->setError(JText::_( 'Your Poll must contain a title.' )); return false; } // check for valid lag $this->lag = intval( $this->lag ); if ($this->lag == 0) { $this->setError(JText::_( 'Your Poll must have a non-zero lag time.' )); return false; } if(empty($this->alias)) { $this->alias = $this->title; } $this->alias = JFilterOutput::stringURLSafe($this->alias); if(trim(str_replace('-','',$this->alias)) == '') { $datenow =& JFactory::getDate(); $this->alias = $datenow->toFormat("%Y-%m-%d-%H-%M-%S"); } return true; } // overloaded delete function function delete( $oid=null ) { $k = $this->_tbl_key; if ( $oid ) { $this->$k = intval( $oid ); } if ( parent::delete( $oid )) { $query = 'DELETE FROM #__poll_data' . ' WHERE pollid = '.(int) $this->$k ; $this->_db->setQuery( $query ); if ( !$this->_db->query() ) { $this->_error .= $this->_db->getErrorMsg() . "\n"; } $query = 'DELETE FROM #__poll_date' . ' WHERE poll_id = '.(int) $this->$k ; $this->_db->setQuery( $query ); if ( !$this->_db->query() ) { $this->_error .= $this->_db->getErrorMsg() . "\n"; } $query = 'DELETE from #__poll_menu' . ' WHERE pollid = '.(int) $this->$k ; $this->_db->setQuery( $query ); if ( !$this->_db->query() ) { $this->_error .= $this->_db->getErrorMsg() . "\n"; } return true; } return false; } } elracodelangela/administrator/components/com_poll/elements/0000755000176700017710000000000011061563562025113 5ustar essawireessawireelracodelangela/administrator/components/com_poll/elements/index.html0000755000176700017710000000005411061563424027107 0ustar essawireessawireelracodelangela/administrator/components/com_poll/elements/poll.php0000755000176700017710000000243211061563424026573 0ustar essawireessawiresetQuery( $query ); $options = $db->loadObjectList(); array_unshift($options, JHTML::_('select.option', '0', '- '.JText::_('Select Poll').' -', 'id', 'title')); return JHTML::_('select.genericlist', $options, ''.$control_name.'['.$name.']', 'class="inputbox"', 'id', 'title', $value, $control_name.$name ); } } elracodelangela/administrator/components/com_poll/views/0000755000176700017710000000000011061563562024434 5ustar essawireessawireelracodelangela/administrator/components/com_poll/views/index.html0000755000176700017710000000005411061563424026430 0ustar essawireessawireelracodelangela/administrator/components/com_poll/views/polls/0000755000176700017710000000000011061563562025565 5ustar essawireessawireelracodelangela/administrator/components/com_poll/views/polls/index.html0000755000176700017710000000005411061563424027561 0ustar essawireessawireelracodelangela/administrator/components/com_poll/views/polls/tmpl/0000755000176700017710000000000011061563562026541 5ustar essawireessawireelracodelangela/administrator/components/com_poll/views/polls/tmpl/index.html0000755000176700017710000000005411061563424030535 0ustar essawireessawireelracodelangela/administrator/components/com_poll/views/polls/tmpl/default.php0000755000176700017710000000762211061563424030705 0ustar essawireessawire
: lists['state']; ?>
items ); $i < $n; $i++) { $row = &$this->items[$i]; $link = JRoute::_( 'index.php?option=com_poll&view=poll&task=edit&cid[]='. $row->id ); $checked = JHTML::_('grid.checkedout', $row, $i ); $published = JHTML::_('grid.published', $row, $i ); ?> ">
lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?>
pagination->getListFooter(); ?>
pagination->getRowOffset( $i ); ?> user->get ('id'), $row->checked_out ) ) { echo $row->title; } else { ?> title; ?> voters; ?> numoptions; ?> lag; ?> id; ?>
elracodelangela/administrator/components/com_poll/views/polls/view.html.php0000755000176700017710000000626311061563424030222 0ustar essawireessawiregetUserStateFromRequest( "$option.filter_order", 'filter_order', 'm.id', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( "$option.filter_order_Dir", 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( "$option.filter_state", 'filter_state', '', 'word' ); $search = $mainframe->getUserStateFromRequest( "$option.search", 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); $where = array(); if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'm.published = 1'; } else if ($filter_state == 'U' ) { $where[] = 'm.published = 0'; } } if ($search) { $where[] = 'LOWER(m.title) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir; $query = 'SELECT COUNT(m.id)' . ' FROM #__polls AS m' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pagination = new JPagination( $total, $limitstart, $limit ); $query = 'SELECT m.*, u.name AS editor, COUNT(d.id) AS numoptions' . ' FROM #__polls AS m' . ' LEFT JOIN #__users AS u ON u.id = m.checked_out' . ' LEFT JOIN #__poll_data AS d ON d.pollid = m.id AND d.text <> ""' . $where . ' GROUP BY m.id' . $orderby ; $db->setQuery( $query, $pagination->limitstart, $pagination->limit ); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; $this->assignRef('user', JFactory::getUser()); $this->assignRef('lists', $lists); $this->assignRef('items', $rows); $this->assignRef('pagination', $pagination); parent::display($tpl); } }elracodelangela/administrator/components/com_poll/views/poll/0000755000176700017710000000000011061563562025402 5ustar essawireessawireelracodelangela/administrator/components/com_poll/views/poll/index.html0000755000176700017710000000005411061563424027376 0ustar essawireessawireelracodelangela/administrator/components/com_poll/views/poll/tmpl/0000755000176700017710000000000011061563562026356 5ustar essawireessawireelracodelangela/administrator/components/com_poll/views/poll/tmpl/form.php0000755000176700017710000001014211061563424030030 0ustar essawireessawire [ ' . $text.' ]' ); JToolBarHelper::Preview('index.php?option=com_poll&controller=poll&cid[]='.$cid[0]); JToolBarHelper::save(); JToolBarHelper::apply(); if ($edit) { // for existing items the button is renamed `close` JToolBarHelper::cancel( 'cancel', 'Close' ); } else { JToolBarHelper::cancel(); } JToolBarHelper::help( 'screen.polls.edit' ); ?> poll, ENT_QUOTES ); ?>
: poll->published ); ?>
options ); $i < $n; $i++ ) { ?>
elracodelangela/administrator/components/com_poll/views/poll/tmpl/index.html0000755000176700017710000000005411061563424030352 0ustar essawireessawireelracodelangela/administrator/components/com_poll/views/poll/tmpl/default.php0000755000176700017710000000143511061563424030516 0ustar essawireessawire
options as $option) { if ($option->text <> "") {?>
poll->title; ?>
text; ?>
  
elracodelangela/administrator/components/com_poll/views/poll/view.html.php0000755000176700017710000000365311061563424030037 0ustar essawireessawireload( $uid ); // fail if checked out not by 'me' if ($poll->isCheckedOut( $user->get('id') )) { $msg = JText::sprintf( 'DESCBEINGEDITTED', JText::_( 'The poll' ), $poll->title ); $this->setRedirect( 'index.php?option='. $option, $msg ); } if ($poll->id == 0) { // defaults $row->published = 1; } $options = array(); if ($edit) { $poll->checkout( $user->get('id') ); $query = 'SELECT id, text' . ' FROM #__poll_data' . ' WHERE pollid = '.(int) $uid . ' ORDER BY id' ; $db->setQuery($query); $options = $db->loadObjectList(); } else { $poll->lag = 3600*24; } $this->assignRef('poll', $poll); $this->assignRef('options', $options); parent::display($tpl); } }elracodelangela/administrator/components/com_poll/poll.php0000755000176700017710000000211711061563424024757 0ustar essawireessawireauthorize( 'com_poll', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } require_once( JPATH_COMPONENT.DS.'controller.php' ); // Set the table directory JTable::addIncludePath( JPATH_COMPONENT.DS.'tables' ); // Create the controller $controller = new PollController( ); $controller->execute( JRequest::getCmd( 'task' ) ); $controller->redirect();elracodelangela/administrator/components/com_poll/controller.php0000755000176700017710000001234111061563423026173 0ustar essawireessawireregisterTask( 'apply', 'save'); $this->registerTask( 'unpublish', 'publish'); $this->registerTask( 'preview', 'display'); $this->registerTask( 'edit', 'display'); $this->registerTask( 'add' , 'display' ); } function display( ) { switch($this->getTask()) { case 'add' : { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); JRequest::setVar( 'view', 'poll' ); JRequest::setVar( 'edit', false ); } break; case 'edit' : { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); JRequest::setVar( 'view', 'poll' ); JRequest::setVar( 'edit', true ); } break; case 'preview' : { JRequest::setVar( 'tmpl', 'component' ); JRequest::setVar( 'view', 'poll' ); } break; } //Set the default view, just in case $view = JRequest::getCmd('view'); if(empty($view)) { JRequest::setVar('view', 'polls'); }; parent::display(); } function save() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); // save the poll parent information $row =& JTable::getInstance('poll', 'Table'); $post = JRequest::get( 'post' ); if (!$row->bind( $post )) { JError::raiseError(500, $row->getError() ); } $isNew = ($row->id == 0); if (!$row->check()) { JError::raiseError(500, $row->getError() ); } if (!$row->store()) { JError::raiseError(500, $row->getError() ); } $row->checkin(); // save the poll options $options = JArrayHelper::getValue( $post, 'polloption', array(), 'array' ); foreach ($options as $i=>$text) { $text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8'); if ($isNew) { $obj = new stdClass(); $obj->pollid = (int)$row->id; $obj->text = $text; $db->insertObject('#__poll_data', $obj); } else { $obj = new stdClass(); $obj->id = (int)$i; $obj->text = $text; $db->updateObject('#__poll_data', $obj, 'id'); } } switch ($this->_task) { case 'apply': $msg = JText::_( 'Changes to Poll saved' ); $link = 'index.php?option=com_poll&view=poll&task=edit&cid[]='. $row->id .''; break; case 'save': default: $msg = JText::_( 'Poll saved' ); $link = 'index.php?option=com_poll'; break; } $this->setRedirect($link); } function remove() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), '', 'array' ); JArrayHelper::toInteger($cid); $msg = ''; for ($i=0, $n=count($cid); $i < $n; $i++) { $poll =& JTable::getInstance('poll', 'Table'); if (!$poll->delete( $cid[$i] )) { $msg .= $poll->getError(); } } $this->setRedirect( 'index.php?option=com_poll', $msg ); } /** * Publishes or Unpublishes one or more records * @param array An array of unique category id numbers * @param integer 0 if unpublishing, 1 if publishing * @param string The current url option */ function publish() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(), '', 'array' ); $publish = ( $this->getTask() == 'publish' ? 1 : 0 ); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { $action = $publish ? 'publish' : 'unpublish'; JError::raiseError(500, JText::_( 'Select an item to' .$action, true ) ); } $cids = implode( ',', $cid ); $query = 'UPDATE #__polls' . ' SET published = ' . (int) $publish . ' WHERE id IN ( '. $cids .' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id').' ) )' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } if (count( $cid ) == 1) { $row =& JTable::getInstance('poll', 'Table'); $row->checkin( $cid[0] ); } $mainframe->redirect( 'index.php?option=com_poll' ); } function cancel() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $id = JRequest::getVar( 'id', 0, '', 'int' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('poll', 'Table'); $row->checkin( $id ); $this->setRedirect( 'index.php?option=com_poll' ); } }elracodelangela/administrator/components/com_plugins/0000755000176700017710000000000011061563560024010 5ustar essawireessawireelracodelangela/administrator/components/com_plugins/plugins.xml0000755000176700017710000000100511061563416026212 0ustar essawireessawire Plugin Manager Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Plugin Manager elracodelangela/administrator/components/com_plugins/controllers/0000755000176700017710000000000011061563560026356 5ustar essawireessawireelracodelangela/administrator/components/com_plugins/controllers/index.html0000755000176700017710000000005411061563416030355 0ustar essawireessawireelracodelangela/administrator/components/com_plugins/plugins.php0000755000176700017710000000201711061563416026205 0ustar essawireessawireauthorize( 'com_plugins', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } require_once( JPATH_COMPONENT.DS.'controller.php' ); // Create the controller $controller = new PluginsController( ); $controller->execute( JRequest::getCmd( 'task' ) ); $controller->redirect();elracodelangela/administrator/components/com_plugins/index.html0000755000176700017710000000005411061563416026007 0ustar essawireessawireelracodelangela/administrator/components/com_plugins/views/0000755000176700017710000000000011061563560025145 5ustar essawireessawireelracodelangela/administrator/components/com_plugins/views/plugin/0000755000176700017710000000000011061563560026443 5ustar essawireessawireelracodelangela/administrator/components/com_plugins/views/plugin/index.html0000755000176700017710000000005411061563416030442 0ustar essawireessawireelracodelangela/administrator/components/com_plugins/views/plugin/tmpl/0000755000176700017710000000000011061563560027417 5ustar essawireessawireelracodelangela/administrator/components/com_plugins/views/plugin/tmpl/form.php0000755000176700017710000001114411061563416031077 0ustar essawireessawire [' .JText::_('Edit'). ']', 'plugin.png' ); JToolBarHelper::save(); JToolBarHelper::apply(); JToolBarHelper::cancel( 'cancel', 'Close' ); JToolBarHelper::help( 'screen.plugins.edit' ); ?> plugin, ENT_QUOTES, '' ); ?> plugin->nameA = ''; if ( $this->plugin->id ) { $row->nameA = '[ '. $this->plugin->name .' ]'; } ?>
: lists['published']; ?>
plugin->folder; ?>
.php
lists['access']; ?>
: lists['ordering']; ?>
: plugin->description ); ?>
true)); echo $pane->startPane('plugin-pane'); echo $pane->startPanel(JText :: _('Plugin Parameters'), 'param-page'); if($output = $this->params->render('params')) : echo $output; else : echo "
".JText::_('There are no parameters for this item')."
"; endif; echo $pane->endPanel(); if ($this->params->getNumParams('advanced')) { echo $pane->startPanel(JText :: _('Advanced Parameters'), "advanced-page"); if($output = $this->params->render('params', 'advanced')) : echo $output; else : echo "
".JText::_('There are no advanced parameters for this item')."
"; endif; echo $pane->endPanel(); } if ($this->params->getNumParams('legacy')) { echo $pane->startPanel(JText :: _('Legacy Parameters'), "legacy-page"); if($output = $this->params->render('params', 'legacy')) : echo $output; else : echo "
".JText::_('There are no legacy parameters for this item')."
"; endif; echo $pane->endPanel(); } echo $pane->endPane(); ?>
elracodelangela/administrator/components/com_plugins/views/plugin/tmpl/index.html0000755000176700017710000000005411061563416031416 0ustar essawireessawireelracodelangela/administrator/components/com_plugins/views/plugin/view.html.php0000755000176700017710000000700711061563416031100 0ustar essawireessawireload( $cid[0] ); // fail if checked out not by 'me' if ($row->isCheckedOut( $user->get('id') )) { $msg = JText::sprintf( 'DESCBEINGEDITTED', JText::_( 'The plugin' ), $row->title ); $this->setRedirect( 'index.php?option='. $option .'&client='. $client, $msg, 'error' ); return false; } if ($client == 'admin') { $where = "client_id='1'"; } else { $where = "client_id='0'"; } // get list of groups if ($row->access == 99 || $row->client_id == 1) { $lists['access'] = 'Administrator'; } else { // build the html select list for the group access $lists['access'] = JHTML::_('list.accesslevel', $row ); } if ($cid[0]) { $row->checkout( $user->get('id') ); if ( $row->ordering > -10000 && $row->ordering < 10000 ) { // build the html select list for ordering $query = 'SELECT ordering AS value, name AS text' . ' FROM #__plugins' . ' WHERE folder = '.$db->Quote($row->folder) . ' AND published > 0' . ' AND '. $where . ' AND ordering > -10000' . ' AND ordering < 10000' . ' ORDER BY ordering' ; $order = JHTML::_('list.genericordering', $query ); $lists['ordering'] = JHTML::_('select.genericlist', $order, 'ordering', 'class="inputbox" size="1"', 'value', 'text', intval( $row->ordering ) ); } else { $lists['ordering'] = ''. JText::_( 'This plugin cannot be reordered' ); } $lang =& JFactory::getLanguage(); $lang->load( 'plg_' . trim( $row->folder ) . '_' . trim( $row->element ), JPATH_ADMINISTRATOR ); $data = JApplicationHelper::parseXMLInstallFile(JPATH_SITE . DS . 'plugins'. DS .$row->folder . DS . $row->element .'.xml'); $row->description = $data['description']; } else { $row->folder = ''; $row->ordering = 999; $row->published = 1; $row->description = ''; } $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published ); // get params definitions $params = new JParameter( $row->params, JApplicationHelper::getPath( 'plg_xml', $row->folder.DS.$row->element ), 'plugin' ); $this->assignRef('lists', $lists); $this->assignRef('plugin', $row); $this->assignRef('params', $params); parent::display($tpl); } }elracodelangela/administrator/components/com_plugins/views/plugins/0000755000176700017710000000000011061563560026626 5ustar essawireessawireelracodelangela/administrator/components/com_plugins/views/plugins/index.html0000755000176700017710000000005411061563416030625 0ustar essawireessawireelracodelangela/administrator/components/com_plugins/views/plugins/tmpl/0000755000176700017710000000000011061563560027602 5ustar essawireessawireelracodelangela/administrator/components/com_plugins/views/plugins/tmpl/index.html0000755000176700017710000000005411061563416031601 0ustar essawireessawireelracodelangela/administrator/components/com_plugins/views/plugins/tmpl/default.php0000755000176700017710000001152211061563416031743 0ustar essawireessawire items; ?>
: lists['type']; echo $this->lists['state']; ?>
client .'&task=edit&cid[]='. $row->id ); $access = JHTML::_('grid.access', $row, $i ); $checked = JHTML::_('grid.checkedout', $row, $i ); $published = JHTML::_('grid.published', $row, $i ); $ordering = ($this->lists['order'] == 'p.folder'); ?> ">
lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?>
pagination->getListFooter(); ?>
pagination->getRowOffset( $i ); ?> user->get ('id'), $row->checked_out ) ) { echo $row->name; } else { ?> name; ?> pagination->orderUpIcon( $i, ($row->folder == @$rows[$i-1]->folder && $row->ordering > -10000 && $row->ordering < 10000), 'orderup', 'Move Up', $ordering ); ?> pagination->orderDownIcon( $i, $n, ($row->folder == @$rows[$i+1]->folder && $row->ordering > -10000 && $row->ordering < 10000), 'orderdown', 'Move Down', $ordering ); ?> class="text_area" style="text-align: center" /> folder;?> element;?> id;?>
elracodelangela/administrator/components/com_plugins/views/plugins/view.html.php0000755000176700017710000001041211061563416031255 0ustar essawireessawiregetUserStateFromRequest( "$option.$client.filter_order", 'filter_order', 'p.folder', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( "$option.$client.filter_order_Dir", 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( "$option.$client.filter_state", 'filter_state', '', 'word' ); $filter_type = $mainframe->getUserStateFromRequest( "$option.$client.filter_type", 'filter_type', 1, 'cmd' ); $search = $mainframe->getUserStateFromRequest( "$option.$client.search", 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); $where = ''; if ($client == 'admin') { $where[] = 'p.client_id = 1'; $client_id = 1; } else { $where[] = 'p.client_id = 0'; $client_id = 0; } // used by filter if ( $filter_type != 1 ) { $where[] = 'p.folder = '.$db->Quote($filter_type); } if ( $search ) { $where[] = 'LOWER( p.name ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'p.published = 1'; } else if ($filter_state == 'U' ) { $where[] = 'p.published = 0'; } } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '.$filter_order .' '. $filter_order_Dir .', p.ordering ASC'; // get the total number of records $query = 'SELECT COUNT(*)' . ' FROM #__plugins AS p' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pagination = new JPagination( $total, $limitstart, $limit ); $query = 'SELECT p.*, u.name AS editor, g.name AS groupname' . ' FROM #__plugins AS p' . ' LEFT JOIN #__users AS u ON u.id = p.checked_out' . ' LEFT JOIN #__groups AS g ON g.id = p.access' . $where . ' GROUP BY p.id' . $orderby ; $db->setQuery( $query, $pagination->limitstart, $pagination->limit ); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } // get list of Positions for dropdown filter $query = 'SELECT folder AS value, folder AS text' . ' FROM #__plugins' . ' WHERE client_id = '.(int) $client_id . ' GROUP BY folder' . ' ORDER BY folder' ; $types[] = JHTML::_('select.option', 1, '- '. JText::_( 'Select Type' ) .' -' ); $db->setQuery( $query ); $types = array_merge( $types, $db->loadObjectList() ); $lists['type'] = JHTML::_('select.genericlist', $types, 'filter_type', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'value', 'text', $filter_type ); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; $this->assign('client', $client); $this->assignRef('user', JFactory::getUser()); $this->assignRef('lists', $lists); $this->assignRef('items', $rows); $this->assignRef('pagination', $pagination); parent::display($tpl); } }elracodelangela/administrator/components/com_plugins/controller.php0000755000176700017710000001633711061563415026720 0ustar essawireessawireregisterTask( 'apply', 'save'); $this->registerTask( 'unpublish', 'publish'); $this->registerTask( 'edit' , 'display' ); $this->registerTask( 'add' , 'display' ); $this->registerTask( 'orderup' , 'order' ); $this->registerTask( 'orderdown' , 'order' ); $this->registerTask( 'accesspublic' , 'access' ); $this->registerTask( 'accessregisterd' , 'access' ); $this->registerTask( 'acessspecial' , 'access' ); } function display( ) { switch($this->getTask()) { case 'add' : case 'edit' : { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); JRequest::setVar( 'view', 'plugin' ); } break; } parent::display(); } function save() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('plugin'); $task = $this->getTask(); $client = JRequest::getWord( 'filter_client', 'site' ); if (!$row->bind(JRequest::get('post'))) { JError::raiseError(500, $row->getError() ); } if (!$row->check()) { JError::raiseError(500, $row->getError() ); } if (!$row->store()) { JError::raiseError(500, $row->getError() ); } $row->checkin(); if ($client == 'admin') { $where = "client_id=1"; } else { $where = "client_id=0"; } $row->reorder( 'folder = '.$db->Quote($row->folder).' AND ordering > -10000 AND ordering < 10000 AND ( '.$where.' )' ); switch ( $task ) { case 'apply': $msg = JText::sprintf( 'Successfully Saved changes to Plugin', $row->name ); $this->setRedirect( 'index.php?option=com_plugins&view=plugin&client='. $client .'&task=edit&cid[]='. $row->id, $msg ); break; case 'save': default: $msg = JText::sprintf( 'Successfully Saved Plugin', $row->name ); $this->setRedirect( 'index.php?option=com_plugins&client='. $client, $msg ); break; } } function publish( ) { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $publish = ( $this->getTask() == 'publish' ? 1 : 0 ); $client = JRequest::getWord( 'filter_client', 'site' ); if (count( $cid ) < 1) { $action = $publish ? JText::_( 'publish' ) : JText::_( 'unpublish' ); JError::raiseError(500, JText::_( 'Select a plugin to '.$action ) ); } $cids = implode( ',', $cid ); $query = 'UPDATE #__plugins SET published = '.(int) $publish . ' WHERE id IN ( '.$cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id').' ))' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } if (count( $cid ) == 1) { $row =& JTable::getInstance('plugin'); $row->checkin( $cid[0] ); } $this->setRedirect( 'index.php?option=com_plugins&client='. $client ); } function cancel( ) { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $client = JRequest::getWord( 'filter_client', 'site' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('plugin'); $row->bind(JRequest::get('post')); $row->checkin(); $this->setRedirect( JRoute::_( 'index.php?option=com_plugins&client='. $client, false ) ); } function order( ) { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $uid = $cid[0]; $inc = ( $this->getTask() == 'orderup' ? -1 : 1 ); $client = JRequest::getWord( 'filter_client', 'site' ); // Currently Unsupported if ($client == 'admin') { $where = "client_id = 1"; } else { $where = "client_id = 0"; } $row =& JTable::getInstance('plugin'); $row->load( $uid ); $row->move( $inc, 'folder='.$db->Quote($row->folder).' AND ordering > -10000 AND ordering < 10000 AND ('.$where.')' ); $this->setRedirect( 'index.php?option=com_plugins' ); } function access( ) { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $uid = $cid[0]; $access = $this->getTask(); $db =& JFactory::getDBO(); switch ( $access ) { case 'accesspublic': $access = 0; break; case 'accessregistered': $access = 1; break; case 'accessspecial': $access = 2; break; } $row =& JTable::getInstance('plugin'); $row->load( $uid ); $row->access = $access; if ( !$row->check() ) { return $row->getError(); } if ( !$row->store() ) { return $row->getError(); } $this->setRedirect( 'index.php?option=com_plugins' ); } function saveorder( ) { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $db =& JFactory::getDBO(); $total = count( $cid ); $order = JRequest::getVar( 'order', array(0), 'post', 'array' ); JArrayHelper::toInteger($order, array(0)); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $row =& JTable::getInstance('plugin'); $conditions = array(); // update ordering values for ( $i=0; $i < $total; $i++ ) { $row->load( (int) $cid[$i] ); if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { JError::raiseError(500, $db->getErrorMsg() ); } // remember to updateOrder this group $condition = 'folder = '.$db->Quote($row->folder).' AND ordering > -10000 AND ordering < 10000 AND client_id = ' . (int) $row->client_id; $found = false; foreach ( $conditions as $cond ) { if ($cond[1]==$condition) { $found = true; break; } } if (!$found) $conditions[] = array($row->id, $condition); } } // execute updateOrder for each group foreach ( $conditions as $cond ) { $row->load( $cond[0] ); $row->reorder( $cond[1] ); } $msg = JText::_( 'New ordering saved' ); $this->setRedirect( 'index.php?option=com_plugins', $msg ); } }elracodelangela/administrator/components/com_svmap/0000755000176700017710000000000011074453344023457 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/uninstall.sql0000644000176700017710000000062511074453335026214 0ustar essawireessawireDROP TABLE IF EXISTS `#__svmap_business`; DROP TABLE IF EXISTS `#__svmap_business_link`; DROP TABLE IF EXISTS `#__svmap_business_members`; DROP TABLE IF EXISTS `#__svmap_business_options`; DROP TABLE IF EXISTS `#__svmap_config`; DROP TABLE IF EXISTS `#__svmap_members`; DROP TABLE IF EXISTS `#__svmap_members_link`; DROP TABLE IF EXISTS `#__svmap_options`; DROP TABLE IF EXISTS `#__svmap_markers`;elracodelangela/administrator/components/com_svmap/svmap.css0000644000176700017710000000030611074453335025316 0ustar essawireessawirediv.header.icon-48-svmap { background: url(images/logo-48.png) no-repeat left; color:#58ac25; } .icon-16-svmap { background: url(images/logo-16.png) no-repeat left; color:#58ac25; }elracodelangela/administrator/components/com_svmap/install.sql0000644000176700017710000001570711074453335025660 0ustar essawireessawireDROP TABLE IF EXISTS `#__svmap_business`; CREATE TABLE `#__svmap_business` ( `id` int(11) NOT NULL auto_increment, `user_id` int(11) NOT NULL, `name` text, `address1` text, `address2` text, `address3` text, `postcode` varchar(255) default NULL, `city` text, `country` text, `phone` varchar(255) default NULL, `fax` varchar(255) default NULL, `email` varchar(255) default NULL, `description` text, `marker` varchar(255) NOT NULL default 'http://www.google.com/mapfiles/marker.png', `lat` varchar(255) default NULL, `lon` varchar(255) default NULL, `type` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM ; DROP TABLE IF EXISTS `#__svmap_business_link`; CREATE TABLE `#__svmap_business_link` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) default NULL, `address1` varchar(255) default NULL, `address2` varchar(255) default NULL, `address3` varchar(255) default NULL, `postcode` varchar(255) default NULL, `city` varchar(255) default NULL, `country` varchar(255) default NULL, `phone` varchar(255) default NULL, `fax` varchar(255) default NULL, `email` varchar(255) default NULL, `description` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM ; INSERT INTO `#__svmap_business_link` (`id`, `name`, `address1`, `address2`, `address3`, `postcode`, `city`, `country`, `phone`, `fax`, `email`, `description`) VALUES (1, '', '', '', '', '', '', '', '', '', '', ''); DROP TABLE IF EXISTS `#__svmap_business_members`; CREATE TABLE `#__svmap_business_members` ( `id_business` int(11) NOT NULL, `id_member` int(11) NOT NULL, `type` tinyint(1) NOT NULL default '0', KEY `id_business` (`id_business`,`id_member`) ) ENGINE=MyISAM; DROP TABLE IF EXISTS `#__svmap_business_options`; CREATE TABLE `#__svmap_business_options` ( `id_business` int(11) NOT NULL, `id_option` int(11) NOT NULL, KEY `id_business` (`id_business`,`id_option`) ) ENGINE=MyISAM; DROP TABLE IF EXISTS `#__svmap_config`; CREATE TABLE `#__svmap_config` ( `id` int(11) NOT NULL, `api_key` varchar(255) NOT NULL, `center` varchar(255) NOT NULL, `firstzoomlevel` varchar(255) NOT NULL, `secondzoomlevel` varchar(255) NOT NULL, `autoview` tinyint(1) NOT NULL, `maptype` text NOT NULL, `mapcontrol` varchar(255) NOT NULL, `overview` tinyint(1) NOT NULL, `dragging` tinyint(1) NOT NULL, `doubleclick` tinyint(1) NOT NULL, `scrollwheelzoom` tinyint(1) NOT NULL, `width` varchar(255) NOT NULL, `height` varchar(255) NOT NULL, `linkwith` tinyint(1) NOT NULL default '0', `linkas` tinyint(1) NOT NULL default '0', `direction` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM; INSERT INTO `#__svmap_config` (`id`, `api_key`, `center`, `firstzoomlevel`, `secondzoomlevel`, `autoview`, `maptype`, `mapcontrol`, `overview`, `dragging`, `doubleclick`, `scrollwheelzoom`, `width`, `height`, `linkwith`, `linkas`, `direction`) VALUES (1, 'ABQIAAAAvP-yKn0i9tK470Netg74XRRi_j0U6kJrkFvY4-OX2XYmEAa76BQT9ZElNPYCVUqoF5w2ub6uLMnxNA', '43.80505648558359,4.657677412033081', '4', '10', '1', 'G_NORMAL_MAP', 'GLargeMapControl()', 0, 0, 0, 0, '100%', '300px', 0, 0, 0); DROP TABLE IF EXISTS `#__svmap_markers`; CREATE TABLE `#__svmap_markers` ( `id` int(11) NOT NULL auto_increment, `name` text NOT NULL, `url` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM ; INSERT INTO `#__svmap_markers` (`id`, `name`, `url`) VALUES (1, 'marker', 'http://www.google.com/mapfiles/marker.png'), (2, 'dd-start', 'http://www.google.com/mapfiles/dd-start.png'), (3, 'dd-end', 'http://www.google.com/mapfiles/dd-end.png'), (4, 'markerA', 'http://www.google.com/mapfiles/markerA.png'), (5, 'markerB', 'http://www.google.com/mapfiles/markerB.png'), (6, 'markerC', 'http://www.google.com/mapfiles/markerC.png'), (7, 'markerD', 'http://www.google.com/mapfiles/markerD.png'), (8, 'markerE', 'http://www.google.com/mapfiles/markerE.png'), (9, 'markerF', 'http://www.google.com/mapfiles/markerF.png'), (10, 'markerG', 'http://www.google.com/mapfiles/markerG.png'), (11, 'markerH', 'http://www.google.com/mapfiles/markerH.png'), (12, 'markerI', 'http://www.google.com/mapfiles/markerI.png'), (13, 'markerJ', 'http://www.google.com/mapfiles/markerJ.png'), (14, 'markerK', 'http://www.google.com/mapfiles/markerK.png'), (15, 'markerL', 'http://www.google.com/mapfiles/markerL.png'), (16, 'markerM', 'http://www.google.com/mapfiles/markerM.png'), (17, 'markerN', 'http://www.google.com/mapfiles/markerN.png'), (18, 'markerO', 'http://www.google.com/mapfiles/markerO.png'), (19, 'markerP', 'http://www.google.com/mapfiles/markerP.png'), (20, 'markerQ', 'http://www.google.com/mapfiles/markerQ.png'), (21, 'markerR', 'http://www.google.com/mapfiles/markerR.png'), (22, 'markerS', 'http://www.google.com/mapfiles/markerS.png'), (23, 'markerT', 'http://www.google.com/mapfiles/markerT.png'), (24, 'markerU', 'http://www.google.com/mapfiles/markerU.png'), (25, 'markerV', 'http://www.google.com/mapfiles/markerV.png'), (26, 'markerW', 'http://www.google.com/mapfiles/markerW.png'), (27, 'markerX', 'http://www.google.com/mapfiles/markerX.png'), (28, 'markerY', 'http://www.google.com/mapfiles/markerY.png'), (29, 'markerZ', 'http://www.google.com/mapfiles/markerZ.png'), (30, 'purple', 'http://labs.google.com/ridefinder/images/mm_20_purple.png'), (31, 'yellow', 'http://labs.google.com/ridefinder/images/mm_20_yellow.png'), (32, 'blue', 'http://labs.google.com/ridefinder/images/mm_20_blue.png'), (33, 'white', 'http://labs.google.com/ridefinder/images/mm_20_white.png'), (34, 'green', 'http://labs.google.com/ridefinder/images/mm_20_green.png'), (35, 'red', 'http://labs.google.com/ridefinder/images/mm_20_red.png'), (36, 'black', 'http://labs.google.com/ridefinder/images/mm_20_black.png'), (37, 'orange', 'http://labs.google.com/ridefinder/images/mm_20_orange.png'), (38, 'gray', 'http://labs.google.com/ridefinder/images/mm_20_gray.png'), (39, 'brown', 'http://labs.google.com/ridefinder/images/mm_20_brown.png'); DROP TABLE IF EXISTS `#__svmap_members`; CREATE TABLE `#__svmap_members` ( `id` int(11) NOT NULL auto_increment, `first_name` text, `last_name` text, `phone` varchar(255) default NULL, `email` varchar(255) default NULL, `type` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM ; DROP TABLE IF EXISTS `#__svmap_members_link`; CREATE TABLE `#__svmap_members_link` ( `id` int(11) NOT NULL auto_increment, `first_name` varchar(255) default NULL, `last_name` varchar(255) default NULL, `phone` varchar(255) default NULL, `email` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM ; INSERT INTO `#__svmap_members_link` (`id`, `first_name`, `last_name`, `phone`, `email`) VALUES (1, '', '', '', ''); DROP TABLE IF EXISTS `#__svmap_options`; CREATE TABLE `#__svmap_options` ( `id` int(11) NOT NULL auto_increment, `value` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM ;elracodelangela/administrator/components/com_svmap/controllers/0000755000176700017710000000000011074453335026025 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/controllers/members.php0000644000176700017710000000314511074453335030173 0ustar essawireessawireregisterTask( 'add' , 'edit' ); } function display() { JRequest::setVar( 'view' , 'members'); JRequest::setVar( 'edit', false ); parent::display(); } function edit() { JRequest::setVar( 'view' , 'members'); JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); parent::display(); } function save() { $model = $this->getModel('members'); if ($model->store()) { $msg = JText::_( 'SVMAP_MEMBER_SAVED' ); } else { $msg = JText::_( 'SVMAP_MEMBER_SAVE_ERROR' ); } $link = 'index.php?option=com_svmap&controller=members'; $this->setRedirect($link,$msg); } function remove() { $model = $this->getModel('members'); if(!$model->delete()) { $msg = JText::_( 'SVMAP_MEMBER_REMOVE_ERROR' ); } else { $msg = JText::_( 'SVMAP_MEMBER_REMOVED' ); } $link = 'index.php?option=com_svmap&controller=members'; $this->setRedirect($link,$msg); } function cancel() { $link = 'index.php?option=com_svmap&controller=members'; $this->setRedirect($link); } } ?>elracodelangela/administrator/components/com_svmap/controllers/business.php0000644000176700017710000000316411074453335030375 0ustar essawireessawireregisterTask( 'add' , 'edit' ); } function display() { JRequest::setVar( 'view' , 'business'); JRequest::setVar( 'edit', false ); parent::display(); } function edit() { JRequest::setVar( 'view' , 'business'); JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); parent::display(); } function save() { $model = $this->getModel('business'); if ($model->store()) { $msg = JText::_( 'SVMAP_BUSINESS_SAVED' ); } else { $msg = JText::_( 'SVMAP_BUSINESS_SAVE_ERROR' ); } $link = 'index.php?option=com_svmap&controller=business'; $this->setRedirect($link,$msg); } function remove() { $model = $this->getModel('business'); if(!$model->delete()) { $msg = JText::_( 'SVMAP_BUSINESS_REMOVE_ERROR' ); } else { $msg = JText::_( 'SVMAP_BUSINESS_REMOVED' ); } $link = 'index.php?option=com_svmap&controller=business'; $this->setRedirect($link,$msg); } function cancel() { $link = 'index.php?option=com_svmap&controller=business'; $this->setRedirect($link); } } ?>elracodelangela/administrator/components/com_svmap/controllers/markers.php0000644000176700017710000000314611074453335030206 0ustar essawireessawireregisterTask( 'add' , 'edit' ); } function display() { JRequest::setVar( 'view' , 'markers'); JRequest::setVar( 'edit', false ); parent::display(); } function edit() { JRequest::setVar( 'view' , 'markers'); JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); parent::display(); } function save() { $model = $this->getModel('markers'); if ($model->store()) { $msg = JText::_( 'SVMAP_MARKER_SAVED' ); } else { $msg = JText::_( 'SVMAP_MARKER_SAVE_ERROR' ); } $link = 'index.php?option=com_svmap&controller=markers'; $this->setRedirect($link,$msg); } function remove() { $model = $this->getModel('markers'); if(!$model->delete()) { $msg = JText::_( 'SVMAP_MARKER_REMOVE_ERROR' ); } else { $msg = JText::_( 'SVMAP_MARKER_REMOVED' ); } $link = 'index.php?option=com_svmap&controller=markers'; $this->setRedirect($link,$msg); } function cancel() { $link = 'index.php?option=com_svmap&controller=markers'; $this->setRedirect($link); } } ?>elracodelangela/administrator/components/com_svmap/controllers/configuration.php0000644000176700017710000000165411074453335031413 0ustar essawireessawiregetModel('configuration'); if ($model->store()) { $msg = JText::_( 'SVMAP_CONFIGURATION_SAVED' ); } else { $msg = JText::_( 'SVMAP_CONFIGURATION_SAVE_ERROR' ); } $link = 'index.php?option=com_svmap&controller=configuration'; $this->setRedirect($link,$msg); } } ?>elracodelangela/administrator/components/com_svmap/controllers/link.php0000644000176700017710000000163411074453335027477 0ustar essawireessawiregetModel('link'); if ($model->store()) { $msg = JText::_( 'SVMAP_LINK_SAVED' ); } else { $msg = JText::_( 'SVMAP_LINK_SAVE_ERROR' ); } $link = 'index.php?option=com_svmap&controller=link'; $this->setRedirect($link,$msg); } } ?>elracodelangela/administrator/components/com_svmap/controllers/index.html0000644000176700017710000000000011074453335030010 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/controllers/options.php0000644000176700017710000000314611074453335030235 0ustar essawireessawireregisterTask( 'add' , 'edit' ); } function display() { JRequest::setVar( 'view' , 'options'); JRequest::setVar( 'edit', false ); parent::display(); } function edit() { JRequest::setVar( 'view' , 'options'); JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); parent::display(); } function save() { $model = $this->getModel('options'); if ($model->store()) { $msg = JText::_( 'SVMAP_OPTION_SAVED' ); } else { $msg = JText::_( 'SVMAP_OPTION_SAVE_ERROR' ); } $link = 'index.php?option=com_svmap&controller=options'; $this->setRedirect($link,$msg); } function remove() { $model = $this->getModel('options'); if(!$model->delete()) { $msg = JText::_( 'SVMAP_OPTION_REMOVE_ERROR' ); } else { $msg = JText::_( 'SVMAP_OPTION_REMOVED' ); } $link = 'index.php?option=com_svmap&controller=options'; $this->setRedirect($link,$msg); } function cancel() { $link = 'index.php?option=com_svmap&controller=options'; $this->setRedirect($link); } } ?>elracodelangela/administrator/components/com_svmap/svmap.js0000644000176700017710000000113211074453335025140 0ustar essawireessawirefunction addOption(cnt) { cnt2 = eval(cnt)+1; document.getElementById('option_'+cnt).innerHTML = document.getElementById('select').innerHTML+''; document.getElementById('option_'+cnt).innerHTML += '
'; document.getElementById('cnt').value = cnt2; } function addBusiness(cnt) { cnt2 = eval(cnt)+1; document.getElementById('business_'+cnt).innerHTML = document.getElementById('select').innerHTML+''; document.getElementById('business_'+cnt).innerHTML += '
'; document.getElementById('cnt').value = cnt2; } elracodelangela/administrator/components/com_svmap/models/0000755000176700017710000000000011074453335024742 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/models/members.php0000644000176700017710000002714011074453335027111 0ustar essawireessawiresetId((int)$array[0]); $limit = $mainframe->getUserStateFromRequest( 'limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest( 'limitstart', 'limitstart', 0, 'int' ); $this->setState('limit', $limit); $this->setState('limitstart', $limitstart); $this->getConfig(); } function setId($id) { $this->_id = intval( $id ); $this->_data = null; $this->_total = null; } function getData() { global $mainframe; $task = JRequest::getVar('task'); if (!isset($task) || empty($task)) { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_members' ) ); $this->_data = $this->_db->loadObjectList(); if ($this->_config->linkas == '1') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_members_link' ) ); $membersLink = $this->_db->loadObject(); if ($this->_config->linkwith == '1') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__contact_details' ) ); $contacts = $this->_db->loadObjectList(); } else if ($this->_config->linkwith == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__comprofiler' ) ); $contacts = $this->_db->loadObjectList(); } foreach ($contacts as $contact) { if ($this->_config->linkwith == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__users WHERE id='.$contact->id ) ); $user = $this->_db->loadObject(); } if (($this->_config->linkwith == '1' && $contact->published == '1') || ($this->_config->linkwith == '2' && $user->block != '1')) { $temp = null; $temp->id = $contact->id; if (!empty($membersLink->first_name)) { $temp->first_name = @$contact->{$membersLink->first_name}; } if (!empty($membersLink->last_name)) { $temp->last_name = @$contact->{$membersLink->last_name}; } if (!empty($membersLink->phone)) { $temp->phone = @$contact->{$membersLink->phone}; } if (!empty($membersLink->email)) { $temp->email = @$contact->{$membersLink->email}; } $temp->type = $this->_config->linkwith; $this->_data[] = $temp; } } } usort($this->_data, array($this,'sortArray')); $this->_data = $this->filter($this->_data); $this->_total = count($this->_data ); if ($this->_total < $this->getState('limit')) { $this->setState('limitstart', 0); } $this->_data = $this->limitArray($this->_data,$this->getState('limitstart'),$this->getState('limit')); return $this->_data; } else { if (!empty($this->_id)) { $type = intval( JRequest::getVar('type') ); if ($type == '0') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_members WHERE id = '.$this->_id ) ); $this->_data = $this->_db->loadObject(); } else { if ($type == '1') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__contact_details WHERE id = '.$this->_id ) ); $contact = $this->_db->loadObject(); $this->_data->type = '1'; } else if ($type == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__comprofiler WHERE id = '.$this->_id ) ); $contact = $this->_db->loadObject(); $this->_data->type = '2'; } $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_members_link' ) ); $membersLink = $this->_db->loadObject(); $this->_data->id = $contact->id; if (!empty($membersLink->first_name)) { $this->_data->first_name = @$contact->{$membersLink->first_name}; } if (!empty($membersLink->last_name)) { $this->_data->last_name = @$contact->{$membersLink->last_name}; } if (!empty($membersLink->phone)) { $this->_data->phone = @$contact->{$membersLink->phone}; } if (!empty($membersLink->email)) { $this->_data->email = @$contact->{$membersLink->email}; } } $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business_members WHERE id_member = '.$this->_id.' AND type='.$type ) ); $this->_data->business = $this->_db->loadObjectList(); } else { $this->_data = new stdClass(); $this->_data->id = 0; $items = array('first_name','last_name','phone','email'); foreach ($items as $item) { $this->_data->$item = null; } } return $this->_data; } } function getConfig() { $this->_db->setQuery( 'SELECT * FROM #__svmap_config' ); $this->_config = $this->_db->loadObject(); return $this->_config; } function getTotal() { return $this->_total; } function getPagination() { jimport('joomla.html.pagination'); $this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') ); return $this->_pagination; } function getBusiness() { $this->_db->setQuery( 'SELECT * FROM #__svmap_business WHERE type=0' ); $this->_data = $this->_db->loadObjectList(); if ($this->_config->linkas == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business_link' ) ); $businessLink = $this->_db->loadObject(); if ($this->_config->linkwith == '1') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__contact_details' ) ); $contacts = $this->_db->loadObjectList(); } else if ($this->_config->linkwith == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__comprofiler' ) ); $contacts = $this->_db->loadObjectList(); } foreach ($contacts as $contact) { if ($this->_config->linkwith == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__users WHERE id='.$contact->id ) ); $user = $this->_db->loadObject(); } if (($this->_config->linkwith == '1' && $contact->published == '1') || ($this->_config->linkwith == '2' && $user->block != '1')) { $temp = null; $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business WHERE user_id='.intval( $contact->id ).' AND type='.$this->_config->linkwith ) ); $business = $this->_db->loadObject(); if (!empty($business)) { $temp->id = $business->id; } else { $temp->id = 0; } $temp->user_id = $contact->id; if (!empty($businessLink->name)) { $temp->name = @$contact->{$businessLink->name}; } if (!empty($businessLink->address1)) { $temp->address1 = @$contact->{$businessLink->address1}; } if (!empty($businessLink->address2)) { $temp->address2 = @$contact->{$businessLink->address2}; } if (!empty($businessLink->address3)) { $temp->address3 = @$contact->{$businessLink->address3}; } if (!empty($businessLink->postcode)) { $temp->postcode = @$contact->{$businessLink->postcode}; } if (!empty($businessLink->city)) { $temp->city = @$contact->{$businessLink->city}; } if (!empty($businessLink->phone)) { $temp->phone = @$contact->{$businessLink->phone}; } if (!empty($businessLink->fax)) { $temp->fax = @$contact->{$businessLink->fax}; } if (!empty($businessLink->email)) { $temp->email = @$contact->{$businessLink->email}; } if (!empty($businessLink->description)) { $temp->description = @$contact->{$businessLink->description}; } $temp->type = $this->_config->linkwith; $this->_data[] = $temp; } } } return $this->_data; } function sortArray($a, $b) { global $mainframe; $filter_order = $mainframe->getUserStateFromRequest( 'members.filter_order', 'filter_order', 'first_name', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( 'members.filter_order_Dir', 'filter_order_Dir', '', 'word' ); if ($filter_order_Dir == 'asc') { $element1 = 'a'; $element2 = 'b'; } else { $element1 = 'b'; $element2 = 'a'; } return @strcasecmp(${$element1}->{$filter_order}, ${$element2}->{$filter_order}); } function limitArray($array,$start,$limit) { $return = Array(); for ($i=0;$i= $start && $i < ($start+$limit)) { $return[] = $array[$i]; } } return $return; } function filter($array) { global $mainframe; $filter1 = $mainframe->getUserStateFromRequest( 'members.filter1', 'filter1', '', 'int' ); $filter2 = $mainframe->getUserStateFromRequest( 'members.filter2', 'filter2', '', 'int' ); $temps = Array(); if (!empty($filter1)) { $id_business = intval( $filter1 ); $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business_members WHERE id_business = '.$id_business ) ); $business = $this->_db->loadObjectList(); if ($business) { foreach($business as $temp) { $temps[] = $temp->id_member; } } } $return = Array(); for ($i=0;$iid, $temps) || empty($filter1)) { if (($filter2 == '3' && empty($array[$i]->type)) || ($array[$i]->type == $filter2) || empty($filter2)) { $return[] = $array[$i]; } } } return $return; } function store() { $data = JRequest::get( 'post' ); $type = intval( $data['type'] ); if ($type == '0') { $row =& $this->getTable(); if (!$row->bind($data,'business')) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$row->store()) { $this->setError( $row->getErrorMsg() ); return false; } } if($this->_db->insertid()) { $id = intval( $this->_db->insertid() ); } else { $id = intval( $data['id'] ); } $this->_db->setQuery( $this->_db->getEscaped( 'DELETE FROM #__svmap_business_members WHERE id_member='.$id.' AND type='.$type ) ); if(!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } foreach($data['business'] as $business) { if (!empty($business)) { $this->_db->setQuery( 'INSERT INTO #__svmap_business_members (id_business,id_member,type) VALUES ("'.$business.'","'.$id.'","'.$type.'")' ); if(!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } } return true; } function delete() { $cids = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $row =& $this->getTable(); if (count( $cids )) { foreach($cids as $cid) { if (!$row->delete( $cid )) { $this->setError( $row->getErrorMsg() ); return false; } $cid = intval( $cid ); $this->_db->setQuery( $this->_db->getEscaped( 'DELETE FROM #__svmap_business_members WHERE id_member='.$cid ) ); if(!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } } return true; } } ?>elracodelangela/administrator/components/com_svmap/models/business.php0000644000176700017710000002762611074453335027323 0ustar essawireessawiresetId($user_id); } else { $array = JRequest::getVar('cid', 0, '', 'array'); $this->setId((int)$array[0]); } $limit = $mainframe->getUserStateFromRequest( 'limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest( 'limitstart', 'limitstart', 0, 'int' ); $this->setState('limit', $limit); $this->setState('limitstart', $limitstart); $this->getConfig(); } function setId($id) { $this->_id = intval( $id ); $this->_data = null; $this->_total = null; } function getData() { global $mainframe; $task = JRequest::getVar('task'); if (!isset($task) || empty($task)) { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business WHERE type=0' ) ); $this->_data = $this->_db->loadObjectList(); if ($this->_config->linkas == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business_link' ) ); $businessLink = $this->_db->loadObject(); if ($this->_config->linkwith == '1') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__contact_details' ) ); $contacts = $this->_db->loadObjectList(); } else if ($this->_config->linkwith == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__comprofiler' ) ); $contacts = $this->_db->loadObjectList(); } foreach ($contacts as $contact) { if ($this->_config->linkwith == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__users WHERE id='.$contact->id ) ); $user = $this->_db->loadObject(); } if (($this->_config->linkwith == '1' && $contact->published == '1') || ($this->_config->linkwith == '2' && $user->block != '1')) { $temp = null; $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business WHERE user_id='.intval( $contact->id ).' AND type!=0' ) ); $business = $this->_db->loadObject(); if (!empty($business)) { $temp->id = $business->id; } else { $temp->id = 0; } $temp->user_id = $contact->id; if (!empty($businessLink->name)) { $temp->name = @$contact->{$businessLink->name}; } if (!empty($businessLink->address1)) { $temp->address1 = @$contact->{$businessLink->address1}; } if (!empty($businessLink->address2)) { $temp->address2 = @$contact->{$businessLink->address2}; } if (!empty($businessLink->address3)) { $temp->address3 = @$contact->{$businessLink->address3}; } if (!empty($businessLink->postcode)) { $temp->postcode = @$contact->{$businessLink->postcode}; } if (!empty($businessLink->city)) { $temp->city = @$contact->{$businessLink->city}; } if (!empty($businessLink->country)) { $temp->country = @$contact->{$businessLink->country}; } if (!empty($businessLink->phone)) { $temp->phone = @$contact->{$businessLink->phone}; } if (!empty($businessLink->fax)) { $temp->fax = @$contact->{$businessLink->fax}; } if (!empty($businessLink->email)) { $temp->email = @$contact->{$businessLink->email}; } if (!empty($businessLink->description)) { $temp->description = @$contact->{$businessLink->description}; } $temp->type = $this->_config->linkwith; $this->_data[] = $temp; } } } usort($this->_data, array($this,'sortArray')); $this->_data = $this->filter($this->_data); $this->_total = count($this->_data ); if ($this->_total < $this->getState('limit')) { $this->setState('limitstart', 0); } $this->_data = $this->limitArray($this->_data,$this->getState('limitstart'),$this->getState('limit')); return $this->_data; } else { if (!empty($this->_id)) { $type = intval( JRequest::getVar('type') ); if ($type == '0') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business WHERE id = '.$this->_id ) ); $this->_data = $this->_db->loadObject(); } else { if ($type == '1') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__contact_details WHERE id = '.$this->_id ) ); $contact = $this->_db->loadObject(); $this->_data->type = '1'; } else if ($type == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__comprofiler WHERE id = '.$this->_id ) ); $contact = $this->_db->loadObject(); $this->_data->type = '2'; } $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business_link' ) ); $businessLink = $this->_db->loadObject(); $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business WHERE user_id='.$this->_id.' AND type='.intval( $type ) ) ); $business = $this->_db->loadObject(); if (!empty($business)) { $this->_data->id = $business->id; $this->_data->marker = $business->marker; $this->_data->lat = $business->lat; $this->_data->lon = $business->lon; } else { $this->_data->marker = 'http://www.google.com/mapfiles/marker.png'; $this->_data->id = 0; } $this->_data->user_id = $contact->id; if (!empty($businessLink->name)) { $this->_data->name = $contact->{$businessLink->name}; } if (!empty($businessLink->address1)) { $this->_data->address1 = $contact->{$businessLink->address1}; } if (!empty($businessLink->address2)) { $this->_data->address2 = $contact->{$businessLink->address2}; } if (!empty($businessLink->address3)) { $this->_data->address3 = $contact->{$businessLink->address3}; } if (!empty($businessLink->postcode)) { $this->_data->postcode = $contact->{$businessLink->postcode}; } if (!empty($businessLink->city)) { $this->_data->city = $contact->{$businessLink->city}; } if (!empty($businessLink->country)) { $this->_data->country = $contact->{$businessLink->country}; } if (!empty($businessLink->phone)) { $this->_data->phone = $contact->{$businessLink->phone}; } if (!empty($businessLink->fax)) { $this->_data->fax = $contact->{$businessLink->fax}; } if (!empty($businessLink->email)) { $this->_data->email = $contact->{$businessLink->email}; } if (!empty($businessLink->description)) { $this->_data->description = $contact->{$businessLink->description}; } } $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business_options WHERE id_business = '.$this->_data->id ) ); $this->_data->options = $this->_db->loadObjectList(); } else { $this->_data = new stdClass(); $this->_data->id = 0; $items = array('name','address1','address2','address3','postcode','city','country','phone','fax','email','description','lat','lon'); foreach ($items as $item) { $this->_data->$item = null; } $this->_data->marker = 'http://www.google.com/mapfiles/marker.png'; } return $this->_data; } } function getTotal() { return $this->_total; } function sortArray($a, $b) { global $mainframe; $filter_order = $mainframe->getUserStateFromRequest( 'business.filter_order', 'filter_order', 'name', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( 'business.filter_order_Dir', 'filter_order_Dir', '', 'word' ); if ($filter_order_Dir == 'asc') { $element1 = 'a'; $element2 = 'b'; } else { $element1 = 'b'; $element2 = 'a'; } return @strcasecmp(${$element1}->{$filter_order}, ${$element2}->{$filter_order}); } function limitArray($array,$start,$limit) { $return = Array(); for ($i=0;$i= $start && $i < ($start+$limit)) { $return[] = $array[$i]; } } return $return; } function filter($array) { global $mainframe; $filter = $mainframe->getUserStateFromRequest( 'business.filter', 'filter', '', 'int' ); $temps = Array(); $return = Array(); for ($i=0;$itype)) || ($array[$i]->type == $filter) || empty($filter)) { $return[] = $array[$i]; } } return $return; } function getPagination() { jimport('joomla.html.pagination'); $this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') ); return $this->_pagination; } function getConfig() { $this->_db->setQuery( 'SELECT * FROM #__svmap_config' ); $this->_config = $this->_db->loadObject(); return $this->_config; } function getOptions() { $this->_db->setQuery( 'SELECT * FROM #__svmap_options' ); return $this->_db->loadObjectList(); } function getMarkers() { $this->_db->setQuery( 'SELECT * FROM #__svmap_markers' ); return $this->_db->loadObjectList(); } function store() { $row =& $this->getTable(); $data = JRequest::get( 'post' ); $type = intval( $data['type'] ); if ($type == '0') { $description = JRequest::getVar('description', 0, 'post', 'array'); $data['description'] = $description[0]; $data['user_id'] = $data['id']; } else { $data['name'] = null; $data['address1'] = null; $data['address2'] = null; $data['address3'] = null; $data['postcode'] = null; $data['city'] = null; $data['country'] = null; $data['phone'] = null; $data['fax'] = null; $data['email'] = null; $data['description'] = null; } if (!$row->bind($data,'options')) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$row->store()) { $this->setError( $row->getErrorMsg() ); return false; } if($this->_db->insertid()) { $id = intval( $this->_db->insertid() ); if ($data['id'] == '0' && $type == '0') { $this->_db->setQuery( 'UPDATE #__svmap_business SET user_id='.$id.' WHERE id='.$id ); $this->_db->query(); } } else { $id = intval( $data['id'] ); } $this->_db->setQuery( $this->_db->getEscaped( 'DELETE FROM #__svmap_business_options WHERE id_business='.$id ) ); if(!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } foreach($data['options'] as $option) { if (!empty($option)) { $this->_db->setQuery( 'INSERT INTO #__svmap_business_options (id_business,id_option) VALUES ("'.$id.'","'.$option.'")' ); if(!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } } return true; } function delete() { $cids = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $row =& $this->getTable(); if (count( $cids )) { foreach($cids as $cid) { if (!$row->delete( $cid )) { $this->setError( $row->getErrorMsg() ); return false; } $cid = intval( $cid ); $this->_db->setQuery( $this->_db->getEscaped( 'DELETE FROM #__svmap_business_options WHERE id_business='.$cid ) ); if(!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } } return true; } } ?>elracodelangela/administrator/components/com_svmap/models/markers.php0000644000176700017710000000645711074453335027133 0ustar essawireessawiresetId((int)$array[0]); $limit = $mainframe->getUserStateFromRequest( 'limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest( 'limitstart', 'limitstart', 0, 'int' ); $this->setState('limit', $limit); $this->setState('limitstart', $limitstart); } function setId($id) { $this->_id = intval( $id ); $this->_data = null; } function getData() { global $mainframe; $task = JRequest::getVar('task'); if (!isset($task) || empty($task)) { $filter_order = $mainframe->getUserStateFromRequest( 'markers.filter_order', 'filter_order', 'name', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( 'markers.filter_order_Dir', 'filter_order_Dir', '', 'word' ); $orderby = ' ORDER BY '.$filter_order.' '.$filter_order_Dir; $this->_data = $this->_getList( 'SELECT * FROM #__svmap_markers'.$orderby, $this->getState('limitstart'), $this->getState('limit') ); return $this->_data; } else { if (!empty($this->_id)) { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_markers WHERE id = '.$this->_id ) ); $this->_data = $this->_db->loadObject(); } else { $this->_data = new stdClass(); $this->_data->id = 0; $items = array('name','url'); foreach ($items as $item) { $this->_data->$item = null; } } return $this->_data; } } function getConfig() { $this->_db->setQuery( 'SELECT * FROM #__svmap_config' ); $this->_data = $this->_db->loadObject(); return $this->_data; } function getTotal() { if (empty($this->_total)) { $this->_total = $this->_getListCount( 'SELECT * FROM #__svmap_markers' ); } return $this->_total; } function getPagination() { if (empty($this->_pagination)) { jimport('joomla.html.pagination'); $this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') ); } return $this->_pagination; } function store() { $row =& $this->getTable(); $data = JRequest::get( 'post' ); if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$row->store()) { $this->setError( $row->getErrorMsg() ); return false; } return true; } function delete() { $cids = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $row =& $this->getTable(); if (count( $cids )) { foreach($cids as $cid) { if (!$row->delete( $cid )) { $this->setError( $row->getErrorMsg() ); return false; } } } return true; } } ?>elracodelangela/administrator/components/com_svmap/models/svmap.php0000644000176700017710000000102711074453335026601 0ustar essawireessawire_db->setQuery( 'SELECT * FROM #__svmap_config' ); $this->_data = $this->_db->loadObject(); return $this->_data; } } ?>elracodelangela/administrator/components/com_svmap/models/configuration.php0000644000176700017710000000227711074453335030332 0ustar essawireessawire_db->setQuery( 'SELECT * FROM #__svmap_config' ); $this->_data = $this->_db->loadObject(); return $this->_data; } function getTables() { $tables = $this->_db->getTableList(); $prefix = $this->_db->getPrefix(); $return = ''; foreach($tables as $table) { $table = str_replace($prefix,'',$table); $return[] = $table; } return $return; } function store() { $row =& $this->getTable(); $data = JRequest::get( 'post' ); $data['maptype'] = implode(',',$data['maptype']); if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$row->store()) { $this->setError($this->_db->getErrorMsg()); return false; } return true; } } ?>elracodelangela/administrator/components/com_svmap/models/link.php0000644000176700017710000000370511074453335026415 0ustar essawireessawire_db->setQuery( 'SELECT * FROM #__svmap_config' ); $this->_data = $this->_db->loadObject(); return $this->_data; } function getLinkMembers() { $this->_db->setQuery( 'SELECT * FROM #__svmap_members_link' ); $this->_data = $this->_db->loadObject(); return $this->_data; } function getLinkBusiness() { $this->_db->setQuery( 'SELECT * FROM #__svmap_business_link' ); $this->_data = $this->_db->loadObject(); return $this->_data; } function getJoomlaFields() { $this->_data = $this->_db->getTableFields( '#__contact_details', false ); $return = ''; foreach ($this->_data as $fields) { foreach ($fields as $field) { $temp['id'] = $field->Field; $temp['name'] = $field->Field; $return[] = $temp; } } return $return; } function getCBFields() { $this->_db->setQuery( 'SELECT * FROM #__comprofiler_fields' ); $this->_data = $this->_db->loadObjectList(); $return = ''; foreach ($this->_data as $field) { if (strstr($field->table,'comprofiler')) { $temp['id'] = $field->name; $temp['name'] = $field->name; $return[] = $temp; } } return $return; } function store() { $data = JRequest::get( 'post' ); $row =& $this->getTable($data['table']); if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$row->store()) { $this->setError($this->_db->getErrorMsg()); return false; } return true; } } ?>elracodelangela/administrator/components/com_svmap/models/index.html0000644000176700017710000000000011074453335026725 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/models/options.php0000644000176700017710000000707311074453335027155 0ustar essawireessawiresetId((int)$array[0]); $limit = $mainframe->getUserStateFromRequest( 'limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest( 'limitstart', 'limitstart', 0, 'int' ); $this->setState('limit', $limit); $this->setState('limitstart', $limitstart); } function setId($id) { $this->_id = intval( $id ); $this->_data = null; } function getData() { global $mainframe; $task = JRequest::getVar('task'); if (!isset($task) || empty($task)) { $filter_order = $mainframe->getUserStateFromRequest( 'options.filter_order', 'filter_order', 'value', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( 'options.filter_order_Dir', 'filter_order_Dir', '', 'word' ); $orderby = ' ORDER BY '.$filter_order.' '.$filter_order_Dir; $this->_data = $this->_getList( 'SELECT * FROM #__svmap_options'.$orderby, $this->getState('limitstart'), $this->getState('limit') ); return $this->_data; } else { if (!empty($this->_id)) { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_options WHERE id = '.$this->_id ) ); $this->_data = $this->_db->loadObject(); } else { $this->_data = new stdClass(); $this->_data->id = 0; $items = array('value'); foreach ($items as $item) { $this->_data->$item = null; } } return $this->_data; } } function getConfig() { $this->_db->setQuery( 'SELECT * FROM #__svmap_config' ); $this->_data = $this->_db->loadObject(); return $this->_data; } function getTotal() { if (empty($this->_total)) { $this->_total = $this->_getListCount( 'SELECT * FROM #__svmap_options' ); } return $this->_total; } function getPagination() { if (empty($this->_pagination)) { jimport('joomla.html.pagination'); $this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') ); } return $this->_pagination; } function store() { $row =& $this->getTable(); $data = JRequest::get( 'post' ); if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$row->store()) { $this->setError( $row->getErrorMsg() ); return false; } return true; } function delete() { $cids = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $row =& $this->getTable(); if (count( $cids )) { foreach($cids as $cid) { if (!$row->delete( $cid )) { $this->setError( $row->getErrorMsg() ); return false; } $cid = intval( $cid ); $this->_db->setQuery( $this->_db->getEscaped( 'DELETE FROM #__svmap_business_options WHERE id_option='.$cid ) ); if(!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } } return true; } } ?>elracodelangela/administrator/components/com_svmap/images/0000755000176700017710000000000011074453335024724 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/images/business.png0000644000176700017710000000400111074453335027260 0ustar essawireessawirePNG  IHDR00` sBITOPLTEfsJJ0ڇR2S0KI )yOZ@|A&b< vXk0ͭ J+Z0,0.6 fff&roşjCsU7c@ί앆B*}Z72Q2 R_^-wL:!lE"!ޥv:/r8"H+ r n)mjg+{ _VX9\9oPcBtJ?$SދZy膷 B@ lF;9TJנ] ֔A($٭0 M1];XhtRNSHeG pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004v[IDATx}[J RQ95TLSDbQ9XCԈ1֤ipr_?q󽙝١uybdi)aqׅw>織KӴݟ믱zUcg+i@5P>~,V[u6:(gSz@$UnҘ=څ"O@Uoət~2GQ. U'i,k8Drרh.N(5 0 J@d~OuQ͏ShGWL$ص2fW cPP`7nޝ^d1(A$u7@<,iK i<9I)Fה~OQ `iv}juIAFc1hd_߇`ԝ2~X8Ctos|u*!${+ G2e4*i;"`ǾlRɬhEk`e@D .4 zkpTe! B,abx4FGvUso↿ø̵i(}y4[뀣)tjt&j4F[eݍY\dܥ"^7e ւa.ñȿ ](.9.= 9X'؜zB"_o?Z򯯧6=.g7{{/ZJ*joo~~ ؜ICy|@d,l:=YCv ǽ"ƢpLᣌxcompg#?8( { YϲRtWN7H14!=:ՉnVvNȿW*b MA*詡b5& ϗ?.Ij2bBFoI[[m_ 389n+ח }5 |kQT \ˬrf: 'ml_މ-1o8Da1|+hBϙkc$Ǚi:s6ݼYJ?@}E{zBy9J\|Lf2ߴ;Mz~{(Bm>zi|[u^i Ly G>d,9$NP..`X,>ϽVnr'*\ Ǚt:/.޿p8>\V|z"GظC1SGaxe\>{eVlVMއVvB_B rgJD$ql" &&L:?,"̈CAWBYC]GP%0O,!R哅-8 $Fl+fIENDB`elracodelangela/administrator/components/com_svmap/images/markers.png0000644000176700017710000000401711074453335027100 0ustar essawireessawirePNG  IHDR00` sBITOPLTE33333r\T/浈ff7,żȪhssnxsxZ}Bׯ\zOC~PLn:shxoHɫmtnҡ|3̙|ȉ@d4rG@Yu[+uҝf/$H`݉F2037n*js ȼ:"....7MNs0%s["2}ll2ڇ.fxxWm[[0$>9agsT5|o\dpg}j} lw޿r[}0( "IcJ}}N7hF>w]J](;[w ^Zl1q=w^}@%>~xsz[,H͛wkHY}ǽ-cwF6a?9H|xS  ߊ`$0aG.-=5oܮ b0ZlT;fmՈjfzふ vV@UAٮ r/A?tlk'<;eJɽ86}=ɮSN>ZnB:d0L4dl:I:yCu:m$iy8l?ta7Mic; ,{G4  fU6 6%'L8uXd2 mɼc^WEuczVjqWRY9䓼jƩ GPphZvO3rs< (r@t F"gD" h<7K 8E ihf&f8?ſIENDB`elracodelangela/administrator/components/com_svmap/images/index.html0000644000176700017710000000000011074453335026707 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/images/configuration.png0000644000176700017710000000331011074453335030276 0ustar essawireessawirePNG  IHDR00` sBITOPLTE*wnmњ AԓGD5M&wu̙qWI1G7>3gfs f}ysν= Zׁ`ANZ_lf׽NF廱Tvbӵސzx Hf3d_=-у{L9wZBYWvߏ~{QbPkVކ܎Kgj ?(]X᫪{zzaޟϙB-ff؊{A.~ ˤ7[ }G5jbNVP}KtRNS pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004v"IDATxSXZ@+Ad]%ݲvl,R B@B,8}G0 sϽ e]݇Ie= ų?H3 h9~:͡ ?T=o/ÂDs4ǽ B6dm WbI@*t=DZ0a8] X(g40]I FI<,/˹ H}>|sH eXSl^UN4 Jn~Y =m$عo Ӓvm0 ˷VڭGÑٟ^yh֥(2Jc7WPKۆzUae8xTUpjvUdhQ3Nw%*Aj9 x/m(QZm}~˜W3?*r3} zyĿQۙaI" gMTC_ІC w 'oy^m zCM3zpĶoN ~S&v?ZjFy&֞/BЙ?IMΚò@.g6IT/5ulU􋦍ǹcI{ wL?sl9q4'h OY -+xW Oa6{b>-ڹ3%µ=ak\.c?rm&#nÕh߿}z 5 bxdz)J5Ȩ #Ptәݥ@4+1פ6`}r&!pe$b p^K&c4i+$Mx=3o_#s$zRk]/Gy[%8uk2g@h[$rᙲ!cEPUO%͙nQ1eW9Oqbb4*@{۟$&v@CbD)TV^$ͭ#Km@NڒֵL:B_VQ\ЩM&aZ*v b!~Uqb .OIENDB`elracodelangela/administrator/components/com_svmap/images/options.png0000644000176700017710000000435311074453335027132 0ustar essawireessawirePNG  IHDR00` sBITOPLTEIm*M3L1I+*8Z C[8VL1I,92Bdc$RiGe7V1T*M ( w>^F[8V1"!UwWu7V$[b_}8V+",@!3 (  LrMmL_}1TARq*Mͽ1",@&2!3C ! 7V31$6CU2Bd,6C[C  yMmRiL_}=]ARq1+3Et6CU{[J yj_Uw_wXmQkRiC[*Mjtwjf`}Ro>*ytqhj_}\?ImTS.+*Ⓐ愨ꃥhZX|Uw\ O12c۞BKaI+JsV3? r ꂦ}{{trzqmnyiie}~cZg hRxc_Lr\*[Fk:`1TL itRNS"""""""""""3333DDDDDDDDUUUUUUUUUfffffffwwwwwwwwwwwc pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxOIDATHgXV]t-t6M{{;{'{&]IiP" m6C`ۀcL O |9νͩ;jn F]s˒,xN|UF_y8vO􏬾O#4[W:陹z~FUnN6*Q7䍭HIhlnz]rsr6{!-9QOڱmx[^^.R^'pM@W-@kt|M$/,hHBnKT}&O4 wD h,n ѭu[[;us nٟ1i^*CNSпalgKmnRU4Vho)0🏬# H:*F8KV#$/Sp. @ۈSX $·?d>kK:lrT` !_Jތ`f J%e* XYp CR6 JI854r8R.Ua+/p,3E[d.-_/W|U$ɠQcl(6 0{W0Q4oJ- zS}lDI-\78趠&ݨtH5@ݵhl {:~`8 #4E?~}U\0B'ǎX֣X1 |V^1Uly)vptk٨VDOe@⣧͞Hw7E6``2Q|7&+ztH\0Q0&9h < gE+)8n̂E׭yRcc_0-Hּi^#v||nWԝQ8wQDUn;_>xiHG,HFCDh=KԜʻJ:iӉ}̮HNIWI{F9IENDB`elracodelangela/administrator/components/com_svmap/images/link.png0000644000176700017710000000375411074453335026400 0ustar essawireessawirePNG  IHDR00` sBITOPLTE!ꝝÄ[\`$tY]:xʅB@C0!鎎l]5N=̑A%ff(q( yMv^89柣zz}!:/o d\Hy֭2Wֶ%vmmxI*fQ1kXpi[ VJ.DvIqHI*(.f@yǞ˼ 9!zz/uwZG"z!ߨi]FH+ZYYmhi܆)%!twp==Ic:!x m*(v{tRNSHeG pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vFIDATx[HkQ K$![f,E"&(BZamLB<~?;眙s&^:qk~#HeR_B*ieP*A(Eb#r^gz:e)88FeYY*@p|CHE)K.B$Irxe@ y>~tg[T"!c _{q}q[,nV <_| L/by|b<77?+}<١oc$ZOO [{NV .SUAYZ-zz_Փ&7_L~!6+C O7{zae\V/"<./D>y+teRţ{{t,QU#i7ɞlIU5NE9uh` 0s43YQ\ yZʛ 겆.DȥB##,rXJ%{tvL{jDa8 vbJ8andAH$th2mPW{ݐ$e2m}IJ`BL_w  F;7v(q48A#8ÿcW )@ 6ƻW7vfhڶiizҾ/M@p mZgfLӤ[z (-a yAiX95AA@HY)A͋ [670a(j%Ev{ 9e$y{BP<Uw̾ڻw42 CGQ`K9%`繸2K/(Az p~\$7c)Nʞ_A\\-d2,ɯzOA0Z)BGQIXJ{ؘXڰ_sN߅;RdM 3 ? ŗ.>BWI>䑭^+O(>Gᮇc"9)T׌K7E/sIENDB`elracodelangela/administrator/components/com_svmap/images/logo-48.png0000644000176700017710000000177511074453335026635 0ustar essawireessawirePNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxYMHTQJbt1#B ~VMmSU3ʍ B]ΦS)0rZEjU"pY("O a:wp{{y猾|>/\<GsX057HHC4Bx]S82RDD$]q'I;\v b|*˹R26g>Z,U$ӆbzȑq :H*Wܸ>gc8F$ƕȬb>[}TxOчRSbne+8B8Rzx#A|TbAm&i$IPl.# 8qE/wjbH\޳jQo !)=@I;Y{','bO:J:I.q֙Bcm;@m/ q%)"s_ zv~O*K q.xձ5U7=3ٵ,ⵠ~賗i>Db6S;vbmu:3>D0;+z d(y4ʎ $@'Vg&I;HP-ŢDTinP==߇l_3Nxhۆ3t'J߅4_UJ lKcb R֨җz׊m$9IK{D^}88鋏dz?G# 0XP\IENDB`elracodelangela/administrator/components/com_svmap/index.html0000644000176700017710000000000011074453335025442 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/tables/0000755000176700017710000000000011074453335024731 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/tables/members.php0000644000176700017710000000107111074453335027073 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/tables/business.php0000644000176700017710000000146411074453335027302 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/tables/markers.php0000644000176700017710000000075311074453335027113 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/tables/configuration.php0000644000176700017710000000155511074453335030317 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/tables/index.html0000644000176700017710000000000011074453335026714 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/tables/linkbusiness.php0000644000176700017710000000132511074453335030154 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/tables/options.php0000644000176700017710000000073011074453335027135 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/tables/linkmembers.php0000644000176700017710000000106111074453335027750 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/svmap.xml0000644000176700017710000001311411074453344025327 0ustar essawireessawire SVMap August 2008 La Souris Verte joomla@la-souris-verte.com http://www.la-souris-verte.com GNU / GPL 1.1.1 site/languages/fr-FR.com_svmap.ini site/languages/en-GB.com_svmap.ini site/languages/es-ES.com_svmap.ini site/languages/zh-CN.com_svmap.ini site/languages/zh-TW.com_svmap.ini index.html svmap.php controller.php svmap.css views/index.html views/svmap/index.html views/svmap/view.html.php views/svmap/tmpl/index.html views/svmap/tmpl/default.php models/index.html models/svmap.php install.sql uninstall.sql install.svmap.php admin/languages/fr-FR.com_svmap.ini admin/languages/en-GB.com_svmap.ini admin/languages/es-ES.com_svmap.ini admin/languages/zh-CN.com_svmap.ini admin/languages/zh-TW.com_svmap.ini SVMap index.html admin.svmap.php controller.php svmap.css svmap.js controllers/index.html controllers/business.php controllers/members.php controllers/options.php controllers/configuration.php controllers/markers.php controllers/link.php images/index.html images/svmap-16.png images/logo-48.png images/business.png images/members.png images/options.png images/configuration.png images/markers.png images/link.png models/index.html models/business.php models/svmap.php models/members.php models/options.php models/configuration.php models/markers.php models/link.php tables/index.html tables/business.php tables/configuration.php tables/members.php tables/options.php tables/markers.php tables/linkbusiness.php tables/linkmembers.php views/index.html views/business/view.html.php views/business/index.html views/business/tmpl/default.php views/business/tmpl/form.php views/business/tmpl/index.html views/svmap/view.html.php views/svmap/index.html views/svmap/tmpl/default.php views/svmap/tmpl/index.html views/members/view.html.php views/members/index.html views/members/tmpl/default.php views/members/tmpl/form.php views/members/tmpl/index.html views/options/view.html.php views/options/index.html views/options/tmpl/default.php views/options/tmpl/form.php views/options/tmpl/index.html views/configuration/view.html.php views/configuration/index.html views/configuration/tmpl/default.php views/configuration/tmpl/index.html views/markers/view.html.php views/markers/index.html views/markers/tmpl/default.php views/markers/tmpl/form.php views/markers/tmpl/index.html views/link/view.html.php views/link/index.html views/link/tmpl/link_business.php views/link/tmpl/link_members.php views/link/tmpl/index.html install.sql uninstall.sql elracodelangela/administrator/components/com_svmap/views/0000755000176700017710000000000011074453335024614 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/members/0000755000176700017710000000000011074453335026246 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/members/index.html0000644000176700017710000000000011074453335030231 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/members/tmpl/0000755000176700017710000000000011074453335027222 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/members/tmpl/form.php0000644000176700017710000001165311074453335030704 0ustar essawireessawire
members->id)) { ?>
members->id;?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?> members->business)) { foreach($this->members->business as $members_business) { ?>
/>
/>
/>
/>
elracodelangela/administrator/components/com_svmap/views/members/tmpl/index.html0000644000176700017710000000000011074453335031205 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/members/tmpl/default.php0000644000176700017710000000636511074453335031371 0ustar essawireessawire
lists['filter1'].' '.$this->lists['filter2']; ?>
members ); $i < $n; $i++) { $row = &$this->members[$i]; $checked = ''; if ($row->type == '0') { $checked = JHTML::_('grid.id', $i, $row->id ); } $link = JRoute::_( 'index.php?option=com_svmap&controller=members&task=edit&cid[]='.$row->id.'&type='.$row->type ); ?> ">
# lists['order_Dir'], $this->lists['order']); ?> lists['order_Dir'], $this->lists['order']); ?> lists['order_Dir'], $this->lists['order']); ?> lists['order_Dir'], $this->lists['order']); ?> lists['order_Dir'], $this->lists['order']); ?>
id; ?> first_name; ?> last_name; ?> phone; ?> email; ?> type == '1') { echo JText::_( 'SVMAP_LINK_JOOMLA' ); } else if ($row->type == '2') { echo JText::_( 'SVMAP_LINK_CB' ); } else { echo JText::_( 'SVMAP' ); } ?>
pageNav->getListFooter(); ?>
elracodelangela/administrator/components/com_svmap/views/members/view.html.php0000644000176700017710000001142711074453335030701 0ustar essawireessawireget('Data'); $this->assignRef('members', $members); if ($this->getLayout() == 'form') { $isNew = ($members->id < 1); $text = $isNew ? JText::_( 'New' ) : JText::_( 'Edit' ); JToolBarHelper::title( 'SVMap | '.JText::_( 'SVMAP_MEMBER' ).': [ ' . $text.' ]', 'svmap' ); JToolBarHelper::save(); if ($isNew) { JToolBarHelper::cancel(); } else { JToolBarHelper::cancel( 'cancel', 'Close' ); } JHTML::_('behavior.tooltip'); $template = $mainframe->getTemplate(); $this->assignRef('template', $template); $business = $this->get('Business'); $this->assignRef('business', $business); } else { JSubMenuHelper::addEntry( 'SVMap', 'index.php?option=com_svmap'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_CONFIGURATION' ).'', 'index.php?option=com_svmap&controller=configuration'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_BUSINESS' ).'', 'index.php?option=com_svmap&controller=business'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MEMBER' ).'', 'index.php?option=com_svmap&controller=members', true); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_OPTION' ).'', 'index.php?option=com_svmap&controller=options'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MARKER' ).'', 'index.php?option=com_svmap&controller=markers'); $config = $this->get('Config'); if ($config->linkas != '0' && $config->linkwith != '0') { JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_LINK' ).'', 'index.php?option=com_svmap&controller=link'); } JHTML::_('behavior.tooltip'); JToolBarHelper::title( 'SVMap | '.JText::_( 'SVMAP_MEMBER' ), 'svmap' ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); $filter_order = $mainframe->getUserStateFromRequest('members.filter_order', 'filter_order', 'first_name', 'cmd'); $filter_order_Dir = $mainframe->getUserStateFromRequest('members.filter_order_Dir', 'filter_order_Dir', '', 'word'); $filter1 = $mainframe->getUserStateFromRequest( 'members.filter1', 'filter1', '', 'int' ); $filter2 = $mainframe->getUserStateFromRequest( 'members.filter2', 'filter2', '', 'int' ); $filters1 = array(); $filters1[] = JHTML::_('select.option', '0', '-- '.JText::_( 'SVMAP_BUSINESS' ).' --' ); $business = $this->get('Business'); foreach($business as $temp) { $filters1[] = JHTML::_('select.option', @$temp->user_id, @$temp->name ); } $filters2 = array(); $filters2[] = JHTML::_('select.option', '', '-- '.JText::_( 'SVMAP_CATEGORY' ).' --' ); $filters2[] = JHTML::_('select.option', '3', 'SVMAP' ); if ($config->linkas == '1' && $config->linkwith == '1') { $filters2[] = JHTML::_('select.option', '1', JText::_( 'SVMAP_LINK_JOOMLA' ) ); } if ($config->linkas == '1' && $config->linkwith == '2') { $filters2[] = JHTML::_('select.option', '2', JText::_( 'SVMAP_LINK_CB' ) ); } $lists['filter1'] = JHTML::_('select.genericlist', $filters1, 'filter1', 'size="1" class="inputbox" onchange="form.submit()"', 'value', 'text', $filter1 ); $lists['filter2'] = JHTML::_('select.genericlist', $filters2, 'filter2', 'size="1" class="inputbox" onchange="form.submit()"', 'value', 'text', $filter2 ); $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; $this->assignRef('lists', $lists); $pageNav = & $this->get( 'Pagination' ); $this->assignRef('pageNav', $pageNav); } parent::display($tpl); } } ?>elracodelangela/administrator/components/com_svmap/views/link/0000755000176700017710000000000011074453335025551 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/link/index.html0000644000176700017710000000000011074453335027534 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/link/tmpl/0000755000176700017710000000000011074453335026525 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/link/tmpl/link_business.php0000644000176700017710000001030111074453335032101 0ustar essawireessawire '; foreach ($listfields as $field) { $selected = ''; if ($field['id'] == $business->{$name}) { $selected = 'selected="selected"'; } $list .= ''; } $list .= ''; return $list; } ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
fields,$this->business); ?>
fields,$this->business); ?>
fields,$this->business); ?>
fields,$this->business); ?>
fields,$this->business); ?>
fields,$this->business); ?>
fields,$this->business); ?>
fields,$this->business); ?>
fields,$this->business); ?>
fields,$this->business); ?>
fields,$this->business); ?>
elracodelangela/administrator/components/com_svmap/views/link/tmpl/link_members.php0000644000176700017710000000443011074453335031706 0ustar essawireessawire '; foreach ($listfields as $field) { $selected = ''; if ($field['id'] == $members->{$name}) { $selected = 'selected="selected"'; } $list .= ''; } $list .= ''; return $list; } ?>
fields,$this->members); ?>
fields,$this->members); ?>
fields,$this->members); ?>
fields,$this->members); ?>
elracodelangela/administrator/components/com_svmap/views/link/tmpl/index.html0000644000176700017710000000000011074453335030510 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/link/view.html.php0000644000176700017710000000604611074453335030205 0ustar essawireessawireget('Config'); if ($config->linkwith != '0' && $config->linkas != '0') { if ($config->linkas == '1') { $tpl = 'members'; $members = $this->get('LinkMembers'); $this->assignRef('members', $members); } else if ($config->linkas == '2') { $tpl = 'business'; $business = $this->get('LinkBusiness'); $this->assignRef('business', $business); } else { JApplication::redirect('index.php?option=com_svmap'); } if ($config->linkwith == '1') { $fields = $this->get('JoomlaFields'); } else if ($config->linkwith == '2') { $fields = $this->get('CBFields'); } else { JApplication::redirect('index.php?option=com_svmap'); } JSubMenuHelper::addEntry( 'SVMap', 'index.php?option=com_svmap'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_CONFIGURATION' ).'', 'index.php?option=com_svmap&controller=configuration'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_BUSINESS' ).'', 'index.php?option=com_svmap&controller=business'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MEMBER' ).'', 'index.php?option=com_svmap&controller=members'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_OPTION' ).'', 'index.php?option=com_svmap&controller=options'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MARKER' ).'', 'index.php?option=com_svmap&controller=markers'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_LINK' ).'', 'index.php?option=com_svmap&controller=link', true); JToolBarHelper::title( JText::_( 'SVMAP_LINK' ), 'svmap' ); JToolBarHelper::save(); JHTML::_('behavior.tooltip'); $template = $mainframe->getTemplate(); $this->assignRef('template', $template); $this->assignRef('fields', $fields); parent::display($tpl); } else { JApplication::redirect('index.php?option=com_svmap'); } } } ?> elracodelangela/administrator/components/com_svmap/views/configuration/0000755000176700017710000000000011074453335027463 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/configuration/index.html0000644000176700017710000000000011074453335031446 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/configuration/tmpl/0000755000176700017710000000000011074453335030437 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/configuration/tmpl/index.html0000644000176700017710000000000011074453335032422 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/configuration/tmpl/default.php0000644000176700017710000004345511074453335032607 0ustar essawireessawire
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
http://code.google.com/apis/maps/signup.html
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>
elracodelangela/administrator/components/com_svmap/views/configuration/view.html.php0000644000176700017710000000464711074453335032124 0ustar essawireessawireget('Config'); $this->assignRef('config', $config); JSubMenuHelper::addEntry( 'SVMap', 'index.php?option=com_svmap'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_CONFIGURATION' ).'', 'index.php?option=com_svmap&controller=configuration', true); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_BUSINESS' ).'', 'index.php?option=com_svmap&controller=business'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MEMBER' ).'', 'index.php?option=com_svmap&controller=members'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_OPTION' ).'', 'index.php?option=com_svmap&controller=options'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MARKER' ).'', 'index.php?option=com_svmap&controller=markers'); if ($config->linkas != '0' && $config->linkwith != '0') { JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_LINK' ).'', 'index.php?option=com_svmap&controller=link'); } JToolBarHelper::title( JText::_( 'SVMAP_CONFIGURATION' ), 'svmap' ); JToolBarHelper::save(); JHTML::_('behavior.tooltip'); $template = $mainframe->getTemplate(); $this->assignRef('template', $template); $tables = $this->get('Tables'); $this->assignRef('tables', $tables); parent::display($tpl); } } ?> elracodelangela/administrator/components/com_svmap/views/business/0000755000176700017710000000000011074453335026447 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/business/index.html0000644000176700017710000000000011074453335030432 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/business/tmpl/0000755000176700017710000000000011074453335027423 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/business/tmpl/form.php0000644000176700017710000003667011074453335031113 0ustar essawireessawireconfig->api_key,'http://maps.google.com/',false); JHTML::script('api?file=uds.js&v=1.0&key='.$this->config->api_key,'http://www.google.com/uds/',false); JHTML::script('gmlocalsearch.js','http://www.google.com/uds/solutions/localsearch/',false); JHTML::stylesheet('gsearch.css','http://www.google.com/uds/css/'); JHTML::stylesheet('gmlocalsearch.css','http://www.google.com/uds/solutions/localsearch/'); $type = JRequest::getVar('type'); $disabled = ''; if ($type == '1') { $disabled = 'disabled="disabled"'; $category = JText::_( 'SVMAP_LINK_JOOMLA' ); } else if ($type == '2') { $disabled = 'disabled="disabled"'; $category = JText::_( 'SVMAP_LINK_CB' ); } else { $type = '0'; } ?>
business->id)) { ?>
business->id;?>
/>
/>
/>
/>
/>
/>
/>
/>
/>
/>
'.@$this->business->description.''; } else { $editor = JFactory::getEditor(); echo $editor->display( 'description', $this->business->description, '100%', '300', '100', '20', false); } ?>
markers as $marker) { $checked = ''; if (($this->business->marker == $marker->url) || (empty($this->business->marker) && $marker->id == '1')) { $checked = 'checked="checked"'; } echo ''; if ($cnt < 15) { $cnt++; } else { echo ''; $cnt = 0; } } ?>

template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?>

template .'/images/menu/icon-16-info.png', JText::_('NOTES') ); ?> business->options)) { foreach($this->business->options as $this->business->option) { ?>
elracodelangela/administrator/components/com_svmap/views/business/tmpl/index.html0000644000176700017710000000000011074453335031406 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/business/tmpl/default.php0000644000176700017710000000570511074453335031567 0ustar essawireessawire
lists['filter']; ?>
business ); $i < $n; $i++) { $row = &$this->business[$i]; $checked = ''; if ($row->type == '0') { $checked = JHTML::_('grid.id', $i, $row->id ); } $link = JRoute::_( 'index.php?option=com_svmap&controller=business&task=edit&cid[]='.$row->id.'&type='.$row->type.'&user_id='.@$row->user_id ); ?> ">
# lists['order_Dir'], $this->lists['order']); ?> lists['order_Dir'], $this->lists['order']); ?>
id; ?> name; ?> country; ?> postcode.' '.@$row->city.' '.@$row->address1.' '.@$row->address2.' '.@$row->address3; ?> type == '1') { echo JText::_( 'SVMAP_LINK_JOOMLA' ); } else if ($row->type == '2') { echo JText::_( 'SVMAP_LINK_CB' ); } else { echo JText::_( 'SVMAP' ); } ?>
pageNav->getListFooter(); ?>
elracodelangela/administrator/components/com_svmap/views/business/view.html.php0000644000176700017710000001056611074453335031105 0ustar essawireessawireget('Data'); $this->assignRef('business', $business); $config = $this->get('Config'); if ($this->getLayout() == 'form') { $isNew = ($business->id < 1); $text = $isNew ? JText::_( 'New' ) : JText::_( 'Edit' ); JToolBarHelper::title( 'SVMap | '.JText::_( 'SVMAP_BUSINESS' ).': [ ' . $text.' ]', 'svmap' ); JToolBarHelper::save(); if ($isNew) { JToolBarHelper::cancel(); } else { JToolBarHelper::cancel( 'cancel', 'Close' ); } JHTML::_('behavior.tooltip'); $template = $mainframe->getTemplate(); $this->assignRef('template', $template); $options = $this->get('Options'); $this->assignRef('options', $options); $this->assignRef('config', $config); $markers = $this->get('Markers'); $this->assignRef('markers', $markers); } else { JSubMenuHelper::addEntry( 'SVMap', 'index.php?option=com_svmap'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_CONFIGURATION' ).'', 'index.php?option=com_svmap&controller=configuration'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_BUSINESS' ).'', 'index.php?option=com_svmap&controller=business', true); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MEMBER' ).'', 'index.php?option=com_svmap&controller=members'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_OPTION' ).'', 'index.php?option=com_svmap&controller=options'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MARKER' ).'', 'index.php?option=com_svmap&controller=markers'); if ($config->linkas != '0' && $config->linkwith != '0') { JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_LINK' ).'', 'index.php?option=com_svmap&controller=link'); } JHTML::_('behavior.tooltip'); JToolBarHelper::title( 'SVMap | '.JText::_( 'SVMAP_BUSINESS' ), 'svmap' ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); $filter_order = $mainframe->getUserStateFromRequest('business.filter_order', 'filter_order', 'name', 'cmd'); $filter_order_Dir = $mainframe->getUserStateFromRequest('business.filter_order_Dir', 'filter_order_Dir', '', 'word'); $filter = $mainframe->getUserStateFromRequest( 'business.filter', 'filter', '', 'int' ); $filters = array(); $filters[] = JHTML::_('select.option', '', '-- '.JText::_( 'SVMAP_CATEGORY' ).' --' ); $filters[] = JHTML::_('select.option', '3', 'SVMAP' ); if ($config->linkas == '2' && $config->linkwith == '1') { $filters[] = JHTML::_('select.option', '1', JText::_( 'SVMAP_LINK_JOOMLA' ) ); } if ($config->linkas == '2' && $config->linkwith == '2') { $filters[] = JHTML::_('select.option', '2', JText::_( 'SVMAP_LINK_CB' ) ); } $lists['filter'] = JHTML::_('select.genericlist', $filters, 'filter', 'size="1" class="inputbox" onchange="form.submit()"', 'value', 'text', $filter ); $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; $this->assignRef('lists', $lists); $pageNav = & $this->get( 'Pagination' ); $this->assignRef('pageNav', $pageNav); } parent::display($tpl); } } ?>elracodelangela/administrator/components/com_svmap/views/index.html0000644000176700017710000000000011074453335026577 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/markers/0000755000176700017710000000000011074453335026260 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/markers/index.html0000644000176700017710000000000011074453335030243 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/markers/tmpl/0000755000176700017710000000000011074453335027234 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/markers/tmpl/form.php0000644000176700017710000000401011074453335030703 0ustar essawireessawire
markers->id)) { ?> markers->url)) { ?>
markers->id;?>
elracodelangela/administrator/components/com_svmap/views/markers/tmpl/index.html0000644000176700017710000000000011074453335031217 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/markers/tmpl/default.php0000644000176700017710000000435311074453335031376 0ustar essawireessawire
markers ); $i < $n; $i++) { $row = &$this->markers[$i]; $checked = JHTML::_('grid.id', $i, $row->id ); $link = JRoute::_( 'index.php?option=com_svmap&controller=markers&task=edit&cid[]='. $row->id ); ?> ">
lists['order_Dir'], $this->lists['order']); ?> lists['order_Dir'], $this->lists['order']); ?>
id; ?> name; ?>
pageNav->getListFooter(); ?>
elracodelangela/administrator/components/com_svmap/views/markers/view.html.php0000644000176700017710000000644211074453335030714 0ustar essawireessawireget('Data'); $this->assignRef('markers', $markers); if ($this->getLayout() == 'form') { $isNew = ($markers->id < 1); $text = $isNew ? JText::_( 'New' ) : JText::_( 'Edit' ); JToolBarHelper::title( 'SVMap | '.JText::_( 'SVMAP_MARKER' ).': [ ' . $text.' ]', 'svmap' ); JToolBarHelper::save(); if ($isNew) { JToolBarHelper::cancel(); } else { JToolBarHelper::cancel( 'cancel', 'Close' ); } } else { JSubMenuHelper::addEntry( 'SVMap', 'index.php?option=com_svmap'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_CONFIGURATION' ).'', 'index.php?option=com_svmap&controller=configuration'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_BUSINESS' ).'', 'index.php?option=com_svmap&controller=business'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MEMBER' ).'', 'index.php?option=com_svmap&controller=members'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_OPTION' ).'', 'index.php?option=com_svmap&controller=options'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MARKER' ).'', 'index.php?option=com_svmap&controller=markers', true); $config = $this->get('Config'); if ($config->linkas != '0' && $config->linkwith != '0') { JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_LINK' ).'', 'index.php?option=com_svmap&controller=link'); } JHTML::_('behavior.tooltip'); JToolBarHelper::title( 'SVMap | '.JText::_( 'SVMAP_MARKER' ), 'svmap' ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); $filter_order = $mainframe->getUserStateFromRequest('markers.filter_order', 'filter_order', 'name', 'cmd'); $filter_order_Dir = $mainframe->getUserStateFromRequest('markers.filter_order_Dir', 'filter_order_Dir', '', 'word'); $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; $this->assignRef('lists', $lists); $pageNav = & $this->get( 'Pagination' ); $this->assignRef('pageNav', $pageNav); } parent::display($tpl); } } ?>elracodelangela/administrator/components/com_svmap/views/options/0000755000176700017710000000000011074453335026307 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/options/index.html0000644000176700017710000000000011074453335030272 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/options/tmpl/0000755000176700017710000000000011074453335027263 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/options/tmpl/form.php0000644000176700017710000000267511074453335030751 0ustar essawireessawire
options->id)) { ?>
options->id;?>
elracodelangela/administrator/components/com_svmap/views/options/tmpl/index.html0000644000176700017710000000000011074453335031246 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/options/tmpl/default.php0000644000176700017710000000371311074453335031424 0ustar essawireessawire
options ); $i < $n; $i++) { $row = &$this->options[$i]; $checked = JHTML::_('grid.id', $i, $row->id ); $link = JRoute::_( 'index.php?option=com_svmap&controller=options&task=edit&cid[]='. $row->id ); ?> ">
# lists['order_Dir'], $this->lists['order']); ?>
id; ?> value; ?>
pageNav->getListFooter(); ?>
elracodelangela/administrator/components/com_svmap/views/options/view.html.php0000644000176700017710000000643611074453335030746 0ustar essawireessawireget('Data'); $this->assignRef('options', $options); if ($this->getLayout() == 'form') { $isNew = ($options->id < 1); $text = $isNew ? JText::_( 'New' ) : JText::_( 'Edit' ); JToolBarHelper::title( 'SVMap | '.JText::_( 'SVMAP_OPTION' ).': [ ' . $text.' ]', 'svmap' ); JToolBarHelper::save(); if ($isNew) { JToolBarHelper::cancel(); } else { JToolBarHelper::cancel( 'cancel', 'Close' ); } } else { JSubMenuHelper::addEntry( 'SVMap', 'index.php?option=com_svmap'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_CONFIGURATION' ).'', 'index.php?option=com_svmap&controller=configuration'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_BUSINESS' ).'', 'index.php?option=com_svmap&controller=business'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MEMBER' ).'', 'index.php?option=com_svmap&controller=members'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_OPTION' ).'', 'index.php?option=com_svmap&controller=options', true); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MARKER' ).'', 'index.php?option=com_svmap&controller=markers'); $config = $this->get('Config'); if ($config->linkas != '0' && $config->linkwith != '0') { JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_LINK' ).'', 'index.php?option=com_svmap&controller=link'); } JHTML::_('behavior.tooltip'); JToolBarHelper::title( 'SVMap | '.JText::_( 'SVMAP_OPTION' ), 'svmap' ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); $filter_order = $mainframe->getUserStateFromRequest('options.filter_order', 'filter_order', 'value', 'cmd'); $filter_order_Dir = $mainframe->getUserStateFromRequest('options.filter_order_Dir', 'filter_order_Dir', '', 'word'); $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; $this->assignRef('lists', $lists); $pageNav = & $this->get( 'Pagination' ); $this->assignRef('pageNav', $pageNav); } parent::display($tpl); } } ?>elracodelangela/administrator/components/com_svmap/views/svmap/0000755000176700017710000000000011074453335025742 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/svmap/index.html0000644000176700017710000000000011074453335027725 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/svmap/tmpl/0000755000176700017710000000000011074453335026716 5ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/svmap/tmpl/index.html0000644000176700017710000000000011074453335030701 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/views/svmap/tmpl/default.php0000644000176700017710000000606411074453335031061 0ustar essawireessawire config->linkwith != '0' && $this->config->linkas != '0') { ?>
<?php echo JText::_( 'SVMAP_CONFIGURATION' ); ?>
<?php echo JText::_( 'SVMAP_BUSINESS' ); ?>
<?php echo JText::_( 'SVMAP_MEMBER' ); ?>
<?php echo JText::_( 'SVMAP_OPTION' ); ?>
<?php echo JText::_( 'SVMAP_MARKER' ); ?>
<?php echo JText::_( 'SVMAP_LINK' ); ?>
elracodelangela/administrator/components/com_svmap/views/svmap/view.html.php0000644000176700017710000000445211074453335030375 0ustar essawireessawire'.JText::_( 'SVMAP_CONFIGURATION' ).'', 'index.php?option=com_svmap&controller=configuration'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_BUSINESS' ).'', 'index.php?option=com_svmap&controller=business'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MEMBER' ).'', 'index.php?option=com_svmap&controller=members'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_OPTION' ).'', 'index.php?option=com_svmap&controller=options'); JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_MARKER' ).'', 'index.php?option=com_svmap&controller=markers'); $config = $this->get('Config'); $this->assignRef('config', $config); if ($config->linkas != '0' && $config->linkwith != '0') { JSubMenuHelper::addEntry( ''.JText::_( 'SVMAP_LINK' ).'', 'index.php?option=com_svmap&controller=link'); } JHTML::_('behavior.tooltip'); JToolBarHelper::title( JText::_( 'SVMAP_TITLE' ), 'svmap' ); $template = $mainframe->getTemplate(); $this->assignRef('template', $template); parent::display($tpl); } } ?> elracodelangela/administrator/components/com_svmap/admin.svmap.php0000644000176700017710000000136311074453335026410 0ustar essawireessawireaddStyleSheet('components/com_svmap/svmap.css'); require_once( JPATH_COMPONENT.DS.'controller.php' ); if($controller = JRequest::getVar('controller')) { require_once (JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php'); } $classname = 'SVMapController'.$controller; $controller = new $classname(); $controller->execute( JRequest::getVar('task')); $controller->redirect(); ?>elracodelangela/administrator/components/com_svmap/controller.php0000644000176700017710000000071711074453335026360 0ustar essawireessawireelracodelangela/administrator/components/com_svmap/install.svmap.php0000644000176700017710000000125011074453335026761 0ustar essawireessawireload('com_svmap'); echo JText::_( 'SVMAP_INSTALL_MESSSAGE' ); } ?>elracodelangela/administrator/components/com_config/0000755000176700017710000000000011061563557023602 5ustar essawireessawireelracodelangela/administrator/components/com_config/toolbar.config.php0000755000176700017710000000141311061563414027213 0ustar essawireessawireelracodelangela/administrator/components/com_config/controllers/component.php0000755000176700017710000000516611061563414030666 0ustar essawireessawireregisterTask( 'apply', 'save' ); } /** * Show the configuration edit form * @param string The URL option */ function edit() { JRequest::setVar('tmpl', 'component'); //force the component template $component = JRequest::getCmd( 'component' ); if (empty( $component )) { JError::raiseWarning( 500, 'Not a valid component' ); return false; } // load the component's language file $lang = & JFactory::getLanguage(); $lang->load( $component ); $model = $this->getModel('Component' ); $table =& JTable::getInstance('component'); if (!$table->loadByOption( $component )) { JError::raiseWarning( 500, 'Not a valid component' ); return false; } $view = new ConfigViewComponent( ); $view->assignRef('component', $table); $view->setModel( $model, true ); $view->display(); } /** * Save the configuration */ function save() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $component = JRequest::getCmd( 'component' ); $table =& JTable::getInstance('component'); if (!$table->loadByOption( $component )) { JError::raiseWarning( 500, 'Not a valid component' ); return false; } $post = JRequest::get( 'post' ); $post['option'] = $component; $table->bind( $post ); // pre-save checks if (!$table->check()) { JError::raiseWarning( 500, $table->getError() ); return false; } // save the changes if (!$table->store()) { JError::raiseWarning( 500, $table->getError() ); return false; } //$this->setRedirect( 'index.php?option=com_config', $msg ); $this->edit(); } /** * Cancel operation */ function cancel() { $this->setRedirect( 'index.php' ); } }elracodelangela/administrator/components/com_config/controllers/application.php0000755000176700017710000005276611061563414031177 0ustar essawireessawireregisterTask( 'apply', 'save' ); } /** * Show the configuration edit form * @param string The URL option */ function showConfig() { // Initialize some variables $db =& JFactory::getDBO(); $row = new JConfig(); // compile list of the languages $langs = array (); $menuitems = array (); $lists = array (); // PRE-PROCESS SOME LIST // -- Editors -- // compile list of the editors $query = 'SELECT element AS value, name AS text' .' FROM #__plugins' .' WHERE folder = "editors"' .' AND published = 1' .' ORDER BY ordering, name' ; $db->setQuery($query); $edits = $db->loadObjectList(); // -- Show/Hide -- $show_hide = array (JHTML::_('select.option', 1, JText::_('Hide')), JHTML::_('select.option', 0, JText::_('Show')),); $show_hide_r = array (JHTML::_('select.option', 0, JText::_('Hide')), JHTML::_('select.option', 1, JText::_('Show')),); // -- menu items -- $query = 'SELECT id AS value, name AS text FROM #__menu' .' WHERE ( type="content_section" OR type="components" OR type="content_typed" )' .' AND published = 1' .' AND access = 0' .' ORDER BY name' ; $db->setQuery($query); $menuitems = array_merge($menuitems, $db->loadObjectList()); // SITE SETTINGS $lists['offline'] = JHTML::_('select.booleanlist', 'offline', 'class="inputbox"', $row->offline); if (!$row->editor) { $row->editor = ''; } // build the html select list $lists['editor'] = JHTML::_('select.genericlist', $edits, 'editor', 'class="inputbox" size="1"', 'value', 'text', $row->editor); $listLimit = array (JHTML::_('select.option', 5, 5), JHTML::_('select.option', 10, 10), JHTML::_('select.option', 15, 15), JHTML::_('select.option', 20, 20), JHTML::_('select.option', 25, 25), JHTML::_('select.option', 30, 30), JHTML::_('select.option', 50, 50), JHTML::_('select.option', 100, 100),); $lists['list_limit'] = JHTML::_('select.genericlist', $listLimit, 'list_limit', 'class="inputbox" size="1"', 'value', 'text', ($row->list_limit ? $row->list_limit : 50)); jimport('joomla.language.help'); $helpsites = array (); $helpsites = JHelp::createSiteList(JPATH_BASE.DS.'help'.DS.'helpsites-15.xml', $row->helpurl); array_unshift($helpsites, JHTML::_('select.option', '', JText::_('local'))); $lists['helpsites'] = JHTML::_('select.genericlist', $helpsites, 'helpurl', ' class="inputbox"', 'value', 'text', $row->helpurl); // DEBUG $lists['debug'] = JHTML::_('select.booleanlist', 'debug', 'class="inputbox"', $row->debug); $lists['debug_lang'] = JHTML::_('select.booleanlist', 'debug_lang', 'class="inputbox"', $row->debug_lang); // DATABASE SETTINGS // SERVER SETTINGS $lists['gzip'] = JHTML::_('select.booleanlist', 'gzip', 'class="inputbox"', $row->gzip); $errors = array (JHTML::_('select.option', -1, JText::_('System Default')), JHTML::_('select.option', 0, JText::_('None')), JHTML::_('select.option', E_ERROR | E_WARNING | E_PARSE, JText::_('Simple')), JHTML::_('select.option', E_ALL, JText::_('Maximum'))); $lists['xmlrpc_server'] = JHTML::_('select.booleanlist', 'xmlrpc_server', 'class="inputbox"', $row->xmlrpc_server); $lists['error_reporting'] = JHTML::_('select.genericlist', $errors, 'error_reporting', 'class="inputbox" size="1"', 'value', 'text', $row->error_reporting); $lists['enable_ftp'] = JHTML::_('select.booleanlist', 'ftp_enable', 'class="inputbox"', intval($row->ftp_enable)); // LOCALE SETTINGS $timeoffset = array ( JHTML::_('select.option', -12, JText::_('(UTC -12:00) International Date Line West')), JHTML::_('select.option', -11, JText::_('(UTC -11:00) Midway Island, Samoa')), JHTML::_('select.option', -10, JText::_('(UTC -10:00) Hawaii')), JHTML::_('select.option', -9.5, JText::_('(UTC -09:30) Taiohae, Marquesas Islands')), JHTML::_('select.option', -9, JText::_('(UTC -09:00) Alaska')), JHTML::_('select.option', -8, JText::_('(UTC -08:00) Pacific Time (US & Canada)')), JHTML::_('select.option', -7, JText::_('(UTC -07:00) Mountain Time (US & Canada)')), JHTML::_('select.option', -6, JText::_('(UTC -06:00) Central Time (US & Canada), Mexico City')), JHTML::_('select.option', -5, JText::_('(UTC -05:00) Eastern Time (US & Canada), Bogota, Lima')), JHTML::_('select.option', -4.5, JText::_('(UTC -04:30) Venezuela')), JHTML::_('select.option', -4, JText::_('(UTC -04:00) Atlantic Time (Canada), Caracas, La Paz')), JHTML::_('select.option', -3.5, JText::_('(UTC -03:30) St. John\'s, Newfoundland, Labrador')), JHTML::_('select.option', -3, JText::_('(UTC -03:00) Brazil, Buenos Aires, Georgetown')), JHTML::_('select.option', -2, JText::_('(UTC -02:00) Mid-Atlantic')), JHTML::_('select.option', -1, JText::_('(UTC -01:00) Azores, Cape Verde Islands')), JHTML::_('select.option', 0, JText::_('(UTC 00:00) Western Europe Time, London, Lisbon, Casablanca')), JHTML::_('select.option', 1, JText::_('(UTC +01:00) Amsterdam, Berlin, Brussels, Copenhagen, Madrid, Paris')), JHTML::_('select.option', 2, JText::_('(UTC +02:00) Istanbul, Jerusalem, Kaliningrad, South Africa')), JHTML::_('select.option', 3, JText::_('(UTC +03:00) Baghdad, Riyadh, Moscow, St. Petersburg')), JHTML::_('select.option', 3.5, JText::_('(UTC +03:30) Tehran')), JHTML::_('select.option', 4, JText::_('(UTC +04:00) Abu Dhabi, Muscat, Baku, Tbilisi')), JHTML::_('select.option', 4.5, JText::_('(UTC +04:30) Kabul')), JHTML::_('select.option', 5, JText::_('(UTC +05:00) Ekaterinburg, Islamabad, Karachi, Tashkent')), JHTML::_('select.option', 5.5, JText::_('(UTC +05:30) Bombay, Calcutta, Madras, New Delhi, Colombo')), JHTML::_('select.option', 5.75, JText::_('(UTC +05:45) Kathmandu')), JHTML::_('select.option', 6, JText::_('(UTC +06:00) Almaty, Dhaka')), JHTML::_('select.option', 6.30, JText::_('(UTC +06:30) Yagoon')), JHTML::_('select.option', 7, JText::_('(UTC +07:00) Bangkok, Hanoi, Jakarta')), JHTML::_('select.option', 8, JText::_('(UTC +08:00) Beijing, Perth, Singapore, Hong Kong')), JHTML::_('select.option', 8.75, JText::_('(UTC +08:00) Western Australia')), JHTML::_('select.option', 9, JText::_('(UTC +09:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk')), JHTML::_('select.option', 9.5, JText::_('(UTC +09:30) Adelaide, Darwin, Yakutsk')), JHTML::_('select.option', 10, JText::_('(UTC +10:00) Eastern Australia, Guam, Vladivostok')), JHTML::_('select.option', 10.5, JText::_('(UTC +10:30) Lord Howe Island (Australia)')), JHTML::_('select.option', 11, JText::_('(UTC +11:00) Magadan, Solomon Islands, New Caledonia')), JHTML::_('select.option', 11.30, JText::_('(UTC +11:30) Norfolk Island')), JHTML::_('select.option', 12, JText::_('(UTC +12:00) Auckland, Wellington, Fiji, Kamchatka')), JHTML::_('select.option', 12.75, JText::_('(UTC +12:45) Chatham Island')), JHTML::_('select.option', 13, JText::_('(UTC +13:00) Tonga')), JHTML::_('select.option', 14, JText::_('(UTC +14:00) Kiribati')),); $lists['offset'] = JHTML::_('select.genericlist', $timeoffset, 'offset', 'class="inputbox" size="1"', 'value', 'text', $row->offset); // MAIL SETTINGS $mailer = array (JHTML::_('select.option', 'mail', JText::_('PHP mail function')), JHTML::_('select.option', 'sendmail', JText::_('Sendmail')), JHTML::_('select.option', 'smtp', JText::_('SMTP Server'))); $lists['mailer'] = JHTML::_('select.genericlist', $mailer, 'mailer', 'class="inputbox" size="1"', 'value', 'text', $row->mailer); $lists['smtpauth'] = JHTML::_('select.booleanlist', 'smtpauth', 'class="inputbox"', $row->smtpauth); // CACHE SETTINGS $lists['caching'] = JHTML::_('select.booleanlist', 'caching', 'class="inputbox"', $row->caching); jimport('joomla.cache.cache'); $stores = JCache::getStores(); $options = array(); foreach($stores as $store) { $options[] = JHTML::_('select.option', $store, JText::_(ucfirst($store)) ); } $lists['cache_handlers'] = JHTML::_('select.genericlist', $options, 'cache_handler', 'class="inputbox" size="1"', 'value', 'text', $row->cache_handler); // MEMCACHE SETTINGS if (!empty($row->memcache_settings) && !is_array($row->memcache_settings)) { $row->memcache_settings = unserialize(stripslashes($row->memcache_settings)); } $lists['memcache_persist'] = JHTML::_('select.booleanlist', 'memcache_settings[persistent]', 'class="inputbox"', @$row->memcache_settings['persistent']); $lists['memcache_compress'] = JHTML::_('select.booleanlist', 'memcache_settings[compression]', 'class="inputbox"', @$row->memcache_settings['compression']); // META SETTINGS $lists['MetaAuthor'] = JHTML::_('select.booleanlist', 'MetaAuthor', 'class="inputbox"', $row->MetaAuthor); $lists['MetaTitle'] = JHTML::_('select.booleanlist', 'MetaTitle', 'class="inputbox"', $row->MetaTitle); // SEO SETTINGS $lists['sef'] = JHTML::_('select.booleanlist', 'sef', 'class="inputbox"', $row->sef); $lists['sef_rewrite'] = JHTML::_('select.booleanlist', 'sef_rewrite', 'class="inputbox"', $row->sef_rewrite); $lists['sef_suffix'] = JHTML::_('select.booleanlist', 'sef_suffix', 'class="inputbox"', $row->sef_suffix); // FEED SETTINGS $formats = array (JHTML::_('select.option', 'RSS2.0', JText::_('RSS')), JHTML::_('select.option', 'Atom', JText::_('Atom'))); $summary = array (JHTML::_('select.option', 1, JText::_('Full Text')), JHTML::_('select.option', 0, JText::_('Intro Text')),); $lists['feed_limit'] = JHTML::_('select.genericlist', $listLimit, 'feed_limit', 'class="inputbox" size="1"', 'value', 'text', ($row->feed_limit ? $row->feed_limit : 10)); // SESSION SETTINGS $stores = JSession::getStores(); $options = array(); foreach($stores as $store) { $options[] = JHTML::_('select.option', $store, JText::_(ucfirst($store)) ); } $lists['session_handlers'] = JHTML::_('select.genericlist', $options, 'session_handler', 'class="inputbox" size="1"', 'value', 'text', $row->session_handler); // SHOW EDIT FORM ConfigApplicationView::showConfig($row, $lists); } /** * Save the configuration */ function save() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); $ftp = JClientHelper::getCredentials('ftp'); //Save user and media manager settings $table =& JTable::getInstance('component'); $userpost['params'] = JRequest::getVar('userparams', array(), 'post', 'array'); $userpost['option'] = 'com_users'; $table->loadByOption( 'com_users' ); $table->bind( $userpost ); // pre-save checks if (!$table->check()) { JError::raiseWarning( 500, $table->getError() ); return false; } // save the changes if (!$table->store()) { JError::raiseWarning( 500, $table->getError() ); return false; } $mediapost['params'] = JRequest::getVar('mediaparams', array(), 'post', 'array'); $mediapost['option'] = 'com_media'; //Sanitize $file_path and $image_path $file_path = $mediapost['params']['file_path']; $image_path = $mediapost['params']['image_path']; if(strpos($file_path, '/') === 0 || strpos($file_path, '\\') === 0) { //Leading slash. Kill it and default to /media $file_path = 'images'; } if(strpos($image_path, '/') === 0 || strpos($image_path, '\\') === 0) { //Leading slash. Kill it and default to /media $image_path = 'images/stories'; } if(strpos($file_path, '..') !== false) { //downward directories. Kill it and default to images/ $file_path = 'images'; } if(strpos($image_path, '..') !== false) { //downward directories Kill it and default to images/stories $image_path = 'images/stories'; } $mediapost['params']['file_path'] = $file_path; $mediapost['params']['image_path'] = $image_path; $table->loadByOption( 'com_media' ); $table->bind( $mediapost ); // pre-save checks if (!$table->check()) { JError::raiseWarning( 500, $table->getError() ); return false; } // save the changes if (!$table->store()) { JError::raiseWarning( 500, $table->getError() ); return false; } $config = new JRegistry('config'); $config_array = array(); // SITE SETTINGS $config_array['offline'] = JRequest::getVar('offline', 0, 'post', 'int'); $config_array['editor'] = JRequest::getVar('editor', 'tinymce', 'post', 'cmd'); $config_array['list_limit'] = JRequest::getVar('list_limit', 20, 'post', 'int'); $config_array['helpurl'] = JRequest::getVar('helpurl', 'http://help.joomla.org', 'post', 'string'); // DEBUG $config_array['debug'] = JRequest::getVar('debug', 0, 'post', 'int'); $config_array['debug_lang'] = JRequest::getVar('debug_lang', 0, 'post', 'int'); // SEO SETTINGS $config_array['sef'] = JRequest::getVar('sef', 0, 'post', 'int'); $config_array['sef_rewrite'] = JRequest::getVar('sef_rewrite', 0, 'post', 'int'); $config_array['sef_suffix'] = JRequest::getVar('sef_suffix', 0, 'post', 'int'); // FEED SETTINGS $config_array['feed_limit'] = JRequest::getVar('feed_limit', 10, 'post', 'int'); // SERVER SETTINGS $config_array['secret'] = JRequest::getVar('secret', 0, 'post', 'string'); $config_array['gzip'] = JRequest::getVar('gzip', 0, 'post', 'int'); $config_array['error_reporting'] = JRequest::getVar('error_reporting', -1, 'post', 'int'); $config_array['xmlrpc_server'] = JRequest::getVar('xmlrpc_server', 0, 'post', 'int'); $config_array['log_path'] = JRequest::getVar('log_path', JPATH_ROOT.DS.'logs', 'post', 'string'); $config_array['tmp_path'] = JRequest::getVar('tmp_path', JPATH_ROOT.DS.'tmp', 'post', 'string'); $config_array['live_site'] = rtrim(JRequest::getVar('live_site','','post','string'), '/\\'); // LOCALE SETTINGS $config_array['offset'] = JRequest::getVar('offset', 0, 'post', 'float'); // CACHE SETTINGS $config_array['caching'] = JRequest::getVar('caching', 0, 'post', 'int'); $config_array['cachetime'] = JRequest::getVar('cachetime', 900, 'post', 'int'); $config_array['cache_handler'] = JRequest::getVar('cache_handler', 'file', 'post', 'word'); $config_array['memcache_settings'] = JRequest::getVar('memcache_settings', array(), 'post'); // FTP SETTINGS $config_array['ftp_enable'] = JRequest::getVar('ftp_enable', 0, 'post', 'int'); $config_array['ftp_host'] = JRequest::getVar('ftp_host', '', 'post', 'string'); $config_array['ftp_port'] = JRequest::getVar('ftp_port', '', 'post', 'int'); $config_array['ftp_user'] = JRequest::getVar('ftp_user', '', 'post', 'string'); $config_array['ftp_pass'] = JRequest::getVar('ftp_pass', '', 'post', 'string', JREQUEST_ALLOWRAW); $config_array['ftp_root'] = JRequest::getVar('ftp_root', '', 'post', 'string'); // DATABASE SETTINGS $config_array['dbtype'] = JRequest::getVar('dbtype', 'mysql', 'post', 'word'); $config_array['host'] = JRequest::getVar('host', 'localhost', 'post', 'string'); $config_array['user'] = JRequest::getVar('user', '', 'post', 'string'); $config_array['db'] = JRequest::getVar('db', '', 'post', 'string'); $config_array['dbprefix'] = JRequest::getVar('dbprefix', 'jos_', 'post', 'string'); // MAIL SETTINGS $config_array['mailer'] = JRequest::getVar('mailer', 'mail', 'post', 'word'); $config_array['mailfrom'] = JRequest::getVar('mailfrom', '', 'post', 'string'); $config_array['fromname'] = JRequest::getVar('fromname', 'Joomla 1.5', 'post', 'string'); $config_array['sendmail'] = JRequest::getVar('sendmail', '/usr/sbin/sendmail', 'post', 'string'); $config_array['smtpauth'] = JRequest::getVar('smtpauth', 0, 'post', 'int'); $config_array['smtpuser'] = JRequest::getVar('smtpuser', '', 'post', 'string'); $config_array['smtppass'] = JRequest::getVar('smtppass', '', 'post', 'string', JREQUEST_ALLOWRAW); $config_array['smtphost'] = JRequest::getVar('smtphost', '', 'post', 'string'); // META SETTINGS $config_array['MetaAuthor'] = JRequest::getVar('MetaAuthor', 1, 'post', 'int'); $config_array['MetaTitle'] = JRequest::getVar('MetaTitle', 1, 'post', 'int'); // SESSION SETTINGS $config_array['lifetime'] = JRequest::getVar('lifetime', 0, 'post', 'int'); $config_array['session_handler'] = JRequest::getVar('session_handler', 'none', 'post', 'word'); //LANGUAGE SETTINGS //$config_array['lang'] = JRequest::getVar('lang', 'none', 'english', 'cmd'); //$config_array['language'] = JRequest::getVar('language', 'en-GB', 'post', 'cmd'); $config->loadArray($config_array); //override any possible database password change $config->setValue('config.password', $mainframe->getCfg('password')); // handling of special characters $sitename = htmlspecialchars( JRequest::getVar( 'sitename', '', 'post', 'string' ), ENT_COMPAT, 'UTF-8' ); $config->setValue('config.sitename', $sitename); $MetaDesc = htmlspecialchars( JRequest::getVar( 'MetaDesc', '', 'post', 'string' ), ENT_COMPAT, 'UTF-8' ); $config->setValue('config.MetaDesc', $MetaDesc); $MetaKeys = htmlspecialchars( JRequest::getVar( 'MetaKeys', '', 'post', 'string' ), ENT_COMPAT, 'UTF-8' ); $config->setValue('config.MetaKeys', $MetaKeys); // handling of quotes (double and single) and amp characters // htmlspecialchars not used to preserve ability to insert other html characters $offline_message = JRequest::getVar( 'offline_message', '', 'post', 'string' ); $offline_message = JFilterOutput::ampReplace( $offline_message ); $offline_message = str_replace( '"', '"', $offline_message ); $offline_message = str_replace( "'", ''', $offline_message ); $config->setValue('config.offline_message', $offline_message); //purge the database session table (only if we are changing to a db session store) if($mainframe->getCfg('session_handler') != 'database' && $config->getValue('session_handler') == 'database') { $table =& JTable::getInstance('session'); $table->purge(-1); } // Get the path of the configuration file $fname = JPATH_CONFIGURATION.DS.'configuration.php'; // Update the credentials with the new settings $oldconfig =& JFactory::getConfig(); $oldconfig->setValue('config.ftp_enable', $config_array['ftp_enable']); $oldconfig->setValue('config.ftp_host', $config_array['ftp_host']); $oldconfig->setValue('config.ftp_port', $config_array['ftp_port']); $oldconfig->setValue('config.ftp_user', $config_array['ftp_user']); $oldconfig->setValue('config.ftp_pass', $config_array['ftp_pass']); $oldconfig->setValue('config.ftp_root', $config_array['ftp_root']); JClientHelper::getCredentials('ftp', true); if(!$config->get('caching') && $oldconfig->get('caching')) { $cache = JFactory::getCache(); $cache->clean(); } // Try to make configuration.php writeable jimport('joomla.filesystem.path'); if (!$ftp['enabled'] && JPath::isOwner($fname) && !JPath::setPermissions($fname, '0644')) { JError::raiseNotice('SOME_ERROR_CODE', 'Could not make configuration.php writable'); } // Get the config registry in PHP class format and write it to configuation.php jimport('joomla.filesystem.file'); if (JFile::write($fname, $config->toString('PHP', 'config', array('class' => 'JConfig')))) { $msg = JText::_('The Configuration Details have been updated'); } else { $msg = JText::_('ERRORCONFIGFILE'); } // Redirect appropriately $task = $this->getTask(); switch ($task) { case 'apply' : $this->setRedirect('index.php?option=com_config', $msg); break; case 'save' : default : $this->setRedirect('index.php', $msg); break; } // Try to make configuration.php unwriteable //if (!$ftp['enabled'] && JPath::isOwner($fname) && !JPath::setPermissions($fname, '0444')) { if ($config_array['ftp_enable']==0 && !$ftp['enabled'] && JPath::isOwner($fname) && !JPath::setPermissions($fname, '0444')) { JError::raiseNotice('SOME_ERROR_CODE', 'Could not make configuration.php unwritable'); } } /** * Cancel operation */ function cancel() { // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); $this->setRedirect( 'index.php' ); } function refreshHelp() { jimport('joomla.filesystem.file'); // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); if (($data = file_get_contents('http://help.joomla.org/helpsites-15.xml')) === false ) { $this->setRedirect('index.php?option=com_config', JText::_('HELPREFRESH ERROR FETCH'), 'error'); } else if (!JFile::write(JPATH_BASE.DS.'help'.DS.'helpsites-15.xml', $data)) { $this->setRedirect('index.php?option=com_config', JText::_('HELPREFRESH ERROR STORE'), 'error'); } else { $this->setRedirect('index.php?option=com_config', JText::_('HELPREFRESH SUCCESS')); } } } elracodelangela/administrator/components/com_config/models/0000755000176700017710000000000011061563557025065 5ustar essawireessawireelracodelangela/administrator/components/com_config/models/index.html0000755000176700017710000000005411061563414027054 0ustar essawireessawireelracodelangela/administrator/components/com_config/models/component.php0000755000176700017710000000304711061563414027577 0ustar essawireessawireloadByOption( $component ); // work out file path if ($path = JRequest::getString( 'path' )) { $path = JPath::clean( JPATH_SITE.DS.$path ); JPath::check( $path ); } else { $option = preg_replace( '#\W#', '', $table->option ); $path = JPATH_ADMINISTRATOR.DS.'components'.DS.$option.DS.'config.xml'; } if (file_exists( $path )) { $instance = new JParameter( $table->params, $path ); } else { $instance = new JParameter( $table->params ); } } return $instance; } }elracodelangela/administrator/components/com_config/index.html0000755000176700017710000000005411061563414025571 0ustar essawireessawireelracodelangela/administrator/components/com_config/views/0000755000176700017710000000000011061563557024737 5ustar essawireessawireelracodelangela/administrator/components/com_config/views/component/0000755000176700017710000000000011061563557026741 5ustar essawireessawireelracodelangela/administrator/components/com_config/views/component/index.html0000755000176700017710000000005411061563414030730 0ustar essawireessawireelracodelangela/administrator/components/com_config/views/component/view.php0000755000176700017710000000441411061563414030422 0ustar essawireessawiregetModel(); $params = &$model->getParams(); $component = JComponentHelper::getComponent(JRequest::getCmd( 'component' )); $document = & JFactory::getDocument(); $document->setTitle( JText::_('Edit Preferences') ); JHTML::_('behavior.tooltip'); ?>
component->name) ?>
render();?>
elracodelangela/administrator/components/com_config/views/application/0000755000176700017710000000000011061563557027242 5ustar essawireessawireelracodelangela/administrator/components/com_config/views/application/index.html0000755000176700017710000000005411061563414031231 0ustar essawireessawireelracodelangela/administrator/components/com_config/views/application/tmpl/0000755000176700017710000000000011061563557030216 5ustar essawireessawireelracodelangela/administrator/components/com_config/views/application/tmpl/ftp.php0000755000176700017710000000150411061563414031513 0ustar essawireessawire
ftp)): ?>

ftp->message); ?>

elracodelangela/administrator/components/com_config/views/application/tmpl/config_system.php0000755000176700017710000000312011061563414033567 0ustar essawireessawire
secret; ?>
elracodelangela/administrator/components/com_config/views/application/tmpl/config_ftp.php0000755000176700017710000000432611061563414033045 0ustar essawireessawire
elracodelangela/administrator/components/com_config/views/application/tmpl/config_locale.php0000755000176700017710000000103311061563414033503 0ustar essawireessawire
elracodelangela/administrator/components/com_config/views/application/tmpl/index.html0000755000176700017710000000005411061563414032205 0ustar essawireessawireelracodelangela/administrator/components/com_config/views/application/tmpl/config_metadata.php0000755000176700017710000000331711061563414034033 0ustar essawireessawire
elracodelangela/administrator/components/com_config/views/application/tmpl/config_database.php0000755000176700017710000000424211061563414034015 0ustar essawireessawire
 
elracodelangela/administrator/components/com_config/views/application/tmpl/config_cache.php0000755000176700017710000000410411061563414033311 0ustar essawireessawire
cache_handler == 'memcache' || $row->session_handler == 'memcache') : ?>
:

:
elracodelangela/administrator/components/com_config/views/application/tmpl/config_seo.php0000755000176700017710000000246311061563414033042 0ustar essawireessawire
elracodelangela/administrator/components/com_config/views/application/tmpl/config_session.php0000755000176700017710000000166711061563414033744 0ustar essawireessawire
  
elracodelangela/administrator/components/com_config/views/application/tmpl/config_site.php0000755000176700017710000000420011061563414033207 0ustar essawireessawire
elracodelangela/administrator/components/com_config/views/application/tmpl/config_debug.php0000755000176700017710000000140111061563414033331 0ustar essawireessawire
elracodelangela/administrator/components/com_config/views/application/tmpl/navigation.php0000755000176700017710000000057411061563414033067 0ustar essawireessawire
elracodelangela/administrator/components/com_config/views/application/tmpl/config_mail.php0000755000176700017710000000551011061563414033172 0ustar essawireessawire
elracodelangela/administrator/components/com_config/views/application/tmpl/config_server.php0000755000176700017710000000231711061563414033560 0ustar essawireessawire
elracodelangela/administrator/components/com_config/views/application/view.php0000755000176700017710000001036011061563414030720 0ustar essawireessawireloadByOption( 'com_users' ); $userparams = new JParameter( $table->params, JPATH_ADMINISTRATOR.DS.'components'.DS.'com_users'.DS.'config.xml' ); $table->loadByOption( 'com_media' ); $mediaparams = new JParameter( $table->params, JPATH_ADMINISTRATOR.DS.'components'.DS.'com_media'.DS.'config.xml' ); // Build the component's submenu $contents = ''; $tmplpath = dirname(__FILE__).DS.'tmpl'; ob_start(); require_once($tmplpath.DS.'navigation.php'); $contents = ob_get_contents(); ob_end_clean(); // Set document data $document =& JFactory::getDocument(); $document->setBuffer($contents, 'modules', 'submenu'); // Load settings for the FTP layer jimport('joomla.client.helper'); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); ?>
render('userparams'); ?>
render('mediaparams'); ?>
'; return $tip; } } elracodelangela/administrator/components/com_config/admin.config.php0000755000176700017710000000271011061563414026642 0ustar essawireessawireauthorize( 'com_config', 'manage' )) { $mainframe->redirect('index.php', JText::_('ALERTNOTAUTH')); } // Require the base controller require_once (JPATH_COMPONENT.DS.'controller.php'); // Require specific controller if requested if($controller = JRequest::getWord('controller', 'application')) { $path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php'; if (file_exists($path)) { require_once $path; } else { $controller = ''; } } // Create the controller $classname = 'ConfigController'.ucfirst($controller); $controller = new $classname( ); JResponse::setHeader( 'Expires', 'Mon, 26 Jul 1997 05:00:00 GMT', true ); // Perform the Request task $controller->execute( JRequest::getCmd( 'task' ) ); $controller->redirect();elracodelangela/administrator/components/com_config/controller.php0000755000176700017710000000155011061563414026472 0ustar essawireessawire Configuration Manager Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Configuration Manager elracodelangela/administrator/components/com_config/toolbar.config.html.php0000755000176700017710000000167611061563414030171 0ustar essawireessawire true)); echo $pane->startPane("content-pane"); foreach ($modules as $module) { $title = $module->title ; echo $pane->startPanel( $title, 'cpanel-panel-'.$module->name ); echo JModuleHelper::renderModule($module); echo $pane->endPanel(); } echo $pane->endPane(); } }elracodelangela/administrator/components/com_cpanel/toolbar.cpanel.html.php0000755000176700017710000000152211061563420030146 0ustar essawireessawireelracodelangela/administrator/components/com_cpanel/cpanel.xml0000755000176700017710000000107611061563420025557 0ustar essawireessawire Control Panel Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 The Control Panel is the Home Page of the Joomla! Administrator Back-end elracodelangela/administrator/components/com_cpanel/admin.cpanel.php0000755000176700017710000000155711061563420026641 0ustar essawireessawiregetPath( 'toolbar_html' ) ); switch($act) { default: break; case "createMassContent": case "createMassSections": case "createMassCategories": menuMasscontent::MENU_Default(); break; case "deleteMassContent": menuMasscontent::MENU_Delete(); } ?> elracodelangela/administrator/components/com_masscontent/admin.masscontent.html.php0000644000176700017710000006063611072762732032005 0ustar essawireessawire

Mass content

Create up to get('nbMassContent'); ?> pages in a row! get('nbMassContent')+1;$i++) { ?> display( 'title[]', "" ,'100', '100', '50', '100' ) ;?> get('displayIntroText')==1 ){ ?> get('displayWysiwyg')=="1") echo "" ; else {?> '; ?> get('displayFullText')==1){ ?> get('displayWysiwyg')=="1") echo "" ; else {?> '; ?> get('displayMetaDescription')==1){ ?> '; ?> get('displayMetaKeywords')==1){ ?> '; ?>
Title (page ):
Intro text (page ): ".$editor->display( 'introtext[]', "" ,'50%', '50', '20', '50' )."
Full text (page ): ".$editor->display( 'fulltext[]', "" ,'50%', '50', '20', '50' )."
Meta Description: Meta Keywords:
Options get('displayMetaRobots')==1){ ?> get('displayMetaAuthor')==1){ ?>
Copy 1st intro/full/meta text to all empty pages
PS: Only pages with title will be inserted.
Published
Access Level ?
Change Creator:
Section: Category:
Link to menu:
Robots:
Author:
Created Date
Start Publishing
Finish Publishing

Mass Sections

Create up to get('nbMassSections');?> sections in a row! get('nbMassSections')+1;$i++) { ?>
Section : Title: Name:
Options
Copy Title to Name
Access Level ?
Published:
Link to menu:
Select Menu Type:

Mass Categories

Create up to get('nbMassCategories'); ?> categories in a row! get('nbMassCategories')+1;$i++) { ?>
Category : Title: Name:
Options
Copy Title to Name
Section:
Access Level ?
Published:
Link to menu:
Select Menu Type:
Mass Content

Delete mass content

Delete sections and categories
This will destroy the section, the category, all the contents in that section/category and all the associated menu links.
Section: Delete section and menu links too
Category: Delete category and menu links too Select all categories
elracodelangela/administrator/components/com_masscontent/index.html0000644000176700017710000000005411072762732026665 0ustar essawireessawireelracodelangela/administrator/components/com_masscontent/masscontent.xml0000644000176700017710000000625711072762732027763 0ustar essawireessawire masscontent Johann Eriksen 15.03.2008 GNU/GPL johann@baticore.com http://www.baticore.com 1.1 Create Mass Content Mass content Create mass content Create mass sections Create mass categories Delete mass content admin.masscontent.php admin.masscontent.html.php masscontent.class.php toolbar.masscontent.php toolbar.masscontent.html.php index.html config.xml elracodelangela/administrator/components/com_masscontent/masscontent.class.php0000644000176700017710000000310311072762732031041 0ustar essawireessawire elracodelangela/administrator/components/com_masscontent/toolbar.masscontent.html.php0000644000176700017710000000175011072762732032347 0ustar essawireessawire elracodelangela/administrator/components/com_masscontent/admin.masscontent.php0000644000176700017710000006157211072762732031042 0ustar essawireessawiregetPath( 'admin_html' ) ); require_once( JApplicationHelper::getPath( 'admin_html' ) ); require_once( $mainframe->getPath( 'class' ) ); $id = JRequest::getVar( 'id', 0 ,'GET'); $cid = JRequest::getVar( 'cid', array(0),'POST' ); $act = JRequest::getVar( 'act', '' ); $task = JRequest::getVar( 'task', '' ); if (!is_array( $cid )) { $cid = array(0); } switch ($act) { case "createMassSections": switch ($task) { case "cpanel": showCPanel($option); break; case "save": saveMassSections( $option ); break; case "new": default: newMassSections( ); break; } break; case "createMassCategories": switch ($task) { case "cpanel": showCPanel($option); break; case "save": saveMassCategories( $option ); break; case "new": default: newMassCategories( ); break; } break; case "createMassContent": switch ($task) { case "cpanel": showCPanel($option); break; case "save": saveMassContent( $option ); break; case "new": default: newMassContent( 0,$option ); break; } break; case "deleteMassContent": switch ($task) { case "cpanel": showCPanel($option); break; case "delete": deleteMassContent( $option ); break; case "new": default: newDeleteMassContent( 0,$option ); break; } break; case "config": editConfig($option); break; case "cpanel": default: showCPanel($option); } function showCPanel($option){ HTML_Masscontent::showCPanel($option); } /** * Get a list of the menutypes * @return array An array of menu type names */ function getMenuTypes() { $db = &JFactory::getDBO(); $query = 'SELECT menutype' . ' FROM #__menu_types'; $db->setQuery( $query ); return $db->loadResultArray(); } /** * Link the content to the menu * @param id The id of the content to insert * @param title: The title of the menu element * @param menuselect: The menu where to create the link * @param contentType: to know the kind of content (static content or not) */ function menuLink( $id, $title,$menuselect,$contentType ) { global $mainframe; $database = & JFactory::getDBO(); $menu = strval( $menuselect ); $link = strval( $title ); $link = stripslashes( JFilterOutput::ampReplace($link) ); //find what kind of link needs to be created in $row->link switch ($contentType){ case "content_section": $taskLink = "section"; break; case "content_blog_section": $taskLink = "section&layout=blog"; break; ; case "content_category": $taskLink = "category"; break; case "content_blog_category": $taskLink = "category&layout=blog"; break; default: $taskLink = "article"; } $row =& JTable::getInstance('menu'); $row->menutype = $menu; $row->name = $link; $row->type = 'component'; $row->link = 'index.php?option=com_content&view='.$taskLink.'&id='. $id; $row->published = 1; $row->componentid = $id; $row->ordering = 9999; if (!$row->check()) { echo "\n"; exit(); } if (!$row->store()) { echo "\n"; exit(); } $row->reorder( "menutype = " . $database->Quote( $row->menutype ) . " AND parent = " . (int) $row->parent ); // clean any existing cache files //mosCache::cleanCache( 'com_content' ); } // new content and menu link function newMassContent($id,$option) { $database = & JFactory::getDBO(); global $mainframe, $my; $contentSection=0; $lists=null; $sectioncategories=0; $row = new mosDBMassContent( $database ); $row->load( $id ); $javascript = "onchange=\"changeDynaList( 'catid', sectioncategories, document.adminForm.sectionid.options[document.adminForm.sectionid.selectedIndex].value, 0, 0);\""; //section $query = "SELECT s.id, s.title" . "\n FROM #__sections AS s" . "\n ORDER BY s.ordering"; $database->setQuery( $query ); //$sections[] = JHTML::_('select.option', '-1', 'Static Content', 'id', 'title' ); $sections[] = JHTML::_('select.option', $store, JText::_(ucfirst($store)) ); $sections = array_merge( $sections, $database->loadObjectList() ); $lists['sectionid'] = JHTMLSelect::genericList( $sections, 'sectionid', 'class="inputbox" size="1" '. $javascript, 'id', 'title' ); $contentSection = ''; foreach($sections as $section) { $section_list[] = $section->id; if ( $section->id == $sectionid ) { $contentSection = $section->title; } } $sectioncategories = array(); $sectioncategories[-1] = array(); $sectioncategories[-1][] = JHTML::_('select.option', '-1', 'Select Category', 'id', 'name' ); JArrayHelper::toInteger( $section_list ); $section_list = 'section=' . implode( ' OR section=', $section_list ); $query = "SELECT id, name, section" . "\n FROM #__categories" . "\n WHERE ( $section_list )" . "\n ORDER BY ordering" ; $database->setQuery( $query ); $cat_list = $database->loadObjectList(); foreach($sections as $section) { $sectioncategories[$section->id] = array(); $rows2 = array(); foreach($cat_list as $cat) { if ($cat->section == $section->id) { $rows2[] = $cat; } } foreach($rows2 as $row2) { $sectioncategories[$section->id][] = JHTML::_('select.option', $row2->id, $row2->name, 'id', 'name' ); } } // get list of categories if ( !$row->catid && !$row->sectionid ) { $categories[] = JHTML::_('select.option', '0', 'Select Category', 'id', 'name' ); $lists['catid'] = JHTMLSelect::genericList( $categories, 'catid', 'class="inputbox" size="1"', 'id', 'name' ); } else { $categoriesA = array(); if ( $sectionid == 0 ) { foreach($cat_list as $cat) { $categoriesA[] = $cat; } } else { //$where = "\n WHERE section = '$sectionid'"; foreach($cat_list as $cat) { if ($cat->section == $sectionid) { $categoriesA[] = $cat; } } } $categories[] = JHTML::_('select.option', '0', 'Select Category', 'id', 'name' ); $categories = array_merge( $categories, $categoriesA ); $lists['catid'] = JHTMLSelect::genericList( $categories, 'catid', 'class="inputbox" size="1"', 'id', 'name', intval( $row->catid ) ); } // build the html select list for ordering $query = "SELECT ordering AS value, title AS text" . "\n FROM #__content" . "\n WHERE catid = " . (int) $row->catid . "\n AND state >= 0" . "\n ORDER BY ordering" ; $lists['ordering'] = JHTML::_('list.specificordering', $row, $uid, $query, 1 ); // build the html select list for menu selection $menuTypes = getMenuTypes(); foreach ( $menuTypes as $menuType ) { $menu[] = JHTML::_('select.option', $menuType, $menuType ); } $lists['menuselect'] = JHTML::_('select.genericlist', $menu, 'menuselect', 'class="inputbox" size="10"', 'value', 'text', null ); // build the html select list for the group access $lists['access'] = JHTML::_('list.accesslevel', $row ); // build list of users $lists['created_by'] = JHTML::_('list.users', 'created_by', $my->id ); //load params jimport('joomla.application.component.helper'); HTML_Masscontent::newMassContent($row, $option, $contentSection, $lists, $sectioncategories,$menus); } /** * Save information for creating new content and link them to menu */ function saveMassContent( $option ) { global $mainframe; jimport('joomla.utilities.date'); $config =& JFactory::getConfig(); $tzoffset = $config->getValue('config.offset'); $database = & JFactory::getDBO(); $nullDate = $database->getNullDate(); $params = JComponentHelper::getParams('com_masscontent'); $menu = strval( JRequest::getVar( 'menuselect', '','POST' ) ); $addMenu = strval( JRequest::getVar( 'addMenu', '','POST' ) ); $fulltext = JRequest::getVar( 'fulltext', '', 'post','string', JREQUEST_ALLOWRAW ); $introtext = JRequest::getVar( 'introtext', '', 'post','string', JREQUEST_ALLOWRAW ); $msg=""; $row = new mosDBMassContent( $database ); if (!$row->bind(JRequest::get('post'))) { echo "\n"; exit(); } $row->metadata=""; if ($row->robots!="") $row->metadata="robots=".$row->robots."\n"; if ($row->author!="") $row->metadata.="author=".$row->author; if ($row->created && strlen(trim( $row->created )) <= 10) $row->created .= ' 00:00:00'; $date = new JDate($row->created, $tzoffset); $row->created = $date->toMySQL(); if ($row->publish_up && strlen(trim( $row->publish_up )) <= 10) $row->publish_up .= ' 00:00:00'; $date = new JDate($row->publish_up, $tzoffset); $row->publish_up = $date->toMySQL(); // Handle never unpublish date if (trim($row->publish_down) == JText::_('Never') || trim( $row->publish_down ) == '') $row->publish_down = $nullDate; else { if (strlen(trim( $row->publish_down )) <= 10) { $row->publish_down .= ' 00:00:00'; } $date = new JDate($row->publish_down, $tzoffset); $row->publish_down = $date->toMySQL(); } //browse each title and insert it if it is not empty for ($i=0;$i<$params->get('nbMassContent');$i++){ if ($row->title[$i]!='') { $row2 = new mosDBMassContent( $database ); // $row2 = clone $row; // For PHP5... if (!$row2->bind( JRequest::get('post'))) { echo "\n"; exit(); } $row2->created=$row->created; $row2->publish_up=$row->publish_up; $row2->publish_down=$row->publish_down; $row2->title=$row->title[$i]; $row2->introtext = $introtext[$i]; $row2->metadesc = $row->metadesc[$i]; $row2->metakey = $row->metakey[$i]; $row2->metadata = $row->metadata; $row2->fulltext = $fulltext[$i]; if (!$row2->store()) { echo ""; $mainframe->redirect( "index2.php?option=com_masscontent&act=createMassContent"); exit(); } $row2->checkin(); if ($addMenu) { if ($row2->sectionid<=0) //static content $type="content_typed" ; else $type="content_item_link" ; menuLink( $row2->id, $row2->title,$menu,$type ); } $msg = "Contents successfully created"; } } $mainframe->redirect( "index2.php?option=com_masscontent&act=createMassContent",$msg ); } /** * create new sections */ function newMassSections() { $database = & JFactory::getDBO(); global $my, $mainframe; $uid=0; $scope = "content"; $option = "com_masscontent"; $row = new mosDBMassSections( $database ); // load the row from the db table $row->load( (int)$uid ); $row->scope = $scope; $row->published = 1; $menus = array(); // build the html select list for section types $types[] = JHTML::_('select.option', '', 'Select Type' ); $types[] = JHTML::_('select.option', 'content_section', 'Section layout' ); $types[] = JHTML::_('select.option', 'content_blog_section', 'Section Blog Layout' ); $lists['link_type'] = JHTMLSelect::genericList( $types, 'link_type', 'class="inputbox" size="1"', 'value', 'text' ); // build the html select list for the group access $lists['access'] = JHTML::_('list.accesslevel', $row ); // build the html radio buttons for published $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published ); // build the html select list for menu selection $menuTypes = getMenuTypes(); foreach ( $menuTypes as $menuType ) { $menu[] = JHTML::_('select.option', $menuType, $menuType ); } $lists['menuselect'] = JHTML::_('select.genericlist', $menu, 'menuselect', 'class="inputbox" size="10"', 'value', 'text', null ); HTML_Masscontent::newMassSections( $row, $option, $lists, $menus ); } function saveMassSections( $option ) { global $mainframe; $database = & JFactory::getDBO();; $params = JComponentHelper::getParams('com_masscontent'); $menu = stripslashes( strval( JRequest::getVar( 'menu', 'mainmenu' ,'POST') ) ); $menuid = intval( JRequest::getVar( 'menuid', 0 ,'POST') ); $type = strval( JRequest::getVar( 'link_type', '','POST' ) ); $menu = strval( JRequest::getVar( 'menuselect', '','POST' ) ); $addMenu = strval( JRequest::getVar( 'addMenu', '','POST' ) ); $row = new mosDBMassSections( $database ); if (!$row->bind( $_POST )) { echo "\n"; exit(); } //browse each title and insert it if it is not empty for ($i=0;$i<$params->get('nbMassSections');$i++){ if ($row->title[$i]!='') { $row2 = new mosDBMassSections( $database ); //$row2 = clone $row; //for php5 if (!$row2->bind( $_POST )) { echo "\n"; exit(); } $row2->title=$row->title[$i]; $row2->name=$row->name[$i]; if (!$row2->store()) { echo ""; $mainframe->redirect( "index2.php?option=com_masscontent&act=createMassSections"); exit(); } $row2->checkin(); // clean any existing cache files //JFactory::cleanCache( 'com_content' ); if ($addMenu) { menuLink( $row2->id, $row2->title,$menu,$type ); } $msg = "Sections successfully created"; } } //JFactory::cleanCache( 'com_content' ); $mainframe->redirect( "index2.php?option=com_masscontent&act=createMassSections",$msg ); } function newMassCategories() { $database = & JFactory::getDBO(); global $my, $mainframe; $uid=0; $scope = "content"; $option = "com_masscontent"; $row = new mosDBMassCategories( $database ); // load the row from the db table $row->load( (int)$uid ); $row->scope = $scope; $row->published = 1; $menus = array(); // build the html select list for section types $types[] = JHTML::_('select.option', '', 'Select Type' ); $types[] = JHTML::_('select.option', 'content_category', 'Category List Layout' ); $types[] = JHTML::_('select.option', 'content_blog_category', 'Category Blog Layout' ); $lists['link_type'] = JHTMLSelect::genericList( $types, 'link_type', 'class="inputbox" size="1"', 'value', 'text' );; // build the html select list for sections $query = "SELECT s.id AS value, s.title AS text" . "\n FROM #__sections AS s" . "\n ORDER BY s.ordering" ; $database->setQuery( $query ); $sections = $database->loadObjectList(); $lists['section'] = JHTMLSelect::genericList( $sections, 'section', 'class="inputbox" size="1"', 'value', 'text' ); //$lists['section'] = ''. $section_name; // build the html select list for the group access $lists['access'] = JHTML::_('list.accesslevel', $row ); // build the html radio buttons for published $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published ); // build the html select list for menu selection $menuTypes = getMenuTypes(); foreach ( $menuTypes as $menuType ) { $menu[] = JHTML::_('select.option', $menuType, $menuType ); } $lists['menuselect'] = JHTML::_('select.genericlist', $menu, 'menuselect', 'class="inputbox" size="10"', 'value', 'text', null ); HTML_Masscontent::newMassCategories( $row, $option, $lists, $menus ); } function saveMassCategories( $option ) { global $mainframe; $database = & JFactory::getDBO(); $params = JComponentHelper::getParams('com_masscontent'); $menu = stripslashes( strval( JRequest::getVar( 'menu', 'mainmenu' ,'POST') ) ); $menuid = intval( JRequest::getVar( 'menuid', 0 ,'POST') ); $type = strval( JRequest::getVar( 'link_type', '' ,'POST') ); $menu = strval( JRequest::getVar( 'menuselect', '','POST' ) ); $addMenu = strval( JRequest::getVar( 'addMenu', '' ,'POST') ); $row = new mosDBMassCategories( $database ); if (!$row->bind( $_POST )) { echo "\n"; exit(); } //browse each title and insert it if it is not empty for ($i=0;$i<$params->get('nbMassCategories');$i++){ if ($row->title[$i]!='') { $row2 = new mosDBMassCategories( $database ); //$row2 = clone $row; //for php5 if (!$row2->bind( $_POST )) { echo "\n"; exit(); } $row2->title=$row->title[$i]; $row2->name=$row->name[$i]; if (!$row2->store()) { echo ""; $mainframe->redirect( "index2.php?option=com_masscontent&act=createMasscategories"); exit(); } $row2->checkin(); // clean any existing cache files //JFactory::cleanCache( 'com_content' ); if ($addMenu) { menuLink( $row2->id, $row2->title,$menu,$type ); } $msg = "Categories successfully created"; } } //JFactory::cleanCache( 'com_content' ); $mainframe->redirect( "index2.php?option=com_masscontent&act=createMassCategories",$msg ); } function newDeleteMassContent(){ $database = & JFactory::getDBO(); global $my, $mainframe; $option = "com_masscontent"; $contentSection=0; $lists=null; $sectioncategories=0; $javascript = "onchange=\"changeDynaList( 'catid', sectioncategories, document.adminForm.sectionid.options[document.adminForm.sectionid.selectedIndex].value, 0, 0);\""; //section $query = "SELECT s.id, s.title" . "\n FROM #__sections AS s" . "\n ORDER BY s.ordering"; $database->setQuery( $query ); $sections[] = JHTML::_('select.option', '-1', 'Select section', 'id', 'title' ); $sections = array_merge( $sections, $database->loadObjectList() ); $lists['sectionid'] = JHTMLSelect::genericList( $sections, 'sectionid', 'class="inputbox" size="1" '. $javascript, 'id', 'title' ); $contentSection = ''; foreach($sections as $section) { $section_list[] = $section->id; if ( $section->id == $sectionid ) { $contentSection = $section->title; } } $sectioncategories = array(); $sectioncategories[-1] = array(); $sectioncategories[-1][] = JHTML::_('select.option', '-1', 'Select Category', 'id', 'name' ); JArrayHelper::toInteger( $section_list ); $section_list = 'section=' . implode( ' OR section=', $section_list ); $query = "SELECT id, name, section" . "\n FROM #__categories" . "\n WHERE ( $section_list )" . "\n ORDER BY ordering" ; $database->setQuery( $query ); $cat_list = $database->loadObjectList(); foreach($sections as $section) { $sectioncategories[$section->id] = array(); $rows2 = array(); foreach($cat_list as $cat) { if ($cat->section == $section->id) { $rows2[] = $cat; } } foreach($rows2 as $row2) { $sectioncategories[$section->id][] = JHTML::_('select.option', $row2->id, $row2->name, 'id', 'name' ); } } // get list of categories if ( !$row->catid && !$row->sectionid ) { $categories[] = JHTML::_('select.option', '0', 'Select Category', 'id', 'name' ); $lists['catid'] = JHTMLSelect::genericList( $categories, 'catid', 'class="inputbox" size="1"', 'id', 'name' ); } else { $categoriesA = array(); if ( $sectionid == 0 ) { foreach($cat_list as $cat) { $categoriesA[] = $cat; } } else { //$where = "\n WHERE section = '$sectionid'"; foreach($cat_list as $cat) { if ($cat->section == $sectionid) { $categoriesA[] = $cat; } } } $categories[] = JHTML::_('select.option', '0', 'Select Category', 'id', 'name' ); $categories = array_merge( $categories, $categoriesA ); $lists['catid'] = JHTMLSelect::genericList( $categories, 'catid', 'class="inputbox" size="1"', 'id', 'name', intval( $row->catid ) ); } HTML_Masscontent::deleteMassContent($row, $option, $sectioncategories,$lists); } function deleteMassContent($option){ global $mainframe; $database = & JFactory::getDBO(); $sectionid = JRequest::getVar( 'sectionid', '' ,'POST'); $deleteSection = JRequest::getVar( 'deleteSection', '','POST' ); $catid = JRequest::getVar( 'catid', '','POST' ); $deleteCategory = JRequest::getVar( 'deleteCategory', '' ,'POST'); $allCat = JRequest::getVar( 'allCat', '','POST' ); $where=""; //a section has been selected if ( $sectionid != "-1" ){ if ($deleteSection){ //delete link menu-section $query = "DELETE m FROM #__menu m " . "\n WHERE m.componentid IN ( " . "\n SELECT id FROM #__sections " . "\n WHERE id=$sectionid " . "\n )" . "\n AND LOCATE( \"section\", link ) >0" ; $database->setQuery( $query ); $database->query(); //delete section $query = "DELETE FROM #__sections WHERE id=$sectionid"; $database->setQuery( $query ); $database->query(); } if ($catid>0 || $allCat) //a cat is selected { //when "all cats" is not selected if (!$allCat && $catid>0) $where= "\n AND id=$catid "; if ($deleteCategory) { //delete link menu-cat $query = "DELETE m FROM #__menu m " . "\n WHERE m.componentid IN ( " . "\n SELECT id FROM #__categories ca " . "\n WHERE ca.section=$sectionid " . $where . "\n )" . "\n AND LOCATE( \"category\", link ) >0" ; $database->setQuery( $query ); $database->query(); //delete cat $query = "DELETE FROM #__categories" . "\n WHERE section=$sectionid" . $where; ; $database->setQuery( $query ); $database->query(); } } //when "all cats" is not selected if (!$allCat && $catid>0) $where= "\n AND catid=$catid "; //delete link menu-content $query = "DELETE m FROM #__menu m " . "\n WHERE m.componentid IN ( " . "\n SELECT id FROM #__content co " . "\n WHERE co.sectionid=$sectionid " . $where . "\n )" . "\n AND LOCATE( \"article\", link ) >0" ; $database->setQuery( $query ); $database->query(); //delete content $query = "DELETE co FROM #__content co " . "\n WHERE co.sectionid=$sectionid" . $where ; $database->setQuery( $query ); $database->query(); } $mainframe->redirect( "index2.php?option=com_masscontent&act=deleteMassContent","Content deleted" ); } ?> elracodelangela/administrator/components/com_masscontent/config.xml0000644000176700017710000000414011072762732026657 0ustar essawireessawire elracodelangela/administrator/components/com_admin/0000755000176700017710000000000011061563560023417 5ustar essawireessawireelracodelangela/administrator/components/com_admin/toolbar.admin.html.php0000755000176700017710000000226311061563415027631 0ustar essawireessawireelracodelangela/administrator/components/com_admin/toolbar.admin.php0000755000176700017710000000177011061563415026670 0ustar essawireessawire
setQuery( $query, 0, 1 ); $editor = $db->loadResult(); ?>
 
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
elracodelangela/administrator/components/com_admin/tmpl/sysinfo_config.php0000755000176700017710000000370311061563415030130 0ustar essawireessawire
$v) { if (eregi( 'var \$host', $v)) { $cf[$k] = 'var $host = \'xxxxxx\''; } else if (eregi( 'var \$user', $v)) { $cf[$k] = 'var $user = \'xxxxxx\''; } else if (eregi( 'var \$password', $v)) { $cf[$k] = 'var $password = \'xxxxxx\''; } else if (eregi( 'var \$db ', $v)) { $cf[$k] = 'var $db = \'xxxxxx\''; } else if (eregi( 'var \$ftp_user ', $v)) { $cf[$k] = 'var $ftp_user = \'xxxxxx\''; } else if (eregi( 'var \$ftp_pass ', $v)) { $cf[$k] = 'var $ftp_pass = \'xxxxxx\''; } else if (eregi( 'var \$smtpuser ', $v)) { $cf[$k] = 'var $smtpuser = \'xxxxxx\''; } else if (eregi( 'var \$smtppass ', $v)) { $cf[$k] = 'var $smtppass = \'xxxxxx\''; } else if (eregi( '', $v)) { $cf[$k] = ''; } else if (eregi( '}', $v)) { $cf[$k] = ''; } else if (eregi( 'class JConfig {', $v)) { $cf[$k] = ''; } $cf[$k] = str_replace('var ','',$cf[$k]); $cf[$k] = str_replace(';','',$cf[$k]); $cf[$k] = str_replace(' = ',''; if ($cf[$k] != '') { $config_output[] = $cf[$k]; } } echo implode( '', $config_output ); ?>
 
',$cf[$k]); $cf[$k] = ''. $cf[$k] .'
elracodelangela/administrator/components/com_admin/tmpl/index.html0000755000176700017710000000005411061563415026371 0ustar essawireessawireelracodelangela/administrator/components/com_admin/tmpl/sysinfo_phpinfo.php0000755000176700017710000000227511061563415030331 0ustar essawireessawire
 
 
]*>(.*)#siU', $phpinfo, $output); $output = preg_replace('##', '', $output); $output = str_replace('
', '', $output); $output = str_replace('
', '', $output); echo $output; ?>
elracodelangela/administrator/components/com_admin/tmpl/sysinfo_directory.php0000755000176700017710000000406311061563415030667 0ustar essawireessawire
get('image_path')); writableCell( 'language' ); // List all site languages $site_langs = JFolder::folders(JPATH_SITE.DS.'language'); foreach ($site_langs as $slang) { writableCell( 'language/'.$slang ); } writableCell( 'media' ); writableCell( 'modules' ); writableCell( 'plugins' ); writableCell( 'plugins/content' ); writableCell( 'plugins/editors' ); writableCell( 'plugins/editors-xtd' ); writableCell( 'plugins/search' ); writableCell( 'plugins/system' ); writableCell( 'plugins/user' ); writableCell( 'plugins/xmlrpc' ); writableCell( 'tmp' ); writableCell( 'templates' ); writableCell( JPATH_SITE.DS.'cache', 0, ''. JText::_( 'Cache Directory' ) .' ' ); writableCell( JPATH_ADMINISTRATOR.DS.'cache', 0, ''. JText::_( 'Cache Directory' ) .' ' ); ?>
 
elracodelangela/administrator/components/com_admin/tmpl/navigation.php0000755000176700017710000000143711061563415027252 0ustar essawireessawire
elracodelangela/administrator/components/com_admin/tmpl/sysinfo_system.php0000755000176700017710000000360611061563415030211 0ustar essawireessawire
 
:
: getVersion(); ?>
: getCollation(); ?>
:
:
:
: getLongVersion(); ?>
:
elracodelangela/administrator/components/com_admin/admin.admin.html.php0000755000176700017710000002271211061563415027260 0ustar essawireessawiresetBuffer($contents, 'modules', 'submenu'); ?>
* In case of the remote server it is assumed that this server provide one specific * help set of files in one particular language. */ function help() { global $mainframe; jimport( 'joomla.filesystem.folder' ); jimport( 'joomla.language.help' ); // Get Help URL - an empty helpurl is interpreted as local help files! $helpurl = $mainframe->getCfg('helpurl'); if ( $helpurl == 'http://help.mamboserver.com' ) { $helpurl = 'http://help.joomla.org'; } $fullhelpurl = $helpurl . '/index2.php?option=com_content&task=findkey&pop=1&keyref='; $helpsearch = JRequest::getString('helpsearch'); $page = JRequest::getCmd('page', 'joomla.whatsnew15.html'); $toc = getHelpToc( $helpsearch ); $lang =& JFactory::getLanguage(); $langTag = $lang->getTag(); if( !JFolder::exists( JPATH_BASE.DS.'help'.DS.$langTag ) ) { $langTag = 'en-GB'; // use english as fallback } if (!eregi( '\.html$', $page )) { $page .= '.xml'; } ?>
: 'helpFrame')) ?> | 'helpFrame')) ?> | 'helpFrame')) ?> 'helpFrame')) ?> | 'helpFrame')) ?> | 'helpFrame')) ?> | 'helpFrame')) ?> | 'helpFrame')) ?> | 'helpFrame')) ?> | 'helpFrame')) ?>
    $v) { if ($helpurl) { echo '
  • '; echo JHTML::_('link', JHelp::createUrl( $k ), $v, array('target' => 'helpFrame')); echo '
  • '; } else { echo '
  • '; echo JHTML::_('link', JURI::base() .'help/'.$langTag.'/'.$k, $v, array('target' => 'helpFrame')); echo '
  • '; } } ?>
			/','',$changelog);

			// Convert all other HTML entities
			echo htmlentities($changelog);
			?>
		
'. JText::_( 'Writable' ) .''; $unwriteable = ''. JText::_( 'Unwritable' ) .''; echo ''; echo ''; echo $text; if ( $visible ) { echo $folder . '/'; } echo ''; echo ''; if ( $relative ) { echo is_writable( "../$folder" ) ? $writeable : $unwriteable; } else { echo is_writable( "$folder" ) ? $writeable : $unwriteable; } echo ''; echo ''; } /** * Compiles the help table of contents * @param string A specific keyword on which to filter the resulting list */ function getHelpTOC( $helpsearch ) { global $mainframe; $lang =& JFactory::getLanguage(); jimport( 'joomla.filesystem.folder' ); $helpurl = $mainframe->getCfg('helpurl'); // Check for files in the actual language $langTag = $lang->getTag(); if( !JFolder::exists( JPATH_BASE.DS.'help'.DS.$langTag ) ) { $langTag = 'en-GB'; // use english as fallback } $files = JFolder::files( JPATH_BASE.DS.'help'.DS.$langTag, '\.xml$|\.html$' ); $toc = array(); foreach ($files as $file) { $buffer = file_get_contents( JPATH_BASE.DS.'help'.DS.$langTag.DS.$file ); if (preg_match( '#(.*?)#', $buffer, $m )) { $title = trim( $m[1] ); if ($title) { if ($helpurl) { // strip the extension $file = preg_replace( '#\.xml$|\.html$#', '', $file ); } if ($helpsearch) { if (JString::strpos( strip_tags( $buffer ), $helpsearch ) !== false) { $toc[$file] = $title; } } else { $toc[$file] = $title; } } } } asort( $toc ); return $toc; } elracodelangela/administrator/components/com_weblinks/0000755000176700017710000000000011061563565024152 5ustar essawireessawireelracodelangela/administrator/components/com_weblinks/weblinks.php0000755000176700017710000000206011061563431026472 0ustar essawireessawireauthorize( 'com_weblinks', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } // Require the base controller require_once (JPATH_COMPONENT.DS.'controller.php'); $controller = new WeblinksController( ); // Perform the Request task $controller->execute( JRequest::getCmd('task')); $controller->redirect();elracodelangela/administrator/components/com_weblinks/models/0000755000176700017710000000000011061563565025435 5ustar essawireessawireelracodelangela/administrator/components/com_weblinks/models/weblink.php0000755000176700017710000001765711061563432027615 0ustar essawireessawiresetId((int)$array[0]); } /** * Method to set the weblink identifier * * @access public * @param int Weblink identifier */ function setId($id) { // Set weblink id and wipe data $this->_id = $id; $this->_data = null; } /** * Method to get a weblink * * @since 1.5 */ function &getData() { // Load the weblink data if ($this->_loadData()) { // Initialize some variables $user = &JFactory::getUser(); // Check to see if the category is published if (!$this->_data->cat_pub) { JError::raiseError( 404, JText::_("Resource Not Found") ); return; } // Check whether category access level allows access if ($this->_data->cat_access > $user->get('aid', 0)) { JError::raiseError( 403, JText::_('ALERTNOTAUTH') ); return; } } else $this->_initData(); return $this->_data; } /** * Tests if weblink is checked out * * @access public * @param int A user id * @return boolean True if checked out * @since 1.5 */ function isCheckedOut( $uid=0 ) { if ($this->_loadData()) { if ($uid) { return ($this->_data->checked_out && $this->_data->checked_out != $uid); } else { return $this->_data->checked_out; } } } /** * Method to checkin/unlock the weblink * * @access public * @return boolean True on success * @since 1.5 */ function checkin() { if ($this->_id) { $weblink = & $this->getTable(); if(! $weblink->checkin($this->_id)) { $this->setError($this->_db->getErrorMsg()); return false; } } return false; } /** * Method to checkout/lock the weblink * * @access public * @param int $uid User ID of the user checking the article out * @return boolean True on success * @since 1.5 */ function checkout($uid = null) { if ($this->_id) { // Make sure we have a user id to checkout the article with if (is_null($uid)) { $user =& JFactory::getUser(); $uid = $user->get('id'); } // Lets get to it and checkout the thing... $weblink = & $this->getTable(); if(!$weblink->checkout($uid, $this->_id)) { $this->setError($this->_db->getErrorMsg()); return false; } return true; } return false; } /** * Method to store the weblink * * @access public * @return boolean True on success * @since 1.5 */ function store($data) { $row =& $this->getTable(); // Bind the form fields to the web link table if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } // Create the timestamp for the date $row->date = gmdate('Y-m-d H:i:s'); // if new item, order last in appropriate group if (!$row->id) { $where = 'catid = ' . (int) $row->catid ; $row->ordering = $row->getNextOrder( $where ); } // Make sure the web link table is valid if (!$row->check()) { $this->setError($this->_db->getErrorMsg()); return false; } // Store the web link table to the database if (!$row->store()) { $this->setError($this->_db->getErrorMsg()); return false; } return true; } /** * Method to remove a weblink * * @access public * @return boolean True on success * @since 1.5 */ function delete($cid = array()) { $result = false; if (count( $cid )) { JArrayHelper::toInteger($cid); $cids = implode( ',', $cid ); $query = 'DELETE FROM #__weblinks' . ' WHERE id IN ( '.$cids.' )'; $this->_db->setQuery( $query ); if(!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } return true; } /** * Method to (un)publish a weblink * * @access public * @return boolean True on success * @since 1.5 */ function publish($cid = array(), $publish = 1) { $user =& JFactory::getUser(); if (count( $cid )) { JArrayHelper::toInteger($cid); $cids = implode( ',', $cid ); $query = 'UPDATE #__weblinks' . ' SET published = '.(int) $publish . ' WHERE id IN ( '.$cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id').' ) )' ; $this->_db->setQuery( $query ); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } return true; } /** * Method to move a weblink * * @access public * @return boolean True on success * @since 1.5 */ function move($direction) { $row =& $this->getTable(); if (!$row->load($this->_id)) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$row->move( $direction, ' catid = '.(int) $row->catid.' AND published >= 0 ' )) { $this->setError($this->_db->getErrorMsg()); return false; } return true; } /** * Method to move a weblink * * @access public * @return boolean True on success * @since 1.5 */ function saveorder($cid = array(), $order) { $row =& $this->getTable(); $groupings = array(); // update ordering values for( $i=0; $i < count($cid); $i++ ) { $row->load( (int) $cid[$i] ); // track categories $groupings[] = $row->catid; if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } // execute updateOrder for each parent group $groupings = array_unique( $groupings ); foreach ($groupings as $group){ $row->reorder('catid = '.(int) $group); } return true; } /** * Method to load content weblink data * * @access private * @return boolean True on success * @since 1.5 */ function _loadData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $query = 'SELECT w.*, cc.title AS category,'. ' cc.published AS cat_pub, cc.access AS cat_access'. ' FROM #__weblinks AS w' . ' LEFT JOIN #__categories AS cc ON cc.id = w.catid' . ' WHERE w.id = '.(int) $this->_id; $this->_db->setQuery($query); $this->_data = $this->_db->loadObject(); return (boolean) $this->_data; } return true; } /** * Method to initialise the weblink data * * @access private * @return boolean True on success * @since 1.5 */ function _initData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $weblink = new stdClass(); $weblink->id = 0; $weblink->catid = 0; $weblink->sid = 0; $weblink->title = null; $weblink->alias = null; $weblink->url = null; $weblink->description = null; $weblink->date = null; $weblink->hits = 0; $weblink->published = 0; $weblink->checked_out = 0; $weblink->checked_out_time = 0; $weblink->ordering = 0; $weblink->archived = 0; $weblink->approved = 0; $weblink->params = null; $weblink->category = null; $this->_data = $weblink; return (boolean) $this->_data; } return true; } }elracodelangela/administrator/components/com_weblinks/models/weblinks.php0000755000176700017710000001165711061563432027772 0ustar essawireessawiregetUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); // In case limit has been changed, adjust limitstart accordingly $limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0); $this->setState('limit', $limit); $this->setState('limitstart', $limitstart); } /** * Method to get weblinks item data * * @access public * @return array */ function getData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $query = $this->_buildQuery(); $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit')); } return $this->_data; } /** * Method to get the total number of weblink items * * @access public * @return integer */ function getTotal() { // Lets load the content if it doesn't already exist if (empty($this->_total)) { $query = $this->_buildQuery(); $this->_total = $this->_getListCount($query); } return $this->_total; } /** * Method to get a pagination object for the weblinks * * @access public * @return integer */ function getPagination() { // Lets load the content if it doesn't already exist if (empty($this->_pagination)) { jimport('joomla.html.pagination'); $this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') ); } return $this->_pagination; } function _buildQuery() { // Get the WHERE and ORDER BY clauses for the query $where = $this->_buildContentWhere(); $orderby = $this->_buildContentOrderBy(); $query = ' SELECT a.*, cc.title AS category, u.name AS editor ' . ' FROM #__weblinks AS a ' . ' LEFT JOIN #__categories AS cc ON cc.id = a.catid ' . ' LEFT JOIN #__users AS u ON u.id = a.checked_out ' . $where . $orderby ; return $query; } function _buildContentOrderBy() { global $mainframe, $option; $filter_order = $mainframe->getUserStateFromRequest( $option.'filter_order', 'filter_order', 'a.ordering', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $option.'filter_order_Dir', 'filter_order_Dir', '', 'word' ); if ($filter_order == 'a.ordering'){ $orderby = ' ORDER BY category, a.ordering '.$filter_order_Dir; } else { $orderby = ' ORDER BY '.$filter_order.' '.$filter_order_Dir.' , category, a.ordering '; } return $orderby; } function _buildContentWhere() { global $mainframe, $option; $db =& JFactory::getDBO(); $filter_state = $mainframe->getUserStateFromRequest( $option.'filter_state', 'filter_state', '', 'word' ); $filter_catid = $mainframe->getUserStateFromRequest( $option.'filter_catid', 'filter_catid', 0, 'int' ); $filter_order = $mainframe->getUserStateFromRequest( $option.'filter_order', 'filter_order', 'a.ordering', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $option.'filter_order_Dir', 'filter_order_Dir', '', 'word' ); $search = $mainframe->getUserStateFromRequest( $option.'search', 'search', '', 'string' ); $search = JString::strtolower( $search ); $where = array(); if ($filter_catid > 0) { $where[] = 'a.catid = '.(int) $filter_catid; } if ($search) { $where[] = 'LOWER(a.title) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'a.published = 1'; } else if ($filter_state == 'U' ) { $where[] = 'a.published = 0'; } } $where = ( count( $where ) ? ' WHERE '. implode( ' AND ', $where ) : '' ); return $where; } } elracodelangela/administrator/components/com_weblinks/models/index.html0000755000176700017710000000005411061563432027425 0ustar essawireessawireelracodelangela/administrator/components/com_weblinks/models/weblink.xml0000755000176700017710000000067411061563432027615 0ustar essawireessawire elracodelangela/administrator/components/com_weblinks/index.html0000755000176700017710000000005411061563431026141 0ustar essawireessawireelracodelangela/administrator/components/com_weblinks/tables/0000755000176700017710000000000011061563565025424 5ustar essawireessawireelracodelangela/administrator/components/com_weblinks/tables/weblink.php0000755000176700017710000000662211061563432027572 0ustar essawireessawireloadArray($array['params']); $array['params'] = $registry->toString(); } return parent::bind($array, $ignore); } /** * Overloaded check method to ensure data integrity * * @access public * @return boolean True on success * @since 1.0 */ function check() { if (JFilterInput::checkAttribute(array ('href', $this->url))) { $this->setError( JText::_('Please provide a valid URL')); return false; } /** check for valid name */ if (trim($this->title) == '') { $this->setError(JText::_('Your Weblink must contain a title.')); return false; } if (!(eregi('http://', $this->url) || (eregi('https://', $this->url)) || (eregi('ftp://', $this->url)))) { $this->url = 'http://'.$this->url; } /** check for existing name */ $query = 'SELECT id FROM #__weblinks WHERE title = '.$this->_db->Quote($this->title).' AND catid = '.(int) $this->catid; $this->_db->setQuery($query); $xid = intval($this->_db->loadResult()); if ($xid && $xid != intval($this->id)) { $this->setError(JText::sprintf('WARNNAMETRYAGAIN', JText::_('Web Link'))); return false; } if(empty($this->alias)) { $this->alias = $this->title; } $this->alias = JFilterOutput::stringURLSafe($this->alias); if(trim(str_replace('-','',$this->alias)) == '') { $datenow =& JFactory::getDate(); $this->alias = $datenow->toFormat("%Y-%m-%d-%H-%M-%S"); } return true; } } elracodelangela/administrator/components/com_weblinks/tables/index.html0000755000176700017710000000005411061563432027414 0ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/0000755000176700017710000000000011061563565025307 5ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/index.html0000755000176700017710000000005411061563432027277 0ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/weblink/0000755000176700017710000000000011061563565026742 5ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/weblink/index.html0000755000176700017710000000005411061563432030732 0ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/weblink/tmpl/0000755000176700017710000000000011061563565027716 5ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/weblink/tmpl/form.php0000755000176700017710000000754511061563432031401 0ustar essawireessawire [ ' . $text.' ]' ); JToolBarHelper::save(); if (!$edit) { JToolBarHelper::cancel(); } else { // for existing items the button is renamed `close` JToolBarHelper::cancel( 'cancel', 'Close' ); } JToolBarHelper::help( 'screen.weblink.edit' ); ?>
: lists['published']; ?>
lists['catid']; ?>
lists['ordering']; ?>
params->render();?>
elracodelangela/administrator/components/com_weblinks/views/weblink/tmpl/index.html0000755000176700017710000000005411061563432031706 0ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/weblink/view.html.php0000755000176700017710000000562711061563432031376 0ustar essawireessawiregetLayout() == 'form') { $this->_displayForm($tpl); return; } //get the weblink $weblink =& $this->get('data'); if ($weblink->url) { // redirects to url if matching id found $mainframe->redirect($weblink->url); } parent::display($tpl); } function _displayForm($tpl) { global $mainframe, $option; $db =& JFactory::getDBO(); $uri =& JFactory::getURI(); $user =& JFactory::getUser(); $model =& $this->getModel(); $lists = array(); //get the weblink $weblink =& $this->get('data'); $isNew = ($weblink->id < 1); // fail if checked out not by 'me' if ($model->isCheckedOut( $user->get('id') )) { $msg = JText::sprintf( 'DESCBEINGEDITTED', JText::_( 'The weblink' ), $weblink->title ); $mainframe->redirect( 'index.php?option='. $option, $msg ); } // Edit or Create? if (!$isNew) { $model->checkout( $user->get('id') ); } else { // initialise new record $weblink->published = 1; $weblink->approved = 1; $weblink->order = 0; $weblink->catid = JRequest::getVar( 'catid', 0, 'post', 'int' ); } // build the html select list for ordering $query = 'SELECT ordering AS value, title AS text' . ' FROM #__weblinks' . ' WHERE catid = ' . (int) $weblink->catid . ' ORDER BY ordering'; $lists['ordering'] = JHTML::_('list.specificordering', $weblink, $weblink->id, $query ); // build list of categories $lists['catid'] = JHTML::_('list.category', 'catid', $option, intval( $weblink->catid ) ); // build the html select list $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $weblink->published ); //clean weblink data JFilterOutput::objectHTMLSafe( $weblink, ENT_QUOTES, 'description' ); $file = JPATH_COMPONENT.DS.'models'.DS.'weblink.xml'; $params = new JParameter( $weblink->params, $file ); $this->assignRef('lists', $lists); $this->assignRef('weblink', $weblink); $this->assignRef('params', $params); parent::display($tpl); } } elracodelangela/administrator/components/com_weblinks/views/weblinks/0000755000176700017710000000000011061563565027125 5ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/weblinks/index.html0000755000176700017710000000005411061563432031115 0ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/weblinks/tmpl/0000755000176700017710000000000011061563565030101 5ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/weblinks/tmpl/index.html0000755000176700017710000000005411061563432032071 0ustar essawireessawireelracodelangela/administrator/components/com_weblinks/views/weblinks/tmpl/default.php0000755000176700017710000001177311061563432032243 0ustar essawireessawire
: lists['catid']; echo $this->lists['state']; ?>
items ); $i < $n; $i++) { $row = &$this->items[$i]; $link = JRoute::_( 'index.php?option=com_weblinks&view=weblink&task=edit&cid[]='. $row->id ); $checked = JHTML::_('grid.checkedout', $row, $i ); $published = JHTML::_('grid.published', $row, $i ); $ordering = ($this->lists['order'] == 'a.ordering'); $row->cat_link = JRoute::_( 'index.php?option=com_categories§ion=com_weblinks&task=edit&type=other&cid[]='. $row->catid ); ?> ">
lists['order_Dir'], $this->lists['order'] ); ?> lists['order_Dir'], $this->lists['order'] ); ?> lists['order_Dir'], $this->lists['order'] ); ?> items ); ?> lists['order_Dir'], $this->lists['order'] ); ?> lists['order_Dir'], $this->lists['order'] ); ?> lists['order_Dir'], $this->lists['order'] ); ?>
pagination->getListFooter(); ?>
pagination->getRowOffset( $i ); ?> user->get ('id'), $row->checked_out ) ) { echo $this->escape($row->title); } else { ?> escape($row->title); ?> pagination->orderUpIcon( $i, ($row->catid == @$this->items[$i-1]->catid),'orderup', 'Move Up', $ordering ); ?> pagination->orderDownIcon( $i, $n, ($row->catid == @$this->items[$i+1]->catid), 'orderdown', 'Move Down', $ordering ); ?> class="text_area" style="text-align: center" /> escape($row->category); ?> hits; ?> id; ?>
elracodelangela/administrator/components/com_weblinks/views/weblinks/view.html.php0000755000176700017710000000455411061563432031557 0ustar essawireessawiregetUserStateFromRequest( $option.'filter_state', 'filter_state', '', 'word' ); $filter_catid = $mainframe->getUserStateFromRequest( $option.'filter_catid', 'filter_catid', 0, 'int' ); $filter_order = $mainframe->getUserStateFromRequest( $option.'filter_order', 'filter_order', 'a.ordering', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $option.'filter_order_Dir', 'filter_order_Dir', '', 'word' ); $search = $mainframe->getUserStateFromRequest( $option.'search', 'search', '', 'string' ); $search = JString::strtolower( $search ); // Get data from the model $items = & $this->get( 'Data'); $total = & $this->get( 'Total'); $pagination = & $this->get( 'Pagination' ); // build list of categories $javascript = 'onchange="document.adminForm.submit();"'; $lists['catid'] = JHTML::_('list.category', 'filter_catid', $option, intval( $filter_catid ), $javascript ); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; $this->assignRef('user', JFactory::getUser()); $this->assignRef('lists', $lists); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); parent::display($tpl); } }elracodelangela/administrator/components/com_weblinks/controller.php0000755000176700017710000001205711061563431027046 0ustar essawireessawireregisterTask( 'add', 'display' ); $this->registerTask( 'edit', 'display' ); } function display( ) { switch($this->getTask()) { case 'add' : { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); JRequest::setVar( 'view' , 'weblink'); JRequest::setVar( 'edit', false ); // Checkout the weblink $model = $this->getModel('weblink'); $model->checkout(); } break; case 'edit' : { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); JRequest::setVar( 'view' , 'weblink'); JRequest::setVar( 'edit', true ); // Checkout the weblink $model = $this->getModel('weblink'); $model->checkout(); } break; } parent::display(); } function save() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $post = JRequest::get('post'); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $post['id'] = (int) $cid[0]; $model = $this->getModel('weblink'); if ($model->store($post)) { $msg = JText::_( 'Weblink Saved' ); } else { $msg = JText::_( 'Error Saving Weblink' ); } // Check the table in so it can be edited.... we are done with it anyway $model->checkin(); $link = 'index.php?option=com_weblinks'; $this->setRedirect($link, $msg); } function remove() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select an item to delete' ) ); } $model = $this->getModel('weblink'); if(!$model->delete($cid)) { echo "\n"; } $this->setRedirect( 'index.php?option=com_weblinks' ); } function publish() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select an item to publish' ) ); } $model = $this->getModel('weblink'); if(!$model->publish($cid, 1)) { echo "\n"; } $this->setRedirect( 'index.php?option=com_weblinks' ); } function unpublish() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select an item to unpublish' ) ); } $model = $this->getModel('weblink'); if(!$model->publish($cid, 0)) { echo "\n"; } $this->setRedirect( 'index.php?option=com_weblinks' ); } function cancel() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Checkin the weblink $model = $this->getModel('weblink'); $model->checkin(); $this->setRedirect( 'index.php?option=com_weblinks' ); } function orderup() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $model = $this->getModel('weblink'); $model->move(-1); $this->setRedirect( 'index.php?option=com_weblinks'); } function orderdown() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $model = $this->getModel('weblink'); $model->move(1); $this->setRedirect( 'index.php?option=com_weblinks'); } function saveorder() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $order = JRequest::getVar( 'order', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); JArrayHelper::toInteger($order); $model = $this->getModel('weblink'); $model->saveorder($cid, $order); $msg = 'New ordering saved'; $this->setRedirect( 'index.php?option=com_weblinks', $msg ); } }elracodelangela/administrator/components/com_weblinks/weblinks.xml0000755000176700017710000000102711061563432026506 0ustar essawireessawire Weblinks Joomla! Project April 2006 (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 This component shows a listing of Weblinks elracodelangela/administrator/components/com_weblinks/config.xml0000755000176700017710000000343611061563431026142 0ustar essawireessawire elracodelangela/administrator/components/com_newsfeeds/0000755000176700017710000000000011061563562024314 5ustar essawireessawireelracodelangela/administrator/components/com_newsfeeds/admin.newsfeeds.html.php0000755000176700017710000002542411061563423031050 0ustar essawireessawire
:
id ); $checked = JHTML::_('grid.checkedout', $row, $i ); $published = JHTML::_('grid.published', $row, $i ); $row->cat_link = JRoute::_( 'index.php?option=com_categories§ion=com_newsfeeds&task=edit&cid[]='. $row->catid ); ?>
getListFooter(); ?>
getRowOffset( $i ); ?> get ('id'), $row->checked_out ) ) { echo $row->name; } else { ?> name; ?> orderUpIcon($i, ($row->catid == @$rows[$i-1]->catid), 'orderup', 'Move Up', $ordering ); ?> orderDownIcon($i, $n, ($row->catid == @$rows[$i+1]->catid), 'orderdown', 'Move Down', $ordering ); ?> class="text_area" style="text-align: center" /> catname;?> numarticles;?> cache_time;?> id; ?>
get('gid') == 25 ) { $visible = 1; } HTML_newsfeeds::writableCell( JPATH_SITE.DS.'cache', 0, ''. JText::_('Cache Directory') .' ', $visible ); ?>
rtl == 1) { $isRtl = 'checked="checked"'; } ?>
:
/>
'. JText::_( 'Writable' ) .''; $unwriteable = ''. JText::_( 'Unwritable' ) .''; echo ''; echo ''; echo $text; if ( $visible ) { echo $folder . '/'; } echo ''; echo ''; if ( $relative ) { echo is_writable( "../$folder" ) ? $writeable : $unwriteable; } else { echo is_writable( "$folder" ) ? $writeable : $unwriteable; } echo ''; echo ''; } }elracodelangela/administrator/components/com_newsfeeds/toolbar.newsfeeds.html.php0000755000176700017710000000314511061563423031416 0ustar essawireessawire[ '. $text.' ]' ); JToolBarHelper::save(); JToolBarHelper::apply(); if ($edit) { // for existing items the button is renamed `close` JToolBarHelper::cancel( 'cancel', 'Close' ); } else { JToolBarHelper::cancel(); } JToolBarHelper::help( 'screen.newsfeeds.edit' ); } }elracodelangela/administrator/components/com_newsfeeds/index.html0000755000176700017710000000005411061563423026307 0ustar essawireessawireelracodelangela/administrator/components/com_newsfeeds/tables/0000755000176700017710000000000011061563562025566 5ustar essawireessawireelracodelangela/administrator/components/com_newsfeeds/tables/newsfeed.php0000755000176700017710000000355211061563423030103 0ustar essawireessawirealias)) { $this->alias = $this->name; } $this->alias = JFilterOutput::stringURLSafe($this->alias); if(trim(str_replace('-','',$this->alias)) == '') { $datenow =& JFactory::getDate(); $this->alias = $datenow->toFormat("%Y-%m-%d-%H-%M-%S"); } return true; } } elracodelangela/administrator/components/com_newsfeeds/tables/index.html0000755000176700017710000000005411061563423027561 0ustar essawireessawireelracodelangela/administrator/components/com_newsfeeds/elements/0000755000176700017710000000000011061563562026130 5ustar essawireessawireelracodelangela/administrator/components/com_newsfeeds/elements/newsfeed.php0000755000176700017710000000320711061563423030442 0ustar essawireessawiresetQuery( $query ); $options = $db->loadObjectList( ); $n = count( $options ); for ($i = 0; $i < $n; $i++) { $options[$i]->text = $options[$i]->title . '-' . $options[$i]->name; } array_unshift($options, JHTML::_('select.option', '0', '- '.JText::_('Select Feed').' -', 'id', 'text')); return JHTML::_('select.genericlist', $options, ''.$control_name.'['.$name.']', 'class="inputbox"', 'id', 'text', $value, $control_name.$name ); } } elracodelangela/administrator/components/com_newsfeeds/elements/index.html0000755000176700017710000000005411061563423030123 0ustar essawireessawireelracodelangela/administrator/components/com_newsfeeds/toolbar.newsfeeds.php0000755000176700017710000000157511061563423030460 0ustar essawireessawireauthorize( 'com_newsfeeds', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } // Set the table directory JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_newsfeeds'.DS.'tables'); require_once( JApplicationHelper::getPath( 'admin_html' ) ); $task = JRequest::getCmd('task'); switch ($task) { case 'add' : editNewsFeed(false); break; case 'edit': editNewsFeed(true); break; case 'save': case 'apply': saveNewsFeed( ); break; case 'publish': publishNewsFeeds( ); break; case 'unpublish': unPublishNewsFeeds( ); break; case 'remove': removeNewsFeeds( ); break; case 'cancel': cancelNewsFeed( ); break; case 'orderup': moveUpNewsFeed( ); break; case 'orderdown': moveDownNewsFeed( ); break; case 'saveorder': saveOrder( ); break; default: showNewsFeeds( ); break; } /** * List the records */ function showNewsFeeds( ) { global $mainframe, $option; $db =& JFactory::getDBO(); $filter_order = $mainframe->getUserStateFromRequest( "$option.filter_order", 'filter_order', 'a.ordering', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( "$option.filter_order_Dir", 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( "$option.filter_state", 'filter_state', '', 'word' ); $filter_catid = $mainframe->getUserStateFromRequest( "$option.filter_catid", 'filter_catid', 0, 'int' ); $search = $mainframe->getUserStateFromRequest( "$option.search", 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); $where = array(); if ( $filter_catid ) { $where[] = 'a.catid = '.(int) $filter_catid; } if ($search) { $where[] = 'LOWER(a.name) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'a.published = 1'; } else if ($filter_state == 'U' ) { $where[] = 'a.published = 0'; } } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); if ($filter_order == 'a.ordering'){ $orderby = ' ORDER BY catname, a.ordering'; } else { $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', catname, a.ordering'; } // get the total number of records $query = 'SELECT COUNT(*) ' . ' FROM #__newsfeeds AS a' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); // get the subset (based on limits) of required records $query = 'SELECT a.*, c.title AS catname, u.name AS editor' . ' FROM #__newsfeeds AS a' . ' LEFT JOIN #__categories AS c ON c.id = a.catid' . ' LEFT JOIN #__users AS u ON u.id = a.checked_out' . $where . $orderby ; $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } // build list of categories $javascript = 'onchange="document.adminForm.submit();"'; $lists['catid'] = JHTML::_('list.category', 'filter_catid', 'com_newsfeeds', $filter_catid, $javascript ); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; HTML_newsfeeds::showNewsFeeds( $rows, $lists, $pageNav, $option ); } /** * Creates a new or edits and existing user record */ function editNewsFeed($edit) { $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $catid = JRequest::getVar( 'catid', 0, '', 'int' ); $cid = JRequest::getVar( 'cid', array(0), '', 'array' ); $option = JRequest::getCmd( 'option' ); JArrayHelper::toInteger($cid, array(0)); $row =& JTable::getInstance( 'newsfeed', 'Table' ); // load the row from the db table if($edit) $row->load( $cid[0] ); if ($edit) { // do stuff for existing records $row->checkout( $user->get('id') ); } else { // do stuff for new records $row->ordering = 0; $row->numarticles = 5; $row->cache_time = 3600; $row->published = 1; } // build the html select list for ordering $query = 'SELECT a.ordering AS value, a.name AS text' . ' FROM #__newsfeeds AS a' . ' ORDER BY a.ordering' ; if($edit) $lists['ordering'] = JHTML::_('list.specificordering', $row, $cid[0], $query ); else $lists['ordering'] = JHTML::_('list.specificordering', $row, '', $query ); // build list of categories $lists['category'] = JHTML::_('list.category', 'catid', $option, intval( $row->catid ) ); // build the html select list $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published ); HTML_newsfeeds::editNewsFeed( $row, $lists, $option ); } /** * Saves the record from an edit form submit */ function saveNewsFeed( ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $task = JRequest::getVar( 'task'); $row =& JTable::getInstance( 'newsfeed', 'Table' ); if (!$row->bind(JRequest::get('post'))) { JError::raiseError(500, $row->getError() ); } // Sets rtl value when rtl checkbox ticked $isRtl = JRequest::getInt('rtl'); if ($isRtl) { $row->rtl = 1; } // pre-save checks if (!$row->check()) { JError::raiseError(500, $row->getError() ); } // if new item, order last in appropriate group if (!$row->id) { $where = "catid = " . (int) $row->catid; $row->ordering = $row->getNextOrder( $where ); } // save the changes if (!$row->store()) { JError::raiseError(500, $row->getError() ); } $row->checkin(); switch ($task) { case 'apply': $msg = JText::_( 'Changes to Newsfeed saved' ); $link = 'index.php?option=com_newsfeeds&task=edit&cid[]='. $row->id ; break; case 'save': default: $msg = JText::_( 'Newsfeed saved' ); $link = 'index.php?option=com_newsfeeds'; break; } $mainframe->redirect( $link, $msg ); } /** * Publishes one or more modules */ function publishNewsFeeds( ) { changePublishNewsFeeds( 1 ); } /** * Unpublishes one or more modules */ function unPublishNewsFeeds( ) { changePublishNewsFeeds( 0 ); } /** * Publishes or Unpublishes one or more modules * @param integer 0 if unpublishing, 1 if publishing */ function changePublishNewsFeeds( $publish ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $cid = JRequest::getVar('cid', array(), '', 'array'); $option = JRequest::getCmd('option'); JArrayHelper::toInteger($cid); if (empty( $cid )) { JError::raiseWarning( 500, 'No items selected' ); $mainframe->redirect( 'index.php?option='. $option ); } $cids = implode( ',', $cid ); $query = 'UPDATE #__newsfeeds' . ' SET published = '.(int) $publish . ' WHERE id IN ( '. $cids .' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id') .' ) )' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } if (count( $cid ) == 1) { $row =& JTable::getInstance( 'newsfeed', 'Table' ); $row->checkin( $cid[0] ); } $mainframe->redirect( 'index.php?option='. $option ); } /** * Removes records */ function removeNewsFeeds( ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $cid = JRequest::getVar('cid', array(), '', 'array'); $option = JRequest::getCmd('option'); JArrayHelper::toInteger($cid); if (count($cid) < 1) { JError::raiseWarning(500, JText::_( 'Select an item to delete', true ) ); $mainframe->redirect( 'index.php?option='. $option ); } $cids = implode( ',', $cid ); $query = 'DELETE FROM #__newsfeeds' . ' WHERE id IN ( '. $cids .' )' ; $db->setQuery( $query ); if (!$db->query()) { echo "\n"; } $mainframe->redirect( 'index.php?option='. $option ); } /** * Cancels an edit operation */ function cancelNewsFeed( ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $option = JRequest::getCmd('option'); $row =& JTable::getInstance( 'newsfeed', 'Table' ); $row->bind(JRequest::get('post')); $row->checkin(); $mainframe->redirect( 'index.php?option='. $option ); } /** * Moves the record up one position */ function moveUpNewsFeed( ) { orderNewsFeed( -1 ); } /** * Moves the record down one position */ function moveDownNewsFeed( ) { orderNewsFeed( 1 ); } /** * Moves the order of a record * @param integer The direction to reorder, +1 down, -1 up */ function orderNewsFeed( $inc ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $cid = JRequest::getVar('cid', array(0), '', 'array'); $option = JRequest::getCmd('option'); JArrayHelper::toInteger($cid, array(0)); $limit = JRequest::getVar( 'limit', 0, '', 'int' ); $limitstart = JRequest::getVar( 'limitstart', 0, '', 'int' ); $catid = JRequest::getVar( 'catid', 0, '', 'int' ); $row =& JTable::getInstance( 'newsfeed', 'Table' ); $row->load( $cid[0] ); $row->move( $inc, 'catid = '.(int) $row->catid.' AND published != 0' ); $mainframe->redirect( 'index.php?option='. $option ); } /** * Saves user reordering entry */ function saveOrder( ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $total = count( $cid ); $order = JRequest::getVar( 'order', array(0), 'post', 'array' ); JArrayHelper::toInteger($order, array(0)); $row =& JTable::getInstance( 'newsfeed', 'Table' ); $groupings = array(); // update ordering values for( $i=0; $i < $total; $i++ ) { $row->load( (int) $cid[$i] ); // track categories $groupings[] = $row->catid; if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { JError::raiseError(500, $db->getErrorMsg() ); } } } // execute updateOrder for each parent group $groupings = array_unique( $groupings ); foreach ($groupings as $group){ $row->reorder('catid = '.(int) $group); } $msg = JText::_( 'New ordering saved' ); $mainframe->redirect( 'index.php?option=com_newsfeeds', $msg ); } elracodelangela/administrator/components/com_newsfeeds/config.xml0000755000176700017710000000412611061563423026305 0ustar essawireessawire elracodelangela/administrator/components/com_newsfeeds/newsfeeds.xml0000755000176700017710000000102611061563423027017 0ustar essawireessawire Newsfeeds Joomla! Project April 2006 (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 This component manages RSS/RDF newsfeeds elracodelangela/administrator/components/com_cache/0000755000176700017710000000000011061563557023400 5ustar essawireessawireelracodelangela/administrator/components/com_cache/toolbar.cache.php0000755000176700017710000000141011061563414026604 0ustar essawireessawire Cache Manager Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Cache Manager elracodelangela/administrator/components/com_cache/index.html0000755000176700017710000000005411061563414025367 0ustar essawireessawireelracodelangela/administrator/components/com_cache/admin.cache.php0000755000176700017710000000562611061563414026247 0ustar essawireessawireauthorize( 'com_cache', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } // Load the html output class and the model class require_once (JApplicationHelper::getPath('admin_html')); require_once (JApplicationHelper::getPath('class')); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); /* * This is our main control structure for the component * * Each view is determined by the $task variable */ switch ( JRequest::getVar( 'task' ) ) { case 'delete': CacheController::deleteCache($cid); CacheController::showCache(); break; default : CacheController::showCache(); break; } /** * Static class to hold controller functions for the Cache component * * @static * @package Joomla * @subpackage Weblinks * @since 1.5 */ class CacheController { /** * Show the cache * * @since 1.5 */ function showCache() { global $mainframe, $option; $submenu = JRequest::getVar('client', '0', '', 'int'); $client =& JApplicationHelper::getClientInfo($submenu); if ($submenu == 1) { JSubMenuHelper::addEntry(JText::_('Site'), 'index.php?option=com_cache&client=0'); JSubMenuHelper::addEntry(JText::_('Administrator'), 'index.php?option=com_cache&client=1', true); } else { JSubMenuHelper::addEntry(JText::_('Site'), 'index.php?option=com_cache&client=0', true); JSubMenuHelper::addEntry(JText::_('Administrator'), 'index.php?option=com_cache&client=1'); } $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit')); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0 ); $cmData = new CacheData($client->path.DS.'cache'); jimport('joomla.html.pagination'); $pageNav = new JPagination( $cmData->getGroupCount(), $limitstart, $limit ); CacheView::displayCache( $cmData->getRows( $limitstart, $limit ), $client, $pageNav ); } function deleteCache($cid) { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $cmData = new CacheData($client->path.DS.'cache'); $cmData->cleanCacheList( $cid ); } }elracodelangela/administrator/components/com_cache/toolbar.cache.html.php0000755000176700017710000000173511061563414027561 0ustar essawireessawire_path = $path; $this->_parse(); } /** * Parse $path for cache file groups. Any files identifided as cache are logged * in a group and stored in $this->items. * * @access private * @param String $path */ function _parse() { jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); $folders = JFolder::folders($this->_path); foreach ($folders as $folder) { $files = array(); $files = JFolder::files($this->_path.DS.$folder); $this->_items[$folder] = new CacheItem( $folder ); foreach ($files as $file) { $this->_items[$folder]->updateSize( filesize( $this->_path.DS.$folder.DS.$file )/ 1024 ); } } } /** * Get the number of current Cache Groups * * @access public * @return int */ function getGroupCount() { return count($this->_items); } /** * Retrun an Array containing a sub set of the total * number of Cache Groups as defined by the params. * * @access public * @param Int $start * @param Int $limit * @return Array */ function getRows( $start, $limit ) { $i = 0; if (count($this->_items) == 0) { return null; } foreach ($this->_items as $item) { if ($i >= $start && $i < $start+$limit) { $rows[] = $item; } $i++; } return $rows; } /** * Clean out a cache group as named by param. * If no param is passed clean all cache groups. * * @param String $group */ function cleanCache( $group='' ) { $cache =& JFactory::getCache('', 'callback', 'file'); $cache->clean( $group ); } function cleanCacheList( $array ) { foreach ($array as $group) { $this->cleanCache( $group ); } } } /** * This Class is used by CacheData to store group cache data. * * @package Joomla * @subpackage Cache * @since 1.5 */ class CacheItem { var $group = ""; var $size = 0; var $count = 0; function CacheItem ( $group ) { $this->group = $group; } function updateSize( $size ) { $this->size = number_format( $this->size + $size, 2 ); $this->count++; } }elracodelangela/administrator/components/com_cache/admin.cache.html.php0000755000176700017710000000522111061563414027201 0ustar essawireessawire
" >
getListFooter(); ?>
getRowOffset( $i ); ?> group; ?> count; ?> size ?>
registerTask( 'add', 'edit' ); $this->registerTask( 'apply', 'save' ); $this->registerTask( 'resethits', 'save' ); $this->registerTask( 'unpublish', 'publish' ); } /** * Display the list of banners */ function display() { global $mainframe; $db =& JFactory::getDBO(); $context = 'com_banners.banner.list.'; $filter_order = $mainframe->getUserStateFromRequest( $context.'filter_order', 'filter_order', 'cc.title', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $context.'filter_order_Dir', 'filter_order_Dir', '', 'word' ); $filter_catid = $mainframe->getUserStateFromRequest( $context.'filter_catid', 'filter_catid', '', 'int' ); $filter_state = $mainframe->getUserStateFromRequest( $context.'filter_state', 'filter_state', '', 'word' ); $search = $mainframe->getUserStateFromRequest( $context.'search', 'search', '', 'string' ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $context.'limitstart', 'limitstart', 0, 'int' ); $where = array(); if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'b.showBanner = 1'; } else if ($filter_state == 'U' ) { $where[] = 'b.showBanner = 0'; } } if ($filter_catid) { $where[] = 'cc.id = ' . (int) $filter_catid; } if ($search) { $where[] = 'LOWER(b.name) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } $where = count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : ''; $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', b.ordering'; // get the total number of records $query = 'SELECT COUNT(*)' . ' FROM #__banner AS b' . ' LEFT JOIN #__categories AS cc ON cc.id = b.catid' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); $query = 'SELECT b.*, c.name AS client_name, cc.title AS category_name, u.name AS editor' . ' FROM #__banner AS b' . ' INNER JOIN #__bannerclient AS c ON c.cid = b.cid' . ' LEFT JOIN #__categories AS cc ON cc.id = b.catid' . ' LEFT JOIN #__users AS u ON u.id = b.checked_out' . $where . $orderby ; $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $rows = $db->loadObjectList(); // build list of categories $javascript = 'onchange="document.adminForm.submit();"'; $lists['catid'] = JHTML::_('list.category', 'filter_catid', 'com_banner', (int) $filter_catid, $javascript ); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; require_once(JPATH_COMPONENT.DS.'views'.DS.'banner.php'); BannersViewBanner::banners( $rows, $pageNav, $lists ); } function edit() { $db =& JFactory::getDBO(); $user =& JFactory::getUser(); if ($this->_task == 'edit') { $cid = JRequest::getVar('cid', array(0), 'method', 'array'); $cid = array((int) $cid[0]); } else { $cid = array( 0 ); } $option = JRequest::getCmd('option'); $lists = array(); $row =& JTable::getInstance('banner', 'Table'); $row->load( $cid[0] ); if ($cid[0]) { $row->checkout( $user->get('id') ); } else { $row->showBanner = 1; } // Build Client select list $sql = 'SELECT cid, name' . ' FROM #__bannerclient' ; $db->setQuery($sql); if (!$db->query()) { $this->setRedirect( 'index.php?option=com_banners' ); return JError::raiseWarning( 500, $db->getErrorMsg() ); } $banner_params = new JParameter( $row->params ); $lists['width'] = $banner_params->get( 'width'); $lists['height'] = $banner_params->get( 'height'); $clientlist[] = JHTML::_('select.option', '0', JText::_( 'Select Client' ), 'cid', 'name' ); $clientlist = array_merge( $clientlist, $db->loadObjectList() ); $lists['cid'] = JHTML::_('select.genericlist', $clientlist, 'cid', 'class="inputbox" size="1"','cid', 'name', $row->cid ); // Imagelist $javascript = 'onchange="changeDisplayImage();"'; $directory = '/images/banners'; $lists['imageurl'] = JHTML::_('list.images', 'imageurl', $row->imageurl, $javascript, $directory, "bmp|gif|jpg|png|swf" ); // build list of categories $lists['catid'] = JHTML::_('list.category', 'catid', 'com_banner', intval( $row->catid ) ); // sticky $lists['sticky'] = JHTML::_('select.booleanlist', 'sticky', 'class="inputbox"', $row->sticky ); // published $lists['showBanner'] = JHTML::_('select.booleanlist', 'showBanner', '', $row->showBanner ); require_once(JPATH_COMPONENT.DS.'views'.DS.'banner.php'); BannersViewBanner::banner( $row, $lists ); } /** * Save method */ function save() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $this->setRedirect( 'index.php?option=com_banners' ); // Initialize variables $db =& JFactory::getDBO(); $post = JRequest::get( 'post' ); // fix up special html fields $post['custombannercode'] = JRequest::getVar( 'custombannercode', '', 'post', 'string', JREQUEST_ALLOWRAW ); $row =& JTable::getInstance('banner', 'Table'); // Save params temp fix $temp1 = array(); $temp2 = array(); $temp1['width'] = (int) $post['width']; $temp1['height'] = (int) $post['height']; foreach ($temp1 as $k => $v) { if ( $k && strlen($v) ) { $temp2[] = $k.'='.$v; } } $row->params = implode( "\n", $temp2 ); if (!$row->bind( $post )) { return JError::raiseWarning( 500, $row->getError() ); } // Resets clicks when `Reset Clicks` button is used instead of `Save` button $task = JRequest::getCmd( 'task' ); if ( $task == 'resethits' ) { $row->clicks = 0; $msg = JText::_( 'Reset Banner clicks' ); } // Sets impressions to unlimited when `unlimited` checkbox ticked $unlimited = JRequest::getBool('unlimited'); if ($unlimited) { $row->imptotal = 0; } if (!$row->check()) { return JError::raiseWarning( 500, $row->getError() ); } // if new item order last in appropriate group if (!$row->bid) { $where = 'catid = '.(int) $row->catid; $row->ordering = $row->getNextOrder( $where ); } if (!$row->store()) { return JError::raiseWarning( 500, $row->getError() ); } $row->checkin(); switch ($task) { case 'apply': $link = 'index.php?option=com_banners&task=edit&cid[]='. $row->bid ; break; case 'save': default: $link = 'index.php?option=com_banners'; break; } $this->setRedirect( $link, JText::_( 'Item Saved' ) ); } function cancel() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $this->setRedirect( 'index.php?option=com_banners' ); // Initialize variables $db =& JFactory::getDBO(); $post = JRequest::get( 'post' ); $row =& JTable::getInstance('banner', 'Table'); $row->bind( $post ); $row->checkin(); } /** * Copies one or more banners */ function copy() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $this->setRedirect( 'index.php?option=com_banners' ); $cid = JRequest::getVar( 'cid', null, 'post', 'array' ); $db =& JFactory::getDBO(); $table =& JTable::getInstance('banner', 'Table'); $user = &JFactory::getUser(); $n = count( $cid ); if ($n > 0) { foreach ($cid as $id) { if ($table->load( (int)$id )) { $table->bid = 0; $table->name = 'Copy of ' . $table->name; $table->impmade = 0; $table->clicks = 0; $table->showBanner = 0; $table->date = $db->getNullDate(); if (!$table->store()) { return JError::raiseWarning( $table->getError() ); } } else { return JError::raiseWarning( 500, $table->getError() ); } } } else { return JError::raiseWarning( 500, JText::_( 'No items selected' ) ); } $this->setMessage( JText::sprintf( 'Items copied', $n ) ); } function publish() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $this->setRedirect( 'index.php?option=com_banners' ); // Initialize variables $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $task = JRequest::getCmd( 'task' ); $publish = ($task == 'publish'); $n = count( $cid ); if (empty( $cid )) { return JError::raiseWarning( 500, JText::_( 'No items selected' ) ); } JArrayHelper::toInteger( $cid ); $cids = implode( ',', $cid ); $query = 'UPDATE #__banner' . ' SET showBanner = ' . (int) $publish . ' WHERE bid IN ( '. $cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = ' .(int) $user->get('id'). ' ) )' ; $db->setQuery( $query ); if (!$db->query()) { return JError::raiseWarning( 500, $db->getError() ); } $this->setMessage( JText::sprintf( $publish ? 'Items published' : 'Items unpublished', $n ) ); } function remove() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $this->setRedirect( 'index.php?option=com_banners' ); // Initialize variables $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $n = count( $cid ); JArrayHelper::toInteger( $cid ); if ($n) { $query = 'DELETE FROM #__banner' . ' WHERE bid = ' . implode( ' OR bid = ', $cid ) ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseWarning( 500, $db->getError() ); } } $this->setMessage( JText::sprintf( 'Items removed', $n ) ); } /** * Save the new order given by user */ function saveOrder() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $this->setRedirect( 'index.php?option=com_banners' ); // Initialize variables $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $order = JRequest::getVar( 'order', array(), 'post', 'array' ); $row =& JTable::getInstance('banner', 'Table'); $total = count( $cid ); $conditions = array(); if (empty( $cid )) { return JError::raiseWarning( 500, JText::_( 'No items selected' ) ); } // update ordering values for ($i = 0; $i < $total; $i++) { $row->load( (int) $cid[$i] ); if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { return JError::raiseError( 500, $db->getErrorMsg() ); } // remember to reorder this category $condition = 'catid = '.(int) $row->catid; $found = false; foreach ($conditions as $cond) { if ($cond[1] == $condition) { $found = true; break; } } if (!$found) { $conditions[] = array ( $row->bid, $condition ); } } } // execute reorder for each category foreach ($conditions as $cond) { $row->load( $cond[0] ); $row->reorder( $cond[1] ); } // Clear the component's cache $cache =& JFactory::getCache('com_banners'); $cache->clean(); $this->setMessage( JText::_('New ordering saved') ); } } elracodelangela/administrator/components/com_banners/controllers/index.html0000755000176700017710000000005411061563427030326 0ustar essawireessawireelracodelangela/administrator/components/com_banners/controllers/client.php0000755000176700017710000001360511061563427030326 0ustar essawireessawireregisterTask( 'add', 'edit' ); $this->registerTask( 'apply', 'save' ); } function display() { global $mainframe; $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $context = 'com_banners.bannerclient.list.'; $filter_order = $mainframe->getUserStateFromRequest( $context.'filter_order', 'filter_order', 'a.name', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $context.'filter_order_Dir', 'filter_order_Dir', '', 'word' ); $search = $mainframe->getUserStateFromRequest( $context.'search', 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $context.'limitstart', 'limitstart', 0, 'int' ); $where = array(); if ($search) { $where[] = 'LOWER(a.name) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', a.cid'; // get the total number of records $query = 'SELECT a.*, count(b.bid) AS nbanners, u.name AS editor' . ' FROM #__bannerclient AS a' . ' LEFT JOIN #__banner AS b ON a.cid = b.cid' . ' LEFT JOIN #__users AS u ON u.id = a.checked_out' . $where . ' GROUP BY a.cid' . $orderby ; $db->setQuery( $query ); $db->query(); $total = $db->getNumRows(); jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $rows = $db->loadObjectList(); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; require_once(JPATH_COMPONENT.DS.'views'.DS.'client.php'); BannersViewClients::clients( $rows, $pageNav, $lists ); } /** * Edit a banner client record */ function edit() { // Initialize variables $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $userId = $user->get ( 'id' ); if ($this->_task == 'edit') { $cid = JRequest::getVar('cid', array(0), 'method', 'array'); } else { $cid = array( 0 ); } $row =& JTable::getInstance('bannerclient', 'Table'); $row->load( (int) $cid[0] ); // fail if checked out not by 'me' if ($row->isCheckedOut( $userId )) { $this->setRedirect( 'index.php?option=com_banners&c=client' ); return JError::raiseWarning( JText::sprintf( 'WARNEDITEDBYPERSON', $row->name ) ); } if ($row->cid) { // do stuff for existing record $row->checkout( $userId ); } else { // do stuff for new record $row->published = 0; $row->approved = 0; } require_once(JPATH_COMPONENT.DS.'views'.DS.'client.php'); BannersViewClients::client( $row ); } function save() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $this->setRedirect( 'index.php?option=com_banners&c=client' ); // Initialize variables $db =& JFactory::getDBO(); $table =& JTable::getInstance('bannerclient', 'Table'); if (!$table->bind( JRequest::get( 'post' ) )) { return JError::raiseWarning( 500, $table->getError() ); } if (!$table->check()) { return JError::raiseWarning( 500, $table->getError() ); } if (!$table->store()) { return JError::raiseWarning( 500, $table->getError() ); } $table->checkin(); switch (JRequest::getCmd( 'task' )) { case 'apply': $this->setRedirect( 'index.php?option=com_banners&c=client&task=edit&cid[]='. $table->cid ); break; } $this->setMessage( JText::_( 'Item Saved' ) ); } function cancel() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $this->setRedirect( 'index.php?option=com_banners&c=client' ); // Initialize variables $db =& JFactory::getDBO(); $table =& JTable::getInstance('bannerclient', 'Table'); $table->cid = JRequest::getVar( 'cid', 0, 'post', 'int' ); $table->checkin(); } function remove() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $this->setRedirect( 'index.php?option=com_banners&c=client' ); // Initialize variables $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $table =& JTable::getInstance('bannerclient', 'Table'); $n = count( $cid ); for ($i = 0; $i < $n; $i++) { $query = 'SELECT COUNT( bid )' . ' FROM #__banner' . ' WHERE cid = '. (int) $cid[$i] ; $db->setQuery($query); $count = $db->loadResult(); if ($count === null) { return JError::raiseWarning( 500, $db->getErrorMsg() ); } else if ($count > 0) { return JError::raiseWarning( 500, JText::_( 'WARNCANNOTDELCLIENTBANNER' ) ); } else { if (!$table->delete( (int) $cid[$i] )) { return JError::raiseWarning( 500, $table->getError() ); } } } $this->setMessage( JText::sprintf( 'Items removed', $n ) ); } }elracodelangela/administrator/components/com_banners/admin.banners.php0000755000176700017710000000431111061563427027213 0ustar essawireessawireauthorize( 'com_banners', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } // Set the table directory JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_banners'.DS.'tables'); $controllerName = JRequest::getCmd( 'c', 'banner' ); if($controllerName == 'client') { JSubMenuHelper::addEntry(JText::_('Banners'), 'index.php?option=com_banners'); JSubMenuHelper::addEntry(JText::_('Clients'), 'index.php?option=com_banners&c=client', true ); JSubMenuHelper::addEntry(JText::_('Categories'), 'index.php?option=com_categories§ion=com_banner'); } else { JSubMenuHelper::addEntry(JText::_('Banners'), 'index.php?option=com_banners', true ); JSubMenuHelper::addEntry(JText::_('Clients'), 'index.php?option=com_banners&c=client'); JSubMenuHelper::addEntry(JText::_('Categories'), 'index.php?option=com_categories§ion=com_banner'); } switch ($controllerName) { default: $controllerName = 'banner'; // allow fall through case 'banner' : case 'client': // Temporary interceptor $task = JRequest::getCmd('task'); if ($task == 'listclients') { $controllerName = 'client'; } require_once( JPATH_COMPONENT.DS.'controllers'.DS.$controllerName.'.php' ); $controllerName = 'BannerController'.$controllerName; // Create the controller $controller = new $controllerName(); // Perform the Request task $controller->execute( JRequest::getCmd('task') ); // Redirect if set by the controller $controller->redirect(); break; }elracodelangela/administrator/components/com_banners/helpers/0000755000176700017710000000000011061563564025425 5ustar essawireessawireelracodelangela/administrator/components/com_banners/helpers/banner.php0000755000176700017710000000330511061563430027377 0ustar essawireessawireget( 'tag_prefix' ); $instance = array(); if (!is_array( $keywords )) { $keywords = explode( ',', $keywords ); } foreach ($keywords as $keyword) { $keyword = trim( $keyword ); $regex = '#^' . $prefix . '#'; if (preg_match( $regex, $keyword )) { $instance[] = $keyword; } } } return $instance; } /** * Checks if a URL is an image * * @param string * @return URL */ function isImage( $url ) { $result = preg_match( '#(\.bmp|\.gif|\.jpg|\.jpeg|\.png)$#', $url ); return $result; } /** * Checks if a URL is a Flash file * * @param string * @return URL */ function isFlash( $url ) { $result = preg_match( '#\.swf$#', $url ); return $result; } } ?>elracodelangela/administrator/components/com_banners/helpers/index.html0000755000176700017710000000005411061563430027414 0ustar essawireessawireelracodelangela/administrator/components/com_banners/index.html0000755000176700017710000000005411061563427025760 0ustar essawireessawireelracodelangela/administrator/components/com_banners/tables/0000755000176700017710000000000011061563564025235 5ustar essawireessawireelracodelangela/administrator/components/com_banners/tables/banner.php0000755000176700017710000000551511061563427027222 0ustar essawireessawireset( 'date', $now->toMySQL() ); } function clicks() { $query = 'UPDATE #__banner' . ' SET clicks = ( clicks + 1 )' . ' WHERE bid = ' . (int) $this->bid ; $this->_db->setQuery( $query ); $this->_db->query(); } /** * Overloaded check function * * @access public * @return boolean * @see JTable::check * @since 1.5 */ function check() { // check for valid client id if (is_null($this->cid) || $this->cid == 0) { $this->setError(JText::_( 'BNR_CLIENT' )); return false; } // check for valid name if(trim($this->name) == '') { $this->setError(JText::_( 'BNR_NAME' )); return false; } if(empty($this->alias)) { $this->alias = $this->name; } $this->alias = JFilterOutput::stringURLSafe($this->alias); /*if(trim($this->imageurl) == '') { $this->setError(JText::_( 'BNR_IMAGE' )); return false; } if(trim($this->clickurl) == '' && trim($this->custombannercode) == '') { $this->setError(JText::_( 'BNR_URL' )); return false; }*/ return true; } } ?> elracodelangela/administrator/components/com_banners/tables/index.html0000755000176700017710000000005411061563427027232 0ustar essawireessawireelracodelangela/administrator/components/com_banners/tables/bannerclient.php0000755000176700017710000000316611061563427030421 0ustar essawireessawirename == '')) { $this->setError(JText::_( 'BNR_CLIENT_NAME' )); return false; } // check for valid client contact if (trim($this->contact == '')) { $this->setError(JText::_( 'BNR_CONTACT' )); return false; } // check for valid client email jimport( 'joomla.mail.helper' ); if (!JMailHelper::isEmailAddress( $this->email )) { $this->setError(JText::_( 'BNR_VALID_EMAIL' )); return false; } return true; } } elracodelangela/administrator/components/com_banners/elements/0000755000176700017710000000000011061563564025577 5ustar essawireessawireelracodelangela/administrator/components/com_banners/elements/index.html0000755000176700017710000000005411061563427027574 0ustar essawireessawireelracodelangela/administrator/components/com_banners/elements/bannerclient.php0000755000176700017710000000276311061563427030765 0ustar essawireessawiresetQuery($query); $options = $db->loadObjectList(); array_unshift($options, JHTML::_('select.option', '0', '- '.JText::_('Select Client').' -', 'cid', 'name')); return JHTML::_('select.genericlist', $options, ''.$control_name.'['.$name.']', 'class="inputbox"', 'cid', 'name', $value, $control_name.$name ); } } elracodelangela/administrator/components/com_banners/views/0000755000176700017710000000000011061563564025120 5ustar essawireessawireelracodelangela/administrator/components/com_banners/views/banner.php0000755000176700017710000003564011061563427027107 0ustar essawireessawire
:
id = $row->bid; $link = JRoute::_( 'index.php?option=com_banners&task=edit&cid[]='. $row->id ); if( $row->imptotal <= 0 ) { $row->imptotal = JText::_('unlimited'); } if ( $row->impmade != 0 ) { $percentClicks = 100 * $row->clicks/$row->impmade; } else { $percentClicks = 0; } $row->published = $row->showBanner; $published = JHTML::_('grid.published', $row, $i ); $checked = JHTML::_('grid.checkedout', $row, $i ); ?> ">
getListFooter(); ?>
getRowOffset($i); ?> get ('id'), $row->checked_out ) ) { echo $row->name; } else { ?> name; ?> client_name;?> category_name;?> sticky ? JText::_( 'Yes' ) : JText::_( 'No' );?> impmade.' '.JText::_('of').' '.$row->imptotal?> clicks;?> - tags; ?> id; ?>
[ '. JText::_( 'New' ) .' ]' : JText::_( 'Banner' ) . ': [ '. JText::_( 'Edit' ) .' ]', 'generic.png' ); JToolBarHelper::save( 'save' ); JToolBarHelper::apply('apply'); JToolBarHelper::cancel( 'cancel' ); JToolBarHelper::help( 'screen.banners.edit' ); } function banner( &$row, &$lists ) { BannersViewBanner::setBannerToolbar(); JRequest::setVar( 'hidemainmenu', 1 ); JFilterOutput::objectHTMLSafe( $row, ENT_QUOTES, 'custombannercode' ); ?>
imptotal == 0) { $unlimited = 'checked="checked"'; $row->imptotal = ''; } ?>
:
:
     />
: clicks;?>     
: imageurl)) { ?> imageurl)) { ?>
elracodelangela/administrator/components/com_banners/views/client.php0000755000176700017710000001727411061563427027123 0ustar essawireessawire
:
id = $row->cid; $link = JRoute::_( 'index.php?option=com_banners&c=client&task=edit&cid[]='. $row->id ); $checked = JHTML::_('grid.checkedout', $row, $i ); ?> ">
getListFooter(); ?>
getRowOffset( $i ); ?> get ('id'), $row->checked_out ) ) { echo $row->name; } else { ?> name; ?> contact; ?> nbanners;?> cid; ?>
[ '. JText::_( 'New' ) .' ]' : JText::_( 'Banner Client' ) . ': [ '. JText::_( 'Edit' ) .' ]', 'generic.png' ); JToolBarHelper::save( 'save' ); JToolBarHelper::apply('apply'); JToolBarHelper::cancel( 'cancel' ); JToolBarHelper::help( 'screen.banners.client.edit' ); } function client( &$row ) { BannersViewClients::setClientToolbar(); JRequest::setVar( 'hidemainmenu', 1 ); JFilterOutput::objectHTMLSafe( $row, ENT_QUOTES, 'extrainfo' ); ?>
Banners Joomla! Project April 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 This component manages banners and banner clients elracodelangela/administrator/components/com_banners/config.xml0000755000176700017710000000114311061563427025752 0ustar essawireessawire elracodelangela/administrator/components/com_languages/0000755000176700017710000000000011061563564024301 5ustar essawireessawireelracodelangela/administrator/components/com_languages/admin.languages.html.php0000755000176700017710000000770511061563427031024 0ustar essawireessawire

message); ?>

">
 
getListFooter(); ?>
getRowOffset( $i ); ?> name;?> published == 1) { ?> <?php echo JText::_( 'Default' ); ?>   version; ?> creationdate; ?> author; ?> authorEmail; ?>
elracodelangela/administrator/components/com_languages/toolbar.languages.php0000755000176700017710000000141211061563427030420 0ustar essawireessawire Language Manager Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Language Manager elracodelangela/administrator/components/com_languages/admin.languages.php0000755000176700017710000001065211061563427030054 0ustar essawireessawireauthorize( 'com_languages', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } require_once( JApplicationHelper::getPath( 'admin_html' ) ); $task = strtolower( JRequest::getCmd( 'task' ) ); $cid = JRequest::getVar( 'cid', array(0), '', 'array' ); $cid = array(JFilterInput::clean(@$cid[0], 'cmd')); $client = JRequest::getVar('client', 0, '', 'int'); if ($client == 1) { JSubMenuHelper::addEntry(JText::_('Site'),'#" onclick="javascript:document.adminForm.client.value=\'0\';submitbutton(\'\');'); JSubMenuHelper::addEntry(JText::_('Administrator'), '#" onclick="javascript:document.adminForm.client.value=\'1\';submitbutton(\'\');', true ); } else { JSubMenuHelper::addEntry(JText::_('Site'), '#" onclick="javascript:document.adminForm.client.value=\'0\';submitbutton(\'\');', true ); JSubMenuHelper::addEntry(JText::_('Administrator'), '#" onclick="javascript:document.adminForm.client.value=\'1\';submitbutton(\'\');'); } switch ($task) { case 'publish': publishLanguage( $cid[0]); break; default: viewLanguages(); break; } /** * Compiles a list of installed languages */ function viewLanguages() { global $mainframe, $option; // Initialize some variables $db =& JFactory::getDBO(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $rows = array (); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); $rowid = 0; // Set FTP credentials, if given jimport('joomla.client.helper'); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); //load folder filesystem class jimport('joomla.filesystem.folder'); $path = JLanguage::getLanguagePath($client->path); $dirs = JFolder::folders( $path ); foreach ($dirs as $dir) { $files = JFolder::files( $path.DS.$dir, '^([-_A-Za-z]*)\.xml$' ); foreach ($files as $file) { $data = JApplicationHelper::parseXMLLangMetaFile($path.DS.$dir.DS.$file); $row = new StdClass(); $row->id = $rowid; $row->language = substr($file,0,-4); if (!is_array($data)) { continue; } foreach($data as $key => $value) { $row->$key = $value; } // if current than set published $params = JComponentHelper::getParams('com_languages'); if ( $params->get($client->name, 'en-GB') == $row->language) { $row->published = 1; } else { $row->published = 0; } $row->checked_out = 0; $row->mosname = JString::strtolower( str_replace( " ", "_", $row->name ) ); $rows[] = $row; $rowid++; } } jimport('joomla.html.pagination'); $pageNav = new JPagination( $rowid, $limitstart, $limit ); $rows = array_slice( $rows, $pageNav->limitstart, $pageNav->limit ); HTML_languages::showLanguages( $rows, $pageNav, $option, $client, $ftp ); } /** * Publish, or make current, the selected language */ function publishLanguage( $language ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $params = JComponentHelper::getParams('com_languages'); $params->set($client->name, $language); $table =& JTable::getInstance('component'); $table->loadByOption( 'com_languages' ); $table->params = $params->toString(); // pre-save checks if (!$table->check()) { JError::raiseWarning( 500, $table->getError() ); return false; } // save the changes if (!$table->store()) { JError::raiseWarning( 500, $table->getError() ); return false; } $mainframe->redirect('index.php?option=com_languages&client='.$client->id); }elracodelangela/administrator/components/com_languages/toolbar.languages.html.php0000755000176700017710000000163011061563427031365 0ustar essawireessawireauthorize( 'com_frontpage', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } // Set the table directory JTable::addIncludePath(JPATH_COMPONENT.DS.DS.'tables'); // Set the helper directory JHTML::addIncludePath( JPATH_ADMINISTRATOR.DS.'components'.DS.'com_content'.DS.'helper' ); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); switch ( JRequest::getCmd( 'task' ) ) { case 'publish': changeFrontPage( $cid, 1, $option ); break; case 'unpublish': changeFrontPage( $cid, 0, $option ); break; case 'archive': changeFrontPage( $cid, -1, $option ); break; case 'remove': removeFrontPage( $cid, $option ); break; case 'orderup': orderFrontPage( $cid[0], -1, $option ); break; case 'orderdown': orderFrontPage( $cid[0], 1, $option ); break; case 'saveorder': saveOrder( $cid ); break; case 'accesspublic': accessMenu( $cid[0], 0 ); break; case 'accessregistered': accessMenu( $cid[0], 1 ); break; case 'accessspecial': accessMenu( $cid[0], 2 ); break; default: viewFrontPage( $option ); break; } /** * Compiles a list of frontpage items */ function viewFrontPage( $option ) { global $mainframe; $db =& JFactory::getDBO(); $filter_order = $mainframe->getUserStateFromRequest( $option.'.filter_order', 'filter_order', 'fpordering', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $option.'.filter_order_Dir', 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( $option.'.filter_state', 'filter_state', '', 'word' ); $catid = $mainframe->getUserStateFromRequest( $option.'.catid', 'catid', 0, 'int' ); $filter_authorid = $mainframe->getUserStateFromRequest( $option.'.filter_authorid', 'filter_authorid', 0, 'int' ); $filter_sectionid = $mainframe->getUserStateFromRequest( $option.'.filter_sectionid', 'filter_sectionid', -1, 'int' ); $search = $mainframe->getUserStateFromRequest( $option.'.search', 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); JToolBarHelper::title( JText::_( 'Frontpage Manager' ), 'frontpage.png' ); JToolBarHelper::archiveList(); JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::custom('remove','delete.png','delete_f2.png','Remove', true); JToolBarHelper::help( 'screen.frontpage' ); $where = array( "c.state >= 0" ); // used by filter if ( $filter_sectionid >= 0 ) { $where[] = 'c.sectionid = '.(int) $filter_sectionid; } if ( $catid > 0 ) { $where[] = 'c.catid = '.(int) $catid; } if ( $filter_authorid > 0 ) { $where[] = 'c.created_by = '. (int) $filter_authorid; } if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'c.state = 1'; } else if ($filter_state == 'U' ) { $where[] = 'c.state = 0'; } } if ($search) { $where[] = 'LOWER( c.title ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', fpordering'; // get the total number of records $query = 'SELECT count(*)' . ' FROM #__content AS c' . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = cc.section AND s.scope="content"' . ' INNER JOIN #__content_frontpage AS f ON f.content_id = c.id' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); $query = 'SELECT c.*, g.name AS groupname, cc.title as name, s.title AS sect_name, u.name AS editor, f.ordering AS fpordering, v.name AS author' . ' FROM #__content AS c' . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = cc.section AND s.scope="content"' . ' INNER JOIN #__content_frontpage AS f ON f.content_id = c.id' . ' INNER JOIN #__groups AS g ON g.id = c.access' . ' LEFT JOIN #__users AS u ON u.id = c.checked_out' . ' LEFT JOIN #__users AS v ON v.id = c.created_by' . $where . $orderby ; $db->setQuery( $query, $pageNav->limitstart,$pageNav->limit ); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } // get list of categories for dropdown filter $query = 'SELECT cc.id AS value, cc.title AS text, section' . ' FROM #__categories AS cc' . ' INNER JOIN #__sections AS s ON s.id = cc.section ' . ' ORDER BY s.ordering, cc.ordering' ; $db->setQuery( $query ); $categories[] = JHTML::_('select.option', '-1', '- '. JText::_( 'Select Category' ) .' -' ); $categories = array_merge( $categories, $db->loadObjectList() ); $lists['catid'] = JHTML::_('select.genericlist', $categories, 'catid', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'value', 'text', $catid ); // get list of sections for dropdown filter $javascript = 'onchange="document.adminForm.submit();"'; $lists['sectionid'] = JHTML::_('list.section', 'filter_sectionid', $filter_sectionid, $javascript ); // get list of Authors for dropdown filter $query = 'SELECT c.created_by, u.name' . ' FROM #__content AS c' . ' INNER JOIN #__sections AS s ON s.id = c.sectionid' . ' LEFT JOIN #__users AS u ON u.id = c.created_by' . ' WHERE c.state <> -1' . ' AND c.state <> -2' . ' GROUP BY u.name' . ' ORDER BY u.name' ; $db->setQuery( $query ); $authors[] = JHTML::_('select.option', '0', '- '. JText::_( 'Select Author' ) .' -', 'created_by', 'name' ); $authors = array_merge( $authors, $db->loadObjectList() ); $lists['authorid'] = JHTML::_('select.genericlist', $authors, 'filter_authorid', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'created_by', 'name', $filter_authorid ); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; require_once(JPATH_COMPONENT.DS.'views'.DS.'frontpage.php'); FrontpageView::showList( $rows, $pageNav, $option, $lists ); } /** * Changes the state of one or more content pages * @param array An array of unique category id numbers * @param integer 0 if unpublishing, 1 if publishing */ function changeFrontPage( $cid=null, $state=0, $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { $action = $state == 1 ? 'publish' : ($state == -1 ? 'archive' : 'unpublish'); JError::raiseError(500, JText::_( 'Select an item to' .$action, true ) ); } $cids = implode( ',', $cid ); $query = 'UPDATE #__content' . ' SET state = '.(int) $state . ' WHERE id IN ( '. $cids .' )' . ' AND ( checked_out = 0 OR ( checked_out = ' .(int) $user->get('id'). ' ) )' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } if (count( $cid ) == 1) { $row =& JTable::getInstance('content'); $row->checkin( $cid[0] ); } $cache = & JFactory::getCache('com_content'); $cache->clean(); $mainframe->redirect( 'index.php?option='.$option ); } function removeFrontPage( &$cid, $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); if (!is_array( $cid ) || count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select an item to delete', true ) ); } $fp =& JTable::getInstance('frontpage', 'Table'); foreach ($cid as $id) { if (!$fp->delete( $id )) { JError::raiseError(500, $fp->getError() ); } $obj =& JTable::getInstance('content'); $obj->load( $id ); $obj->mask = 0; if (!$obj->store()) { JError::raiseError(500, $fp->getError() ); } } $fp->reorder(); $cache = & JFactory::getCache('com_content'); $cache->clean(); $mainframe->redirect( 'index.php?option='.$option ); } /** * Moves the order of a record * @param integer The increment to reorder by */ function orderFrontPage( $uid, $inc, $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $fp =& JTable::getInstance('frontpage','Table'); $fp->load( $uid ); $fp->move( $inc ); $cache = & JFactory::getCache('com_content'); $cache->clean(); $mainframe->redirect( 'index.php?option='.$option ); } /** * @param integer The id of the article * @param integer The new access level * @param string The URL option */ function accessMenu( $uid, $access ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db = & JFactory::getDBO(); $row =& JTable::getInstance('content'); $row->load( $uid ); $row->access = $access; if ( !$row->check() ) { return $row->getError(); } if ( !$row->store() ) { return $row->getError(); } $cache = & JFactory::getCache('com_content'); $cache->clean(); $mainframe->redirect( 'index.php?option=com_frontpage' ); } function saveOrder( &$cid ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $total = count( $cid ); $order = JRequest::getVar( 'order', array(0), 'post', 'array' ); for( $i=0; $i < $total; $i++ ) { $query = 'UPDATE #__content_frontpage' . ' SET ordering = ' . (int) $order[$i] . ' WHERE content_id = ' . (int) $cid[$i]; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } } $cache = & JFactory::getCache('com_content'); $cache->clean(); $msg = JText::_( 'New ordering saved' ); $mainframe->redirect( 'index.php?option=com_frontpage', $msg ); }elracodelangela/administrator/components/com_frontpage/frontpage.xml0000755000176700017710000000103511061563415027024 0ustar essawireessawire Frontpage Joomla! Project (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 This Component shows all the published Articles from your site marked Show on Front Page. elracodelangela/administrator/components/com_frontpage/index.html0000755000176700017710000000005411061563415026312 0ustar essawireessawireelracodelangela/administrator/components/com_frontpage/tables/0000755000176700017710000000000011061563560025566 5ustar essawireessawireelracodelangela/administrator/components/com_frontpage/tables/index.html0000755000176700017710000000005411061563415027564 0ustar essawireessawireelracodelangela/administrator/components/com_frontpage/tables/frontpage.php0000755000176700017710000000171611061563415030273 0ustar essawireessawireelracodelangela/administrator/components/com_frontpage/views/frontpage.php0000755000176700017710000002230611061563415030154 0ustar essawireessawiregetNullDate(); $config =& JFactory::getConfig(); $now =& JFactory::getDate(); //Ordering allowed ? $ordering = (($lists['order'] == 'fpordering')); JHTML::_('behavior.tooltip'); ?>
:
id ); $publish_up =& JFactory::getDate($row->publish_up); $publish_down =& JFactory::getDate($row->publish_down); $publish_up->setOffset($config->getValue('config.offset')); $publish_down->setOffset($config->getValue('config.offset')); if ( $now->toUnix() <= $publish_up->toUnix() && $row->state == 1 ) { $img = 'publish_y.png'; $alt = JText::_( 'Published' ); } else if ( ( $now->toUnix() <= $publish_down->toUnix() || $row->publish_down == $nullDate ) && $row->state == 1 ) { $img = 'publish_g.png'; $alt = JText::_( 'Published' ); } else if ( $now->toUnix() > $publish_down->toUnix() && $row->state == 1 ) { $img = 'publish_r.png'; $alt = JText::_( 'Expired' ); } else if ( $row->state == 0 ) { $img = 'publish_x.png'; $alt = JText::_( 'Unpublished' ); } else if ( $row->state == -1 ) { $img = 'disabled.png'; $alt = JText::_( 'Archived' ); } $times = ''; if (isset($row->publish_up)) { if ($row->publish_up == $nullDate) { $times .= JText::_( 'Start: Always' ); } else { $times .= JText::_( 'Start' ) .": ". $publish_up->toFormat(); } } if (isset($row->publish_down)) { if ($row->publish_down == $nullDate) { $times .= "
". JText::_( 'Finish: No Expiry' ); } else { $times .= "
". JText::_( 'Finish' ) .": ". $publish_down->toFormat(); } } $access = JHTML::_('grid.access', $row, $i ); $checked = JHTML::_('grid.checkedout', $row, $i ); if ( $user->authorize( 'com_users', 'manage' ) ) { if ( $row->created_by_alias ) { $author = $row->created_by_alias; } else { $linkA = JRoute::_( 'index.php?option=com_users&task=edit&cid[]='. $row->created_by ); $author='' . ''. $row->author .''; } } else { if ( $row->created_by_alias ) { $author = $row->created_by_alias; } else { $author = $row->author; } } // section handling if ($row->sectionid) { $row->sect_link = JRoute::_( 'index.php?option=com_sections&task=edit&cid[]='. $row->sectionid ); $title_sec = JText::_( 'Edit Section' ); } // category handling if ($row->catid) { $row->cat_link = JRoute::_( 'index.php?option=com_categories&task=edit&cid[]='. $row->catid ); $title_cat = JText::_( 'Edit Category' ); } ?> ">
getListFooter(); ?>
getRowOffset( $i ); ?> get ('id'), $row->checked_out ) ) { echo $row->title; } else { ?> title; ?> <?php echo $alt;?> orderUpIcon( $i, true, 'orderup', 'Move Up', $ordering ); ?> orderDownIcon( $i, $n, true, 'orderdown', 'Move Down', $ordering ); ?> class="text_area" style="text-align: center" /> id;?> sectionid) : ?> sect_name; ?> catid) : ?> name; ?>
elracodelangela/administrator/components/com_login/admin.login.php0000755000176700017710000000370711061563423026357 0ustar essawireessawire 'rounded', 'id' => 'section-box')); echo $module; } function login() { global $mainframe; // Check for request forgeries JRequest::checkToken('request') or jexit( 'Invalid Token' ); $credentials = array(); $credentials['username'] = JRequest::getVar('username', '', 'method', 'username'); $credentials['password'] = JRequest::getVar('passwd', '', 'post', 'string', JREQUEST_ALLOWRAW); $result = $mainframe->login($credentials); if (!JError::isError($result)) { $mainframe->redirect('index.php'); } LoginController::display(); } function logout() { global $mainframe; $result = $mainframe->logout(); if (!JError::isError($result)) { $mainframe->redirect('index.php?option=com_login'); } LoginController::display(); } } elracodelangela/administrator/components/com_modules/0000755000176700017710000000000011061563561024000 5ustar essawireessawireelracodelangela/administrator/components/com_modules/toolbar.modules.html.php0000755000176700017710000000441711061563421030571 0ustar essawireessawire[ '. JText::_( 'New' ) .' ]', 'module.png' ); JToolBarHelper::customX( 'edit', 'forward.png', 'forward_f2.png', 'Next', true ); JToolBarHelper::cancel(); if ($client->name == 'site') { JToolBarHelper::help( 'screen.modulessite.edit' ); } else { JToolBarHelper::help( 'screen.modulesadministrator.edit'); } } /** * Draws the menu for Editing an existing module */ function _EDIT( $client ) { $moduleType = JRequest::getCmd( 'module' ); $cid = JRequest::getVar( 'cid', array(0), '', 'array' ); JArrayHelper::toInteger($cid, array(0)); JToolBarHelper::title( JText::_( 'Module' ) . ': [ '. JText::_( 'Edit' ) .' ]', 'module.png' ); if($moduleType == 'custom') { JToolBarHelper::Preview('index.php?option=com_modules&tmpl=component&client='.$client->id.'&pollid='.$cid[0]); } JToolBarHelper::save(); JToolBarHelper::apply(); if ( $cid[0] ) { // for existing items the button is renamed `close` JToolBarHelper::cancel( 'cancel', 'Close' ); } else { JToolBarHelper::cancel(); } JToolBarHelper::help( 'screen.modules.edit' ); } function _DEFAULT($client) { JToolBarHelper::title( JText::_( 'Module Manager' ), 'module.png' ); JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::custom( 'copy', 'copy.png', 'copy_f2.png', 'Copy', true ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); JToolBarHelper::help( 'screen.modules' ); } } elracodelangela/administrator/components/com_modules/modules.xml0000755000176700017710000000100511061563421026164 0ustar essawireessawire Module Manager Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Module Manager elracodelangela/administrator/components/com_modules/toolbar.modules.php0000755000176700017710000000175311061563421027626 0ustar essawireessawireauthorize( 'com_modules', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } // Require the base controller require_once (JPATH_COMPONENT.DS.'controller.php'); // Create the controller $controller = new ModulesController( array( 'default_task' => 'view' )); // Perform the Request task $controller->execute( JRequest::getCmd('task', 'view') ); // Redirect if set by the controller $controller->redirect(); elracodelangela/administrator/components/com_modules/models/0000755000176700017710000000000011061563562025264 5ustar essawireessawireelracodelangela/administrator/components/com_modules/models/module.php0000755000176700017710000001013311061563421027255 0ustar essawireessawiregetTable( 'Module', 'JTable' ); if ($id = $this->getState( 'id' )) { $instance->load( (int) $id ); } } return $instance; } function &_getXML() { if (!$this->_xml) { $clientId = $this->getState( 'clientId', 0 ); $path = ($clientId == 1) ? 'mod1_xml' : 'mod0_xml'; $module = &$this->getModule(); if ($module->module == 'custom') { $xmlpath = JApplicationHelper::getPath( $path, 'mod_custom' ); } else { $xmlpath = JApplicationHelper::getPath( $path, $module->module ); } if (file_exists($xmlpath)) { $xml =& JFactory::getXMLParser('Simple'); if ($xml->loadFile($xmlpath)) { $this->_xml = &$xml; } } } return $this->_xml; } function &getParams() { // Get the state parameters $module =& $this->getModule(); $params = new JParameter($module->params); if ($xml =& $this->_getXML()) { if ($ps = & $xml->document->params) { foreach ($ps as $p) { $params->setXML( $p ); } } } return $params; } function getPositions() { jimport('joomla.filesystem.folder'); $client =& JApplicationHelper::getClientInfo($this->getState('clientId')); if ($client === false) { return false; } //Get the database object $db =& JFactory::getDBO(); // template assignment filter $query = 'SELECT DISTINCT(template) AS text, template AS value'. ' FROM #__templates_menu' . ' WHERE client_id = '.(int) $client->id; $db->setQuery( $query ); $templates = $db->loadObjectList(); // Get a list of all module positions as set in the database $query = 'SELECT DISTINCT(position)'. ' FROM #__modules' . ' WHERE client_id = '.(int) $client->id; $db->setQuery( $query ); $positions = $db->loadResultArray(); $positions = (is_array($positions)) ? $positions : array(); // Get a list of all template xml files for a given application // Get the xml parser first for ($i = 0, $n = count($templates); $i < $n; $i++ ) { $path = $client->path.DS.'templates'.DS.$templates[$i]->value; $xml =& JFactory::getXMLParser('Simple'); if ($xml->loadFile($path.DS.'templateDetails.xml')) { $p =& $xml->document->getElementByPath('positions'); if (is_a($p, 'JSimpleXMLElement') && count($p->children())) { foreach ($p->children() as $child) { if (!in_array($child->data(), $positions)) { $positions[] = $child->data(); } } } } } if(defined('_JLEGACY') && _JLEGACY == '1.0') { $positions[] = 'left'; $positions[] = 'right'; $positions[] = 'top'; $positions[] = 'bottom'; $positions[] = 'inset'; $positions[] = 'banner'; $positions[] = 'header'; $positions[] = 'footer'; $positions[] = 'newsflash'; $positions[] = 'legals'; $positions[] = 'pathway'; $positions[] = 'breadcrumb'; $positions[] = 'user1'; $positions[] = 'user2'; $positions[] = 'user3'; $positions[] = 'user4'; $positions[] = 'user5'; $positions[] = 'user6'; $positions[] = 'user7'; $positions[] = 'user8'; $positions[] = 'user9'; $positions[] = 'advert1'; $positions[] = 'advert2'; $positions[] = 'advert3'; $positions[] = 'debug'; $positions[] = 'syndicate'; } $positions = array_unique($positions); sort($positions); return $positions; } } elracodelangela/administrator/components/com_modules/models/index.html0000755000176700017710000000005411061563421027255 0ustar essawireessawireelracodelangela/administrator/components/com_modules/helpers/0000755000176700017710000000000011061563562025443 5ustar essawireessawireelracodelangela/administrator/components/com_modules/helpers/xml.php0000755000176700017710000000231511061563422026753 0ustar essawireessawire $row) { if ($row->module == '') { $rows[$i]->name = 'custom'; $rows[$i]->module = 'custom'; $rows[$i]->descrip = 'Custom created module, using Module Manager `New` function'; } else { $data = JApplicationHelper::parseXMLInstallFile( $row->path.DS.$row->file); if ( $data['type'] == 'module' ) { $rows[$i]->name = $data['name']; $rows[$i]->descrip = $data['description']; } } } } }elracodelangela/administrator/components/com_modules/helpers/index.html0000755000176700017710000000005411061563422027435 0ustar essawireessawireelracodelangela/administrator/components/com_modules/admin.modules.html.php0000755000176700017710000004721111061563421030216 0ustar essawireessawire
:
id == 0 ) { ?> id .'&task=edit&cid[]='. $row->id ); $access = JHTML::_('grid.access', $row, $i ); $checked = JHTML::_('grid.checkedout', $row, $i ); $published = JHTML::_('grid.published', $row, $i ); ?> "> id == 0 ) { ?>
getListFooter(); ?>
getRowOffset( $i ); ?> get ('id'), $row->checked_out ) ) { echo $row->title; } else { ?> title; ?> orderUpIcon( $i, ($row->position == @$rows[$i-1]->position), 'orderup', 'Move Up', $ordering ); ?> orderDownIcon( $i, $n, ($row->position == @$rows[$i+1]->position),'orderdown', 'Move Down', $ordering ); ?> class="text_area" style="text-align: center" /> position; ?> pages )) { echo JText::_( 'None' ); } else if ($row->pages > 0) { echo JText::_( 'Varies' ); } else { echo JText::_( 'All' ); } ?> module ? $row->module : JText::_( 'User' );?> id;?>
$row is passed with the id * property set to 0. * @param JTableCategory The category object * @param array

The modules of the left side. The array elements are in the form * $leftorder[order] = label * where order is the module order from the db table and label is a * text label associciated with the order.

* @param array See notes for leftorder * @param array An array of select lists * @param object Parameters */ function edit( &$model, &$row, &$orders2, &$lists, &$params, $client ) { JRequest::setVar( 'hidemainmenu', 1 ); // clean item data JFilterOutput::objectHTMLSafe( $row, ENT_QUOTES, 'content' ); // Check for component metadata.xml file //$path = JApplicationHelper::getPath( 'mod'.$client->id.'_xml', $row->module ); //$params = new JParameter( $row->params, $path ); $document =& JFactory::getDocument(); JHTML::_('behavior.combobox'); jimport('joomla.html.pane'); // TODO: allowAllClose should default true in J!1.6, so remove the array when it does. $pane = &JPane::getInstance('sliders', array('allowAllClose' => true)); $editor =& JFactory::getEditor(); JHTML::_('behavior.tooltip'); ?>
: module); ?>
:
:
: id; ?>
: description); ?>
: client_id != 1) : ?> pages == 'all') { ?> pages == 'none') { ?>
:
client_id != 1) : ?> pages == 'all') { ?> pages == 'none') { ?>
startPane("menu-pane"); echo $pane->startPanel(JText :: _('Module Parameters'), "param-page"); $p = $params; if($params = $p->render('params')) : echo $params; else : echo "
".JText::_('There are no parameters for this item')."
"; endif; echo $pane->endPanel(); if ($p->getNumParams('advanced')) { echo $pane->startPanel(JText :: _('Advanced Parameters'), "advanced-page"); if($params = $p->render('params', 'advanced')) : echo $params; else : echo "
".JText::_('There are no advanced parameters for this item')."
"; endif; echo $pane->endPanel(); } if ($p->getNumParams('legacy')) { echo $pane->startPanel(JText :: _('Legacy Parameters'), "legacy-page"); if($params = $p->render('params', 'legacy')) : echo $params; else : echo "
".JText::_('There are no legacy parameters for this item')."
"; endif; echo $pane->endPanel(); } if ($p->getNumParams('other')) { echo $pane->startPanel(JText :: _('Other Parameters'), "other-page"); if($params = $p->render('params', 'other')) : echo $params; else : echo "
".JText::_('There are no other parameters for this item')."
"; endif; echo $pane->endPanel(); } echo $pane->endPane(); ?>
module || $row->module == 'custom' || $row->module == 'mod_custom' ) { ?>
display( 'content', $row->content, '100%', '400', '60', '20', array('pagebreak', 'readmore') ) ; ?>
= $count) : ?> module . '&created=1&client=' . $client->id; ?>
 
  name, ENT_QUOTES, 'UTF-8'); ?>
elracodelangela/administrator/components/com_modules/controller.php0000755000176700017710000006031011061563421026672 0ustar essawireessawireregisterTask( 'apply', 'save' ); $this->registerTask( 'unpublish', 'publish' ); $this->registerTask( 'orderup', 'reorder' ); $this->registerTask( 'orderdown', 'reorder' ); $this->registerTask( 'accesspublic', 'access' ); $this->registerTask( 'accessregistered','access' ); $this->registerTask( 'accessspecial', 'access' ); } /** * Compiles a list of installed or defined modules */ function view() { global $mainframe; // Initialize some variables $db =& JFactory::getDBO(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $option = 'com_modules'; $filter_order = $mainframe->getUserStateFromRequest( $option.'filter_order', 'filter_order', 'm.position', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $option.'filter_order_Dir', 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( $option.'filter_state', 'filter_state', '', 'word' ); $filter_position = $mainframe->getUserStateFromRequest( $option.'filter_position', 'filter_position', '', 'cmd' ); $filter_type = $mainframe->getUserStateFromRequest( $option.'filter_type', 'filter_type', '', 'cmd' ); $filter_assigned = $mainframe->getUserStateFromRequest( $option.'filter_assigned', 'filter_assigned', '', 'cmd' ); $search = $mainframe->getUserStateFromRequest( $option.'search', 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); $where[] = 'm.client_id = '.(int) $client->id; $joins[] = 'LEFT JOIN #__users AS u ON u.id = m.checked_out'; $joins[] = 'LEFT JOIN #__groups AS g ON g.id = m.access'; $joins[] = 'LEFT JOIN #__modules_menu AS mm ON mm.moduleid = m.id'; // used by filter if ( $filter_assigned ) { $joins[] = 'LEFT JOIN #__templates_menu AS t ON t.menuid = mm.menuid'; $where[] = 't.template = '.$db->Quote($filter_assigned); } if ( $filter_position ) { $where[] = 'm.position = '.$db->Quote($filter_position); } if ( $filter_type ) { $where[] = 'm.module = '.$db->Quote($filter_type); } if ( $search ) { $where[] = 'LOWER( m.title ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'm.published = 1'; } else if ($filter_state == 'U' ) { $where[] = 'm.published = 0'; } } $where = ' WHERE ' . implode( ' AND ', $where ); $join = ' ' . implode( ' ', $joins ); $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', m.ordering ASC'; // get the total number of records $query = 'SELECT COUNT(DISTINCT m.id)' . ' FROM #__modules AS m' . $join . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); $query = 'SELECT m.*, u.name AS editor, g.name AS groupname, MIN(mm.menuid) AS pages' . ' FROM #__modules AS m' . $join . $where . ' GROUP BY m.id' . $orderby ; $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } // get list of Positions for dropdown filter $query = 'SELECT m.position AS value, m.position AS text' . ' FROM #__modules as m' . ' WHERE m.client_id = '.(int) $client->id . ' GROUP BY m.position' . ' ORDER BY m.position' ; $positions[] = JHTML::_('select.option', '0', '- '. JText::_( 'Select Position' ) .' -' ); $db->setQuery( $query ); $positions = array_merge( $positions, $db->loadObjectList() ); $lists['position'] = JHTML::_('select.genericlist', $positions, 'filter_position', 'class="inputbox" size="1" onchange="this.form.submit()"', 'value', 'text', "$filter_position" ); // get list of Positions for dropdown filter $query = 'SELECT module AS value, module AS text' . ' FROM #__modules' . ' WHERE client_id = '.(int) $client->id . ' GROUP BY module' . ' ORDER BY module' ; $db->setQuery( $query ); $types[] = JHTML::_('select.option', '0', '- '. JText::_( 'Select Type' ) .' -' ); $types = array_merge( $types, $db->loadObjectList() ); $lists['type'] = JHTML::_('select.genericlist', $types, 'filter_type', 'class="inputbox" size="1" onchange="this.form.submit()"', 'value', 'text', "$filter_type" ); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // template assignment filter $query = 'SELECT DISTINCT(template) AS text, template AS value'. ' FROM #__templates_menu' . ' WHERE client_id = '.(int) $client->id; $db->setQuery( $query ); $assigned[] = JHTML::_('select.option', '0', '- '. JText::_( 'Select Template' ) .' -' ); $assigned = array_merge( $assigned, $db->loadObjectList() ); $lists['assigned'] = JHTML::_('select.genericlist', $assigned, 'filter_assigned', 'class="inputbox" size="1" onchange="this.form.submit()"', 'value', 'text', "$filter_assigned" ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; require_once( JApplicationHelper::getPath( 'admin_html' ) ); HTML_modules::view( $rows, $client, $pageNav, $lists ); } /** * Compiles information to add or edit a module * @param string The current GET/POST option * @param integer The unique id of the record to edit */ function copy() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $db =& JFactory::getDBO(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $this->setRedirect( 'index.php?option=com_modules&client='.$client->id ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $n = count( $cid ); if ($n == 0) { return JError::raiseWarning( 500, JText::_( 'No items selected' ) ); } $row =& JTable::getInstance('module'); $tuples = array(); foreach ($cid as $id) { // load the row from the db table $row->load( (int) $id ); $row->title = JText::sprintf( 'Copy of', $row->title ); $row->id = 0; $row->iscore = 0; $row->published = 0; if (!$row->check()) { return JError::raiseWarning( 500, $row->getError() ); } if (!$row->store()) { return JError::raiseWarning( 500, $row->getError() ); } $row->checkin(); $row->reorder( 'position='.$db->Quote( $row->position ).' AND client_id='.(int) $client->id ); $query = 'SELECT menuid' . ' FROM #__modules_menu' . ' WHERE moduleid = '.(int) $cid[0] ; $db->setQuery( $query ); $rows = $db->loadResultArray(); foreach ($rows as $menuid) { $tuples[] = '('.(int) $row->id.','.(int) $menuid.')'; } } if (!empty( $tuples )) { // Module-Menu Mapping: Do it in one query $query = 'INSERT INTO #__modules_menu (moduleid,menuid) VALUES '.implode( ',', $tuples ); $db->setQuery( $query ); if (!$db->query()) { return JError::raiseWarning( 500, $db->getError() ); } } $msg = JText::sprintf( 'Items Copied', $n ); $this->setRedirect( 'index.php?option=com_modules&client='. $client->id, $msg ); } /** * Saves the module after an edit form submit */ function save() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); global $mainframe; $cache = & JFactory::getCache(); $cache->clean( 'com_content' ); // Initialize some variables $db =& JFactory::getDBO(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $this->setRedirect( 'index.php?option=com_modules&client='.$client->id ); $post = JRequest::get( 'post' ); // fix up special html fields $post['content'] = JRequest::getVar( 'content', '', 'post', 'string', JREQUEST_ALLOWRAW ); $post['client_id'] = $client->id; $row =& JTable::getInstance('module'); if (!$row->bind( $post, 'selections' )) { return JError::raiseWarning( 500, $row->getError() ); } if (!$row->check()) { return JError::raiseWarning( 500, $row->getError() ); } // if new item, order last in appropriate group if (!$row->id) { $where = 'position='.$db->Quote( $row->position ).' AND client_id='.(int) $client->id ; $row->ordering = $row->getNextOrder( $where ); } if (!$row->store()) { return JError::raiseWarning( 500, $row->getError() ); } $row->checkin(); $menus = JRequest::getVar( 'menus', '', 'post', 'word' ); $selections = JRequest::getVar( 'selections', array(), 'post', 'array' ); JArrayHelper::toInteger($selections); // delete old module to menu item associations $query = 'DELETE FROM #__modules_menu' . ' WHERE moduleid = '.(int) $row->id ; $db->setQuery( $query ); if (!$db->query()) { return JError::raiseWarning( 500, $db->getError() ); } // check needed to stop a module being assigned to `All` // and other menu items resulting in a module being displayed twice if ( $menus == 'all' ) { // assign new module to `all` menu item associations $query = 'INSERT INTO #__modules_menu' . ' SET moduleid = '.(int) $row->id.' , menuid = 0' ; $db->setQuery( $query ); if (!$db->query()) { return JError::raiseWarning( 500, $db->getError() ); } } else { foreach ($selections as $menuid) { // this check for the blank spaces in the select box that have been added for cosmetic reasons if ( (int) $menuid >= 0 ) { // assign new module to menu item associations $query = 'INSERT INTO #__modules_menu' . ' SET moduleid = '.(int) $row->id .', menuid = '.(int) $menuid ; $db->setQuery( $query ); if (!$db->query()) { return JError::raiseWarning( 500, $db->getError() ); } } } } $this->setMessage( JText::_( 'Item saved' ) ); switch ($this->getTask()) { case 'apply': $this->setRedirect( 'index.php?option=com_modules&client='. $client->id .'&task=edit&id='. $row->id ); break; } } /** * Compiles information to add or edit a module * @param string The current GET/POST option * @param integer The unique id of the record to edit */ function edit( ) { // Initialize some variables $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $module = JRequest::getVar( 'module', '', '', 'cmd' ); $id = JRequest::getVar( 'id', 0, 'method', 'int' ); $cid = JRequest::getVar( 'cid', array( $id ), 'method', 'array' ); JArrayHelper::toInteger($cid, array(0)); $model = &$this->getModel('module'); $model->setState( 'id', $cid[0] ); $model->setState( 'clientId', $client->id ); $lists = array(); $row =& JTable::getInstance('module'); // load the row from the db table $row->load( (int) $cid[0] ); // fail if checked out not by 'me' if ($row->isCheckedOut( $user->get('id') )) { $this->setRedirect( 'index.php?option=com_modules&client='.$client->id ); return JError::raiseWarning( 500, JText::sprintf( 'DESCBEINGEDITTED', JText::_( 'The module' ), $row->title ) ); } $row->content = htmlspecialchars( str_replace( '&', '&', $row->content ), ENT_COMPAT, 'UTF-8' ); if ( $cid[0] ) { $row->checkout( $user->get('id') ); } // if a new record we must still prime the JTableModel object with a default // position and the order; also add an extra item to the order list to // place the 'new' record in last position if desired if ($cid[0] == 0) { $row->position = 'left'; $row->showtitle = true; $row->published = 1; //$row->ordering = $l; $row->module = $module; } if ($client->id == 1) { $where = 'client_id = 1'; $lists['client_id'] = 1; $path = 'mod1_xml'; } else { $where = 'client_id = 0'; $lists['client_id'] = 0; $path = 'mod0_xml'; } $query = 'SELECT position, ordering, showtitle, title' . ' FROM #__modules' . ' WHERE '. $where . ' ORDER BY ordering' ; $db->setQuery( $query ); if ( !($orders = $db->loadObjectList()) ) { echo $db->stderr(); return false; } $orders2 = array(); $l = 0; $r = 0; for ($i=0, $n=count( $orders ); $i < $n; $i++) { $ord = 0; if (array_key_exists( $orders[$i]->position, $orders2 )) { $ord =count( array_keys( $orders2[$orders[$i]->position] ) ) + 1; } $orders2[$orders[$i]->position][] = JHTML::_('select.option', $ord, $ord.'::'.addslashes( $orders[$i]->title ) ); } // get selected pages for $lists['selections'] if ( $cid[0] ) { $query = 'SELECT menuid AS value' . ' FROM #__modules_menu' . ' WHERE moduleid = '.(int) $row->id ; $db->setQuery( $query ); $lookup = $db->loadObjectList(); if (empty( $lookup )) { $lookup = array( JHTML::_('select.option', '-1' ) ); $row->pages = 'none'; } elseif (count($lookup) == 1 && $lookup[0]->value == 0) { $row->pages = 'all'; } else { $row->pages = null; } } else { $lookup = array( JHTML::_('select.option', 0, JText::_( 'All' ) ) ); $row->pages = 'all'; } if ( $row->access == 99 || $row->client_id == 1 || $lists['client_id'] ) { $lists['access'] = 'Administrator'; $lists['showtitle'] = 'N/A '; $lists['selections'] = 'N/A'; } else { if ( $client->id == '1' ) { $lists['access'] = 'N/A'; $lists['selections'] = 'N/A'; } else { $lists['access'] = JHTML::_('list.accesslevel', $row ); $selections = JHTML::_('menu.linkoptions'); $lists['selections'] = JHTML::_('select.genericlist', $selections, 'selections[]', 'class="inputbox" size="15" multiple="multiple"', 'value', 'text', $lookup, 'selections' ); } $lists['showtitle'] = JHTML::_('select.booleanlist', 'showtitle', 'class="inputbox"', $row->showtitle ); } // build the html select list for published $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published ); $row->description = ''; $lang =& JFactory::getLanguage(); if ( $client->id != '1' ) { $lang->load( trim($row->module), JPATH_SITE ); } else { $lang->load( trim($row->module) ); } // xml file for module if ($row->module == 'custom') { $xmlfile = JApplicationHelper::getPath( $path, 'mod_custom' ); } else { $xmlfile = JApplicationHelper::getPath( $path, $row->module ); } $data = JApplicationHelper::parseXMLInstallFile($xmlfile); if ($data) { foreach($data as $key => $value) { $row->$key = $value; } } // get params definitions $params = new JParameter( $row->params, $xmlfile, 'module' ); require_once( JApplicationHelper::getPath( 'admin_html' ) ); HTML_modules::edit( $model, $row, $orders2, $lists, $params, $client ); } /** * Displays a list to select the creation of a new module */ function add() { global $mainframe; // Initialize some variables $modules = array(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); // path to search for modules if ($client->id == '1') { $path = JPATH_ADMINISTRATOR.DS.'modules'; $langbase = JPATH_ADMINISTRATOR; } else { $path = JPATH_ROOT.DS.'modules'; $langbase = JPATH_ROOT; } jimport('joomla.filesystem.folder'); $dirs = JFolder::folders( $path ); $lang =& JFactory::getLanguage(); foreach ($dirs as $dir) { if (substr( $dir, 0, 4 ) == 'mod_') { $files = JFolder::files( $path.DS.$dir, '^([_A-Za-z0-9]*)\.xml$' ); $module = new stdClass; $module->file = $files[0]; $module->module = str_replace( '.xml', '', $files[0] ); $module->path = $path.DS.$dir; $modules[] = $module; $lang->load( $module->module, $langbase ); } } require_once( JPATH_COMPONENT.DS.'helpers'.DS.'xml.php' ); ModulesHelperXML::parseXMLModuleFile( $modules, $client ); $n = count($modules); for ($i = 0; $i < $n; $i++) { $modules[$i]->name = JText::_(stripslashes($modules[$i]->name)); } // sort array of objects alphabetically by name JArrayHelper::sortObjects( $modules, 'name' ); require_once( JApplicationHelper::getPath( 'admin_html' ) ); HTML_modules::add( $modules, $client ); } /** * Deletes one or more modules * * Also deletes associated entries in the #__module_menu table. * @param array An array of unique category id numbers */ function remove() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $db =& JFactory::getDBO(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $this->setRedirect( 'index.php?option=com_modules&client='.$client->id ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger( $cid ); if (empty( $cid )) { return JError::raiseWarning( 500, 'No items selected' ); } $cids = implode( ',', $cid ); // pasamio: Disabled this as it breaks the uninstall ability! /*$query = 'SELECT id, module, title, iscore, params' . ' FROM #__modules WHERE id IN ('.$cids.')' ; $db->setQuery( $query ); if (!($rows = $db->loadObjectList())) { return JError::raiseError( 500, $db->getErrorMsg() ); }*/ // remove mappings first (lest we leave orphans) $query = 'DELETE FROM #__modules_menu' . ' WHERE moduleid IN ( '.$cids.' )' ; $db->setQuery( $query ); if (!$db->query()) { return JError::raiseError( 500, $db->getErrorMsg() ); } // remove module $query = 'DELETE FROM #__modules' . ' WHERE id IN ('.$cids.')' ; $db->setQuery( $query ); if (!$db->query()) { return JError::raiseError( 500, $db->getErrorMsg() ); } $this->setMessage( JText::sprintf( 'Items removed', count( $cid ) ) ); } /** * Publishes or Unpublishes one or more modules */ function publish() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $this->setRedirect( 'index.php?option=com_modules&client='.$client->id ); $cache = & JFactory::getCache(); $cache->clean( 'com_content' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $task = $this->getTask(); $publish = ($task == 'publish'); if (empty( $cid )) { return JError::raiseWarning( 500, 'No items selected' ); } $cids = implode( ',', $cid ); $query = 'UPDATE #__modules' . ' SET published = ' . intval( $publish ) . ' WHERE id IN ( '.$cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id').' ) )' ; $db->setQuery( $query ); if (!$db->query()) { return JError::raiseWarning( 500, $db->getErrorMsg() ); } if (count( $cid ) == 1) { $row =& JTable::getInstance('module'); $row->checkin( $cid[0] ); } } /** * Cancels an edit operation */ function cancel() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $db =& JFactory::getDBO(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $this->setRedirect( 'index.php?option=com_modules&client='.$client->id ); $row =& JTable::getInstance('module'); // ignore array elements $row->bind(JRequest::get('post'), 'selections params' ); $row->checkin(); } /** * Moves the order of a record */ function reorder() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $db =& JFactory::getDBO(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $this->setRedirect( 'index.php?option=com_modules&client='.$client->id ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $task = $this->getTask(); $inc = ($task == 'orderup' ? -1 : 1); if (empty( $cid )) { return JError::raiseWarning( 500, 'No items selected' ); } $row =& JTable::getInstance('module'); $row->load( (int) $cid[0] ); $row->move( $inc, 'position = '.$db->Quote( $row->position ).' AND client_id='.(int) $client->id ); } /** * Changes the access level of a record */ function access() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $db =& JFactory::getDBO(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $this->setRedirect( 'index.php?option=com_modules&client='.$client->id ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $task = JRequest::getCmd( 'task' ); if (empty( $cid )) { return JError::raiseWarning( 500, 'No items selected' ); } switch ( $task ) { case 'accesspublic': $access = 0; break; case 'accessregistered': $access = 1; break; case 'accessspecial': $access = 2; break; } $row =& JTable::getInstance('module'); $row->load( (int) $cid[0] ); $row->access = $access; if ( !$row->check() ) { JError::raiseWarning( 500, $row->getError() ); } if ( !$row->store() ) { JError::raiseWarning( 500, $row->getError() ); } } /** * Saves the orders of the supplied list */ function saveOrder() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $db =& JFactory::getDBO(); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $this->setRedirect( 'index.php?option=com_modules&client='.$client->id ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); if (empty( $cid )) { return JError::raiseWarning( 500, 'No items selected' ); } $total = count( $cid ); $row =& JTable::getInstance('module'); $groupings = array(); $order = JRequest::getVar( 'order', array(0), 'post', 'array' ); JArrayHelper::toInteger($order); // update ordering values for ($i = 0; $i < $total; $i++) { $row->load( (int) $cid[$i] ); // track postions $groupings[] = $row->position; if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { return JError::raiseWarning( 500, $db->getErrorMsg() ); } } } // execute updateOrder for each parent group $groupings = array_unique( $groupings ); foreach ($groupings as $group){ $row->reorder('position = '.$db->Quote($group).' AND client_id = '.(int) $client->id); } $this->setMessage (JText::_( 'New ordering saved' )); } function preview() { $document =& JFactory::getDocument(); $document->setTitle(JText::_('Module Preview')); require_once( JApplicationHelper::getPath( 'admin_html' ) ); HTML_modules::preview( ); } } elracodelangela/administrator/components/com_categories/0000755000176700017710000000000011061563562024456 5ustar essawireessawireelracodelangela/administrator/components/com_categories/toolbar.categories.html.php0000755000176700017710000000546311061563424031730 0ustar essawireessawire[ '. $text.' ]', 'categories.png' ); JToolBarHelper::save(); JToolBarHelper::apply(); if ($edit) { // for existing articles the button is renamed `close` JToolBarHelper::cancel( 'cancel', 'Close' ); } else { JToolBarHelper::cancel(); } JToolBarHelper::help( 'screen.' . substr( $section, 4 ) . '.categories.edit' ); } /** * Draws the menu for Moving existing categories * @param int The published state (to display the inverse button) */ function _MOVE() { JToolBarHelper::title( JText::_( 'Category' ) .': [ '. JText::_( 'Move' ).' ]', 'categories.png' ); JToolBarHelper::save( 'movesave' ); JToolBarHelper::cancel(); } /** * Draws the menu for Copying existing categories * @param int The published state (to display the inverse button) */ function _COPY() { JToolBarHelper::title( JText::_( 'Category' ) .': [ '. JText::_( 'Copy' ).' ]', 'categories.png' ); JToolBarHelper::save( 'copysave' ); JToolBarHelper::cancel(); } /** * Draws the menu for Editing an existing category */ function _DEFAULT() { $section = JRequest::getCmd( 'section' ); JToolBarHelper::title( JText::_( 'Category Manager' ) .': [ '. JText::_(JString::substr($section, 4)).' ]', 'categories.png' ); JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); if ( $section == 'com_content' || ( $section > 0 ) ) { JToolBarHelper::customX( 'moveselect', 'move.png', 'move_f2.png', 'Move', true ); JToolBarHelper::customX( 'copyselect', 'copy.png', 'copy_f2.png', 'Copy', true ); } JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); JToolBarHelper::help( 'screen.' . substr( $section, 4 ) . '.categories' ); } }elracodelangela/administrator/components/com_categories/admin.categories.html.php0000755000176700017710000004102611061563424031351 0ustar essawireessawire
:
sect_link = JRoute::_( 'index.php?option=com_sections&task=edit&cid[]='. $row->section ); $link = 'index.php?option=com_categories§ion='. $section .'&task=edit&cid[]='. $row->id .'&type='.$type; $access = JHTML::_('grid.access', $row, $i ); $checked = JHTML::_('grid.checkedout', $row, $i ); $published = JHTML::_('grid.published', $row, $i ); ?> ">
getListFooter(); ?>
getRowOffset( $i ); ?> get ('id'), $row->checked_out ) ) { echo $row->title; } else { ?> title; ?> orderUpIcon( $i, ($row->section == @$rows[$i-1]->section), 'orderup', 'Move Up', $ordering ); ?> orderDownIcon( $i, $n, ($row->section == @$rows[$i+1]->section), 'orderdown', 'Move Down', $ordering ); ?> class="text_area" style="text-align: center" /> section_name; ?> active; ?> trash; ?> id; ?>
image == '') { $row->image = 'blank.png'; } if ( $redirect == 'content' ) { $component = 'Content'; } else { $component = ucfirst( substr( $redirect, 4 ) ); if ( $redirect == 'com_contact_details' ) { $component = 'Contact'; } } JFilterOutput::objectHTMLSafe( $row, ENT_QUOTES, 'description' ); $cparams = JComponentHelper::getParams ('com_media'); ?>
:
 
display( 'description', htmlspecialchars($row->description, ENT_QUOTES), '550', '300', '60', '20', array('pagebreak', 'readmore') ) ; ?>

.
:


:
"; foreach ( $items as $item ) { echo "
  • ". $item->title ."
  • "; } echo ""; ?>
    :
    "; foreach ( $contents as $content ) { echo "
  • ". $content->title ."
  • "; } echo ""; ?>


    .


    "; } ?>

    .
    :


    :
    "; foreach ( $items as $item ) { echo "
  • ". $item->title ."
  • "; } echo ""; ?>
    :
    "; foreach ( $contents as $content ) { echo "
  • ". $content->title ."
  • "; echo "\n id\" />"; } echo ""; ?>



    .


    "; } ?>
    elracodelangela/administrator/components/com_categories/admin.categories.php0000755000176700017710000006526411061563424030420 0ustar essawireessawiregetUserStateFromRequest( $option.'.filter_order', 'filter_order', 'c.ordering', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $option.'.filter_order_Dir', 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( $option.'.'.$section.'.filter_state', 'filter_state', '', 'word' ); $sectionid = $mainframe->getUserStateFromRequest( $option.'.'.$section.'.sectionid', 'sectionid', 0, 'int' ); $search = $mainframe->getUserStateFromRequest( $option.'.search', 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); $section_name = ''; $content_add = ''; $content_join = ''; $order = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', c.ordering'; if (intval( $section ) > 0) { $table = 'content'; $query = 'SELECT title' . ' FROM #__sections' . ' WHERE id = '.(int) $section; $db->setQuery( $query ); $section_name = $db->loadResult(); $section_name = JText::sprintf( 'Content:', JText::_( $section_name ) ); $where = ' WHERE c.section = '.$db->Quote($section); $type = 'content'; } else if (strpos( $section, 'com_' ) === 0) { $table = substr( $section, 4 ); $query = 'SELECT name' . ' FROM #__components' . ' WHERE link = '.$db->Quote('option='.$section); ; $db->setQuery( $query ); $section_name = $db->loadResult(); $where = ' WHERE c.section = '.$db->Quote($section); $type = 'other'; // special handling for contact component if ( $section == 'com_contact_details' ) { $section_name = JText::_( 'Contact' ); } $section_name = JText::sprintf( 'Component:', $section_name ); } else { $table = $section; $where = ' WHERE c.section = '.$db->Quote($section); $type = 'other'; } // get the total number of records $query = 'SELECT COUNT(*)' . ' FROM #__categories' ; if ($section == 'com_content') { if($sectionid > 0) { $query .= ' WHERE section = '.(int) $sectionid; } else { $query .= ' WHERE section > 0'; } } else { $query .= ' WHERE section = '.$db->quote($section); } if ( $filter_state ) { if ( $filter_state == 'P' ) { $query .= ' AND published = 1'; } else if ($filter_state == 'U' ) { $query .= ' AND published = 0'; } } $db->setQuery( $query ); $total = $db->loadResult(); // allows for viweing of all content categories if ( $section == 'com_content' ) { $table = 'content'; $content_add = ' , z.title AS section_name'; $content_join = ' LEFT JOIN #__sections AS z ON z.id = c.section'; $where = ' WHERE c.section NOT LIKE "%com_%"'; if ($filter_order == 'c.ordering'){ $order = ' ORDER BY z.title, c.ordering'; } else { $order = ' ORDER BY '.$filter_order.' '. $filter_order_Dir.', z.title, c.ordering'; } $section_name = JText::_( 'All Content:' ); $type = 'content'; } // used by filter if ( $sectionid > 0 ) { $filter = ' AND c.section = '.$db->Quote($sectionid); } else { $filter = ''; } if ( $filter_state ) { if ( $filter_state == 'P' ) { $filter .= ' AND c.published = 1'; } else if ($filter_state == 'U' ) { $filter .= ' AND c.published = 0'; } } if ($search) { $filter .= ' AND LOWER(c.title) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); $tablesAllowed = $db->getTableList(); if (!in_array($db->getPrefix().$table, $tablesAllowed)) { $table = 'content'; } $query = 'SELECT c.*, c.checked_out as checked_out_contact_category, g.name AS groupname, u.name AS editor, COUNT( DISTINCT s2.checked_out ) AS checked_out_count' . $content_add . ' FROM #__categories AS c' . ' LEFT JOIN #__users AS u ON u.id = c.checked_out' . ' LEFT JOIN #__groups AS g ON g.id = c.access' . ' LEFT JOIN #__'.$table.' AS s2 ON s2.catid = c.id AND s2.checked_out > 0' . $content_join . $where . $filter . ' AND c.published != -2' . ' GROUP BY c.id' . $order ; $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return; } $count = count( $rows ); // number of Active Items for ( $i = 0; $i < $count; $i++ ) { $query = 'SELECT COUNT( a.id )' . ' FROM #__content AS a' . ' WHERE a.catid = '. (int) $rows[$i]->id . ' AND a.state <> -2' ; $db->setQuery( $query ); $active = $db->loadResult(); $rows[$i]->active = $active; } // number of Trashed Items for ( $i = 0; $i < $count; $i++ ) { $query = 'SELECT COUNT( a.id )' . ' FROM #__content AS a' . ' WHERE a.catid = '. (int) $rows[$i]->id . ' AND a.state = -2' ; $db->setQuery( $query ); $trash = $db->loadResult(); $rows[$i]->trash = $trash; } // get list of sections for dropdown filter $javascript = 'onchange="document.adminForm.submit();"'; $lists['sectionid'] = JHTML::_('list.section', 'sectionid', $sectionid, $javascript, 'ordering', false ); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; categories_html::show( $rows, $section, $section_name, $pageNav, $lists, $type ); } /** * Compiles information to add or edit a category * @param string The name of the category section * @param integer The unique id of the category to edit (0 if new) * @param string The name of the current user */ function editCategory($edit ) { global $mainframe; // Initialize variables $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $uid = $user->get('id'); $type = JRequest::getCmd( 'type' ); $redirect = JRequest::getCmd( 'section', 'com_content' ); $section = JRequest::getCmd( 'section', 'com_content' ); $cid = JRequest::getVar( 'cid', array(0), '', 'array' ); JArrayHelper::toInteger($cid, array(0)); // check for existance of any sections $query = 'SELECT COUNT( id )' . ' FROM #__sections' . ' WHERE scope = "content"' ; $db->setQuery( $query ); $sections = $db->loadResult(); if (!$sections && $type != 'other' && $section != 'com_weblinks' && $section != 'com_newsfeeds' && $section != 'com_contact_details' && $section != 'com_banner') { $mainframe->redirect( 'index.php?option=com_categories§ion='. $section, JText::_( 'WARNSECTION', true ) ); } $row =& JTable::getInstance('category'); // load the row from the db table if ($edit) $row->load( $cid[0] ); // fail if checked out not by 'me' if ( JTable::isCheckedOut($user->get ('id'), $row->checked_out )) { $msg = JText::sprintf( 'DESCBEINGEDITTED', JText::_( 'The category' ), $row->title ); $mainframe->redirect( 'index.php?option=com_categories§ion='. $row->section, $msg ); } if ( $edit ) { $row->checkout( $user->get('id')); } else { $row->published = 1; } // make order list $order = array(); $query = 'SELECT COUNT(*)' . ' FROM #__categories' . ' WHERE section = '.$db->Quote($row->section) ; $db->setQuery( $query ); $max = intval( $db->loadResult() ) + 1; for ($i=1; $i < $max; $i++) { $order[] = JHTML::_('select.option', $i ); } // build the html select list for sections if ( $section == 'com_content' ) { if (!$row->section && JRequest::getInt('sectionid')) { $row->section = JRequest::getInt('sectionid'); } $query = 'SELECT s.id AS value, s.title AS text' . ' FROM #__sections AS s' . ' ORDER BY s.ordering' ; $db->setQuery( $query ); $sections = $db->loadObjectList(); $lists['section'] = JHTML::_('select.genericlist', $sections, 'section', 'class="inputbox" size="1"', 'value', 'text', $row->section ); } else { if ( $type == 'other' ) { $section_name = JText::_( 'N/A' ); } else { $temp =& JTable::getInstance('section'); $temp->load( $row->section ); $section_name = $temp->name; } if(!$section_name) $section_name = JText::_( 'N/A' ); $row->section = $section; $lists['section'] = ''. $section_name; } // build the html select list for ordering $query = 'SELECT ordering AS value, title AS text' . ' FROM #__categories' . ' WHERE section = '.$db->Quote($row->section) . ' ORDER BY ordering' ; if ($edit) { $lists['ordering'] = JHTML::_('list.specificordering', $row, $cid[0], $query ); } else { $lists['ordering'] = JHTML::_('list.specificordering', $row, '', $query ); } // build the select list for the image positions $active = ( $row->image_position ? $row->image_position : 'left' ); $lists['image_position'] = JHTML::_('list.positions', 'image_position', $active, NULL, 0, 0 ); // Imagelist $lists['image'] = JHTML::_('list.images', 'image', $row->image ); // build the html select list for the group access $lists['access'] = JHTML::_('list.accesslevel', $row ); // build the html radio buttons for published $published = ($row->id) ? $row->published : 1; $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $published ); categories_html::edit( $row, $lists, $redirect ); } /** * Saves the catefory after an edit form submit * @param string The name of the category section */ function saveCategory() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $menu = JRequest::getCmd( 'menu', 'mainmenu', 'post' ); $menuid = JRequest::getVar( 'menuid', 0, 'post', 'int' ); $redirect = JRequest::getCmd( 'redirect', '', 'post' ); $oldtitle = JRequest::getString( 'oldtitle', '', 'post' ); $post = JRequest::get( 'post' ); // fix up special html fields $post['description'] = JRequest::getVar( 'description', '', 'post', 'string', JREQUEST_ALLOWRAW ); $row =& JTable::getInstance('category'); if (!$row->bind( $post )) { JError::raiseError(500, $row->getError() ); } if (!$row->check()) { JError::raiseError(500, $row->getError() ); } // if new item order last in appropriate group if (!$row->id) { $where = "section = " . $db->Quote($row->section); $row->ordering = $row->getNextOrder( $where ); } if (!$row->store()) { JError::raiseError(500, $row->getError() ); } $row->checkin(); if ($row->section > 0) { $query = 'UPDATE #__content' .' SET sectionid = '.$row->section .' WHERE catid = '.$row->id ; $db->setQuery( $query ); $db->query(); } if ( $oldtitle ) { if ($oldtitle != $row->title) { $query = 'UPDATE #__menu' . ' SET name = '.$db->Quote($row->title) . ' WHERE name = '.$db->Quote($oldtitle) . ' AND type = "content_category"' ; $db->setQuery( $query ); $db->query(); } } // Update Section Count if ($row->section != 'com_contact_details' && $row->section != 'com_newsfeeds' && $row->section != 'com_weblinks') { $query = 'UPDATE #__sections SET count=count+1' . ' WHERE id = '.$db->Quote($row->section) ; $db->setQuery( $query ); } if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } switch ( JRequest::getCmd('task') ) { case 'go2menu': $mainframe->redirect( 'index.php?option=com_menus&menutype='. $menu ); break; case 'go2menuitem': $mainframe->redirect( 'index.php?option=com_menus&menutype='. $menu .'&task=edit&id='. $menuid ); break; case 'apply': $msg = JText::_( 'Changes to Category saved' ); $mainframe->redirect( 'index.php?option=com_categories§ion='. $redirect .'&task=edit&cid[]='. $row->id, $msg ); break; case 'save': default: $msg = JText::_( 'Category saved' ); $mainframe->redirect( 'index.php?option=com_categories§ion='. $redirect, $msg ); break; } } /** * Deletes one or more categories from the categories table * @param string The name of the category section * @param array An array of unique category id numbers */ function removeCategories( $section, $cid ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select a category to delete', true )); } $cids = implode( ',', $cid ); if (intval( $section ) > 0) { $table = 'content'; } else if (strpos( $section, 'com_' ) === 0) { $table = substr( $section, 4 ); } else { $table = $section; } $tablesAllowed = $db->getTableList(); if (!in_array($db->getPrefix().$table, $tablesAllowed)) { $table = 'content'; } $query = 'SELECT c.id, c.name, c.title, COUNT( s.catid ) AS numcat' . ' FROM #__categories AS c' . ' LEFT JOIN #__'.$table.' AS s ON s.catid = c.id' . ' WHERE c.id IN ( '.$cids.' )' . ' GROUP BY c.id' ; $db->setQuery( $query ); if (!($rows = $db->loadObjectList())) { JError::raiseError( 500, $db->stderr() ); return false; } $err = array(); $cid = array(); foreach ($rows as $row) { if ($row->numcat == 0) { $cid[] = (int) $row->id; } else { $err[] = $row->title; } } if (count( $cid )) { $cids = implode( ',', $cid ); $query = 'DELETE FROM #__categories' . ' WHERE id IN ( '.$cids.' )' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError( 500, $db->stderr() ); return false; } } if (count( $err )) { $cids = implode( ", ", $err ); $msg = JText::sprintf( 'WARNNOTREMOVEDRECORDS', $cids ); $mainframe->redirect( 'index.php?option=com_categories§ion='. $section, $msg ); } $mainframe->redirect( 'index.php?option=com_categories§ion='. $section ); } /** * Publishes or Unpublishes one or more categories * @param string The name of the category section * @param integer A unique category id (passed from an edit form) * @param array An array of unique category id numbers * @param integer 0 if unpublishing, 1 if publishing * @param string The name of the current user */ function publishCategories( $section, $cid=null, $publish=1 ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $uid = $user->get('id'); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { $action = $publish ? 'publish' : 'unpublish'; JError::raiseError(500, JText::_( 'Select a category to '.$action, true ) ); } $cids = implode( ',', $cid ); $query = 'UPDATE #__categories' . ' SET published = ' . (int) $publish . ' WHERE id IN ( '.$cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $uid.' ) )' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } if (count( $cid ) == 1) { $row =& JTable::getInstance('category'); $row->checkin( $cid[0] ); } $mainframe->redirect( 'index.php?option=com_categories§ion='. $section ); } /** * Cancels an edit operation * @param string The name of the category section * @param integer A unique category id */ function cancelCategory() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $redirect = JRequest::getCmd( 'redirect', '', 'post' ); $row =& JTable::getInstance('category'); $row->bind( JRequest::get( 'post' )); $row->checkin(); $mainframe->redirect( 'index.php?option=com_categories§ion='. $redirect ); } /** * Moves the order of a record * @param integer The increment to reorder by */ function orderCategory( $uid, $inc ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $row =& JTable::getInstance('category' ); $row->load( $uid ); $row->move( $inc, 'section = '.$db->Quote($row->section) ); $section = JRequest::getCmd('section'); if($section) { $section = '§ion='. $section; } $mainframe->redirect( 'index.php?option=com_categories'. $section ); } /** * Form for moving item(s) to a specific menu */ function moveCategorySelect( $option, $cid, $sectionOld ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $redirect = JRequest::getCmd( 'section', 'com_content', 'post' ); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select an item to move', true )); } ## query to list selected categories $cids = implode( ',', $cid ); $query = 'SELECT a.title, a.section' . ' FROM #__categories AS a' . ' WHERE a.id IN ( '.$cids.' )' ; $db->setQuery( $query ); $items = $db->loadObjectList(); ## query to list items from categories $query = 'SELECT a.title' . ' FROM #__content AS a' . ' WHERE a.catid IN ( '.$cids.' )' . ' ORDER BY a.catid, a.title' ; $db->setQuery( $query ); $contents = $db->loadObjectList(); ## query to choose section to move to $query = 'SELECT a.title AS text, a.id AS value' . ' FROM #__sections AS a' . ' WHERE a.published = 1' . ' ORDER BY a.title' ; $db->setQuery( $query ); $sections = $db->loadObjectList(); // build the html select list $SectionList = JHTML::_('select.genericlist', $sections, 'sectionmove', 'class="inputbox" size="10"', 'value', 'text', null ); categories_html::moveCategorySelect( $option, $cid, $SectionList, $items, $sectionOld, $contents, $redirect ); } /** * Save the item(s) to the menu selected */ function moveCategorySave( $cid, $sectionOld ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $sectionMove = JRequest::getCmd( 'sectionmove' ); //Check to see of a section was selected to copy the items too if (!$sectionMove) { $msg = JText::_('Please select a section from the list'); moveCategorySelect( 'com_categories', $cid, $sectionOld ); JError::raiseWarning(500, $msg); return; } JArrayHelper::toInteger($cid, array(0)); $sectionNew =& JTable::getInstance('section'); $sectionNew->load( $sectionMove ); //Remove the categories was in destination section $cids = implode( ',', $cid ); $query = 'SELECT id, title' . ' FROM #__categories' . ' WHERE id IN ( '.$cids.' )' . ' AND section = '.$db->Quote($sectionMove) ; $db->setQuery( $query ); $scid = $db->loadResultArray(0); $title = $db->loadResultArray(1); $cid = array_diff($cid, $scid); // if ( !empty($cid) ) { $cids = implode( ',', $cid ); $total = count( $cid ); $query = 'UPDATE #__categories' . ' SET section = '.$db->Quote($sectionMove) . ' WHERE id IN ( '.$cids.' )' ; $db->setQuery( $query ); if ( !$db->query() ) { JError::raiseError(500, $db->getErrorMsg() ); } $query = 'UPDATE #__content' . ' SET sectionid = '.$db->Quote($sectionMove) . ' WHERE catid IN ( '.$cids.' )' ; $db->setQuery( $query ); if ( !$db->query() ) { JError::raiseError(500, $db->getErrorMsg()); } $msg = JText::sprintf( 'Categories moved to', $sectionNew->title ); $mainframe->enqueueMessage($msg); } if ( !empty($title) && is_array($title) ) { if ( count($title) == 1 ) { $msg = JText::sprintf( 'Category already in', implode( ', ', $title ), $sectionNew->title ); } else { $msg = JText::sprintf( 'Categories already in', implode( ', ', $title ), $sectionNew->title ); } $mainframe->enqueueMessage($msg); } $mainframe->redirect( 'index.php?option=com_categories§ion='. $sectionOld ); } /** * Form for copying item(s) to a specific menu */ function copyCategorySelect( $option, $cid, $sectionOld ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $redirect = JRequest::getCmd( 'section', 'com_content', 'post' ); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select an item to move', true )); } ## query to list selected categories $cids = implode( ',', $cid ); $query = 'SELECT a.title, a.section' . ' FROM #__categories AS a' . ' WHERE a.id IN ( '.$cids.' )' ; $db->setQuery( $query ); $items = $db->loadObjectList(); ## query to list items from categories $query = 'SELECT a.title, a.id' . ' FROM #__content AS a' . ' WHERE a.catid IN ( '.$cids.' )' . ' ORDER BY a.catid, a.title' ; $db->setQuery( $query ); $contents = $db->loadObjectList(); ## query to choose section to move to $query = 'SELECT a.title AS `text`, a.id AS `value`' . ' FROM #__sections AS a' . ' WHERE a.published = 1' . ' ORDER BY a.name' ; $db->setQuery( $query ); $sections = $db->loadObjectList(); // build the html select list $SectionList = JHTML::_('select.genericlist', $sections, 'sectionmove', 'class="inputbox" size="10"', 'value', 'text', null ); categories_html::copyCategorySelect( $option, $cid, $SectionList, $items, $sectionOld, $contents, $redirect ); } /** * Save the item(s) to the menu selected */ function copyCategorySave( $cid, $sectionOld ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $sectionMove = JRequest::getInt( 'sectionmove' ); //Check to see of a section was selected to copy the items too if (!$sectionMove) { $msg = JText::_('Please select a section from the list'); copyCategorySelect( 'com_categories', $cid, $sectionOld ); JError::raiseWarning(500, $msg); return; } $contentid = JRequest::getVar( 'item', null, '', 'array' ); JArrayHelper::toInteger($contentid); $category =& JTable::getInstance('category'); foreach( $cid as $id ) { $category->load( $id ); $category->id = NULL; $category->title = JText::sprintf( 'Copy of', $category->title ); $category->name = JText::sprintf( 'Copy of', $category->name ); $category->section = $sectionMove; if (!$category->check()) { JError::raiseError(500, $category->getError()); } if (!$category->store()) { JError::raiseError(500, $category->getError()); } $category->checkin(); // stores original catid $newcatids[]["old"] = $id; // pulls new catid $newcatids[]["new"] = $category->id; } $content =& JTable::getInstance('content'); foreach( $contentid as $id) { $content->load( $id ); $content->id = NULL; $content->sectionid = $sectionMove; $content->hits = 0; foreach( $newcatids as $newcatid ) { if ( $content->catid == $newcatid["old"] ) { $content->catid = $newcatid["new"]; } } if (!$content->check()) { JError::raiseError(500, $content->getError()); } if (!$content->store()) { JError::raiseError(500, $content->getError()); } $content->checkin(); } $sectionNew =& JTable::getInstance('section'); $sectionNew->load( $sectionMove ); $msg = JText::sprintf( 'Categories copied to', count($cid), $sectionNew->title ); $mainframe->redirect( 'index.php?option=com_categories§ion='. $sectionOld, $msg ); } /** * changes the access level of a record * @param integer The increment to reorder by */ function accessMenu( $uid, $access, $section ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $row =& JTable::getInstance('category'); $row->load( $uid ); $row->access = $access; if ( !$row->check() ) { return $row->getError(); } if ( !$row->store() ) { return $row->getError(); } $mainframe->redirect( 'index.php?option=com_categories§ion='. $section ); } function saveOrder( &$cid, $section ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $total = count( $cid ); $order = JRequest::getVar( 'order', array(0), 'post', 'array' ); JArrayHelper::toInteger($order, array(0)); $row =& JTable::getInstance('category'); $groupings = array(); // update ordering values for( $i=0; $i < $total; $i++ ) { $row->load( (int) $cid[$i] ); // track sections $groupings[] = $row->section; if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { JError::raiseError(500, $db->getErrorMsg()); } } } // execute updateOrder for each parent group $groupings = array_unique( $groupings ); foreach ($groupings as $group){ $row->reorder('section = '.$db->Quote($group)); } $msg = JText::_( 'New ordering saved' ); $mainframe->redirect( 'index.php?option=com_categories§ion='. $section, $msg ); }elracodelangela/administrator/components/com_massmail/0000755000176700017710000000000011061563565024142 5ustar essawireessawireelracodelangela/administrator/components/com_massmail/toolbar.massmail.php0000755000176700017710000000141011061563432030112 0ustar essawireessawire
    authorize( 'com_massmail', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } require_once( JApplicationHelper::getPath( 'admin_html' ) ); switch ($task) { case 'send': sendMail(); break; case 'cancel': $mainframe->redirect( 'index.php' ); break; default: messageForm( $option ); break; } function messageForm( $option ) { $acl =& JFactory::getACL(); $gtree = array( JHTML::_('select.option', 0, '- '. JText::_( 'All User Groups' ) .' -' ) ); // get list of groups $lists = array(); $gtree = array_merge( $gtree, $acl->get_group_children_tree( null, 'users', false ) ); $lists['gid'] = JHTML::_('select.genericlist', $gtree, 'mm_group', 'size="10"', 'value', 'text', 0 ); HTML_massmail::messageForm( $lists, $option ); } function sendMail() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $acl =& JFactory::getACL(); $mode = JRequest::getVar( 'mm_mode', 0, 'post', 'int' ); $subject = JRequest::getVar( 'mm_subject', '', 'post', 'string' ); $gou = JRequest::getVar( 'mm_group', '0', 'post', 'int' ); $recurse = JRequest::getVar( 'mm_recurse', 'NO_RECURSE', 'post', 'word' ); $bcc = JRequest::getVar( 'mm_bcc', 0, 'post', 'int' ); // pulls message inoformation either in text or html format if ( $mode ) { $message_body = JRequest::getVar( 'mm_message', '', 'post', 'string', JREQUEST_ALLOWRAW ); } else { // automatically removes html formatting $message_body = JRequest::getVar( 'mm_message', '', 'post', 'string' ); } // Check for a message body and subject if (!$message_body || !$subject) { $mainframe->redirect( 'index.php?option=com_massmail', JText::_( 'Please fill in the form correctly' ) ); } // get users in the group out of the acl $to = $acl->get_group_objects( $gou, 'ARO', $recurse ); JArrayHelper::toInteger($to['users']); // Get sending email address /* $query = 'SELECT email' . ' FROM #__users' . ' WHERE id = '.(int) $user->get('id') ; $db->setQuery( $query ); $user->set( 'email', $db->loadResult() ); */ // Get all users email and group except for senders $query = 'SELECT email' . ' FROM #__users' . ' WHERE id != '.(int) $user->get('id') . ( $gou !== 0 ? ' AND id IN (' . implode( ',', $to['users'] ) . ')' : '' ) ; $db->setQuery( $query ); $rows = $db->loadObjectList(); // Check to see if there are any users in this group before we continue if ( ! count($rows) ) { $msg = JText::_('No users could be found in this group.'); $mainframe->redirect( 'index.php?option=com_massmail', $msg ); } $mailer =& JFactory::getMailer(); $params =& JComponentHelper::getParams( 'com_massmail' ); // Build e-mail message format $mailer->setSender(array($mainframe->getCfg('mailfrom'), $mainframe->getCfg('fromname'))); $mailer->setSubject($params->get('mailSubjectPrefix') . stripslashes( $subject)); $mailer->setBody($message_body . $params->get('mailBodySuffix')); $mailer->IsHTML($mode); // Add recipients if ( $bcc ) { foreach ($rows as $row) { $mailer->addBCC($row->email); } $mailer->addRecipient($mainframe->getCfg('mailfrom')); }else { foreach ($rows as $row) { $mailer->addRecipient($row->email); } } // Send the Mail $rs = $mailer->Send(); // Check for an error if ( JError::isError($rs) ) { $msg = $rs->getError(); } else { $msg = $rs ? JText::sprintf( 'E-mail sent to', count( $rows ) ) : JText::_('The mail could not be sent'); } // Redirect with the message $mainframe->redirect( 'index.php?option=com_massmail', $msg ); } elracodelangela/administrator/components/com_massmail/index.html0000755000176700017710000000005411061563432026132 0ustar essawireessawireelracodelangela/administrator/components/com_massmail/massmail.xml0000755000176700017710000000100411061563432026461 0ustar essawireessawire Mass Mail Joomla! Project April 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCMASSMAIL elracodelangela/administrator/components/com_massmail/toolbar.massmail.html.php0000755000176700017710000000205611061563432031064 0ustar essawireessawire elracodelangela/administrator/components/com_jce/0000755000176700017710000000000011074451460023067 5ustar essawireessawireelracodelangela/administrator/components/com_jce/config.php0000644000176700017710000000166211074451460025052 0ustar essawireessawire dirname( __FILE__ ) .DS. 'config' ) ); $controller->execute( JRequest::getCmd( 'task' ) ); $controller->redirect(); ?>elracodelangela/administrator/components/com_jce/sql/0000755000176700017710000000000011074451460023666 5ustar essawireessawireelracodelangela/administrator/components/com_jce/sql/install.mysql.sql0000644000176700017710000002274011074451460027226 0ustar essawireessawire-- -- Table structure for table `#__jce_plugins` -- DROP TABLE IF EXISTS `#__jce_plugins`; CREATE TABLE `#__jce_plugins` ( `id` int(11) NOT NULL auto_increment, `title` varchar(100) NOT NULL default '', `name` varchar(100) NOT NULL, `type` varchar(100) NOT NULL default 'plugin', `icon` varchar(255) NOT NULL default '', `layout` varchar(255) NOT NULL, `row` int(11) NOT NULL default '0', `ordering` int(11) NOT NULL default '0', `published` tinyint(3) NOT NULL default '0', `editable` tinyint(3) NOT NULL default '0', `elements` varchar(255) NOT NULL default '', `params` text NOT NULL, `iscore` tinyint(3) NOT NULL default '0', `checked_out` int(11) NOT NULL default '0', `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`), UNIQUE KEY `plugin` (`name`) ); -- -- Dumping data for table `#__jce_plugins` -- INSERT INTO `#__jce_plugins` (`id`, `title`, `name`, `type`, `icon`, `layout`, `row`, `ordering`, `published`, `editable`, `elements`, `params`, `iscore`, `checked_out`, `checked_out_time`) VALUES (1, 'Context Menu', 'contextmenu', 'plugin', '', '', 0, 19, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (2, 'Directionality', 'directionality', 'plugin', 'ltr,rtl', 'directionality', 3, 26, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (3, 'Emotions', 'emotions', 'plugin', 'emotions', 'emotions', 3, 24, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (4, 'Fullscreen', 'fullscreen', 'plugin', 'fullscreen', 'fullscreen', 3, 27, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (5, 'Paste', 'paste', 'plugin', 'pasteword,pastetext', 'paste', 2, 15, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (6, 'Preview', 'preview', 'plugin', 'preview', 'preview', 3, 29, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (7, 'Tables', 'table', 'plugin', 'tablecontrols', 'buttons', 3, 11, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (8, 'Print', 'print', 'plugin', 'print', 'print', 3, 25, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (9, 'Search Replace', 'searchreplace', 'plugin', 'search,replace', 'searchreplace', 2, 18, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (10, 'Styles', 'style', 'plugin', 'styleprops', 'style', 4, 16, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (11, 'Non-Breaking', 'nonbreaking', 'plugin', 'nonbreaking', 'nonbreaking', 4, 21, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (12, 'Visual Characters', 'visualchars', 'plugin', 'visualchars', 'visualchars', 4, 20, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (13, 'XHTML Xtras', 'xhtmlxtras', 'plugin', 'cite,abbr,acronym,del,ins,attribs', 'xhtmlxtras', 4, 17, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (14, 'Image Manager', 'imgmanager', 'plugin', 'imgmanager', 'imgmanager', 4, 30, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (15, 'Advanced Link', 'advlink', 'plugin', 'advlink', 'advlink', 4, 31, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (16, 'Spell Checker', 'spellchecker', 'plugin', 'spellchecker', 'spellchecker', 4, 22, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (17, 'Layers', 'layer', 'plugin', 'insertlayer,moveforward,movebackward,absolute', 'layer', 4, 10, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (18, 'Font ForeColour', 'forecolor', 'command', 'forecolor', 'forecolor', 2, 17, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (19, 'Bold', 'bold', 'command', 'bold', 'bold', 1, 2, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (20, 'Italic', 'italic', 'command', 'italic', 'italic', 1, 3, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (21, 'Underline', 'underline', 'command', 'underline', 'underline', 1, 4, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (22, 'Font BackColour', 'backcolor', 'command', 'backcolor', 'backcolor', 2, 18, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (23, 'Unlink', 'unlink', 'command', 'unlink', 'unlink', 2, 11, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (24, 'Font Select', 'fontselect', 'command', 'fontselect', 'fontselect', 1, 12, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (25, 'Font Size Select', 'fontsizeselect', 'command', 'fontsizeselect', 'fontsizeselect', 1, 13, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (26, 'Style Select', 'styleselect', 'command', 'styleselect', 'styleselect', 1, 10, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (27, 'New Document', 'newdocument', 'command', 'newdocument', 'newdocument', 1, 1, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (28, 'Help', 'help', 'plugin', 'help', 'help', 1, 6, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (29, 'StrikeThrough', 'strikethrough', 'command', 'strikethrough', 'strikethrough', 1, 5, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (30, 'Indent', 'indent', 'command', 'indent', 'indent', 2, 7, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (31, 'Outdent', 'outdent', 'command', 'outdent', 'outdent', 2, 6, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (32, 'Undo', 'undo', 'command', 'undo', 'undo', 2, 8, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (33, 'Redo', 'redo', 'command', 'redo', 'redo', 2, 9, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (34, 'Horizontal Rule', 'hr', 'command', 'hr', 'hr', 3, 2, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (35, 'HTML', 'html', 'command', 'code', 'code', 2, 16, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (36, 'Numbered List', 'numlist', 'command', 'numlist', 'numlist', 2, 5, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (37, 'Bullet List', 'bullist', 'command', 'bullist', 'bullist', 2, 4, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (38, 'Clipboard Actions', 'clipboard', 'command', 'cut,copy,paste', 'clipboard', 2, 1, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (39, 'Subscript', 'sub', 'command', 'sub', 'sub', 3, 5, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (40, 'Superscript', 'sup', 'command', 'sup', 'sup', 3, 6, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (41, 'Visual Aid', 'visualaid', 'command', 'visualaid', 'visualaid', 3, 4, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (42, 'Character Map', 'charmap', 'command', 'charmap', 'charmap', 3, 7, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (43, 'Justify Full', 'full', 'command', 'justifyfull', 'justifyfull', 1, 8, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (44, 'Justify Center', 'center', 'command', 'justifycenter', 'justifycenter', 1, 7, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (45, 'Justify Left', 'left', 'command', 'justifyleft', 'justifyleft', 1, 6, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (46, 'Justify Right', 'right', 'command', 'justifyright', 'justifyright', 1, 9, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (47, 'Remove Format', 'removeformat', 'command', 'removeformat', 'removeformat', 3, 3, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (48, 'Anchor', 'anchor', 'command', 'anchor', 'anchor', 2, 12, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (49, 'Format Select', 'formatselect', 'command', 'formatselect', 'formatselect', 1, 11, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (50, 'Image', 'image', 'command', 'image', 'image', 2, 13, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (51, 'Link', 'link', 'command', 'link', 'link', 2, 10, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (52, 'File Browser', 'browser', 'plugin', '', '', 0, 28, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (53, 'Inline Popups', 'inlinepopups', 'plugin', '', '', 0, 12, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (54, 'Read More', 'readmore', 'plugin', 'readmore', 'readmore', 4, 23, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (55, 'Media Support', 'media', 'plugin', '', '', 0, 9, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (56, 'Code Cleanup', 'cleanup', 'command', 'cleanup', 'cleanup', 2, 14, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (57, 'Safari Browser Support', 'safari', 'plugin', '', '', 0, 13, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (59, 'Advanced Code Editor', 'advcode', 'plugin', 'advcode', 'advcode', 4, 8, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'); -- -- Table structure for table `#__jce_extensions` -- DROP TABLE IF EXISTS `#__jce_extensions`; CREATE TABLE `#__jce_extensions` ( `id` int(11) NOT NULL auto_increment, `pid` int(11) NOT NULL, `name` varchar(100) NOT NULL, `extension` varchar(255) NOT NULL, `folder` varchar(255) NOT NULL, `published` tinyint(3) NOT NULL, PRIMARY KEY (`id`) ); -- -- Dumping data for table `#__jce_extensions` -- INSERT INTO `#__jce_extensions` (`id`, `pid`, `name`, `extension`, `folder`, `published`) VALUES (1, 15, 'Joomla Links for Advanced Link', 'joomlalinks', 'links', 1); -- -- Table structure for table `#__jce_groups` -- DROP TABLE IF EXISTS `#__jce_groups`; CREATE TABLE `#__jce_groups` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `description` varchar(255) NOT NULL, `users` text NOT NULL, `types` varchar(255) NOT NULL, `components` text NOT NULL, `rows` text NOT NULL, `plugins` varchar(255) NOT NULL, `published` tinyint(3) NOT NULL, `ordering` int(11) NOT NULL, `checked_out` tinyint(3) NOT NULL, `checked_out_time` datetime NOT NULL, `params` text NOT NULL, PRIMARY KEY (`id`) ); -- -- Dumping data for table `#__jce_groups` -- INSERT INTO `#__jce_groups` (`id`, `name`, `description`, `users`, `types`, `components`, `rows`, `plugins`, `published`, `ordering`, `checked_out`, `checked_out_time`, `params`) VALUES (1, 'Default', 'Default group for all users with edit access', '', '19,20,21,23,24,25', '', '28,27,32,33,19,20,21,29,45,44,43,46,26,49,36,37,30,31,39,40;56,47,38,5,9,48,42,24,25,22,18,2;7,17,13,10,3;23,15,14,59,16,4,6,8,12,54,34,41,11', '1,52,53,55,57,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,28,54,59', 1, 1, 62, '2008-08-01 18:52:15', ''); elracodelangela/administrator/components/com_jce/sql/uninstall.mysql.sql0000644000176700017710000000020111074451460027555 0ustar essawireessawireDROP TABLE IF EXISTS `#__jce_plugins`; DROP TABLE IF EXISTS `#__jce_extensions`; DROP TABLE IF EXISTS `#__jce_groups`; elracodelangela/administrator/components/com_jce/groups/0000755000176700017710000000000011074451460024406 5ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/helper.php0000644000176700017710000000162711074451460026404 0ustar essawireessawiresetQuery( $query ); $groups = $db->loadObjectList(); return $groups[0]; } function getUserGroupFromType( $type ){ $db =& JFactory::getDBO(); if(!is_int($type)){ $query = 'SELECT id' . ' FROM #__core_acl_aro_groups' . ' WHERE name = "'.$type.'"' ; $db->setQuery( $query ); $id = $db->loadResult(); } $query = 'SELECT *' . ' FROM #__jce_groups' . ' WHERE '.$type.' IN (types)' ; $db->setQuery( $query ); $groups = $db->loadObjectList(); return $groups[0]; } function getRowArray($rows){ $out = array(); $rows = explode(';', $rows); $i = 1; foreach($rows as $row){ $out[$i] = $row; $i++; } return $out; } }elracodelangela/administrator/components/com_jce/groups/groups.php0000644000176700017710000000436611074451460026447 0ustar essawireessawireloadArray($array['params']); $array['params'] = $registry->toString(); } return parent::bind($array, $ignore); } } ?>elracodelangela/administrator/components/com_jce/groups/index.html0000644000176700017710000000005411074451460026402 0ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/0000755000176700017710000000000011074451460025543 5ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/group/0000755000176700017710000000000011074451460026677 5ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/group/index.html0000644000176700017710000000005411074451460030673 0ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/group/tmpl/0000755000176700017710000000000011074451460027653 5ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/group/tmpl/form.php0000644000176700017710000004125111074451460031332 0ustar essawireessawire [' .JText::_('Edit'). ']', 'user.png' ); JToolBarHelper::save(); JToolBarHelper::apply(); JToolBarHelper::cancel( 'cancelEdit', 'Close' ); jceToolbarHelper::help( 'groups' ); ?> group, ENT_QUOTES, '' ); ?>
    group->name == 'Default' ){ echo $this->group->name; }else{?>
    : group->name == 'Default' ){ echo JText::_('Enabled'); }else{ echo $this->lists['published']; }?>
    : lists['ordering']; ?>
    : lists['components']; ?>

    : lists['types']; ?>

    : lists['users']; ?>

    group->rows ); $width = $this->layout['width'] + 50; for( $i=1; $i<=$this->layout['rows']; $i++ ){ ?>
      plugins as $icon ){ if( !in_array( $icon->id, explode( ',', implode( ',', $rows ) ) ) ){ if( $icon->layout && $icon->row == $i ){ $n = "row_li_" .$icon->id; $path = $icon->type == 'command' ? '../plugins/editors/jce/tiny_mce/themes/advanced/img/'. $icon->layout .'.gif' : '../plugins/editors/jce/tiny_mce/plugins/'. $icon->name .'/img/'. $icon->layout .'.gif'; ?>
    • <?php echo $icon->title;?>
    layout['width'] + 50; for( $i=1; $i<=count( $rows )+1; $i++ ){?>
      plugins as $button ){ if( $button->layout && $button->id == $icon ){ $n = "group_li_". $button->id; $path = $button->type == 'command' ? '../plugins/editors/jce/tiny_mce/themes/advanced/img/'. $button->layout .'.gif' : '../plugins/editors/jce/tiny_mce/plugins/'. $button->name .'/img/'. $button->layout .'.gif'; ?>
    • <?php echo $button->title;?>
    plugins as $plugin ){ if( $plugin->layout == '' ){ if( $plugin->editable ){?>
    id, explode( ',', $this->group->plugins ) ) ? 'checked="checked"' : '';?>/> title;?>
    id, explode( ',', $this->group->plugins ) ) ? 'checked="checked"' : '';?>/> title;?>
    startPane("group-pane-editor"); echo $pane->startPanel(JText :: _('Editor Setup'), "param-page"); if($output = $this->params->render('params', 'groups-editor')) : echo $output; else : echo "
    ".JText::_('There are no parameters for this item')."
    "; endif; echo $pane->endPanel(); echo $pane->startPanel(JText :: _('Editor Options'), "param-page"); if($output = $this->params->render('params', 'groups-options')) : echo $output; else : echo "
    ".JText::_('There are no parameters for this item')."
    "; endif; echo $pane->endPanel(); echo $pane->startPanel(JText :: _('Plugin Options'), "param-page"); if($output = $this->params->render('params', 'groups-plugins')) : echo $output; else : echo "
    ".JText::_('There are no parameters for this item')."
    "; endif; echo $pane->endPanel(); echo $pane->endPane(); ?>
    plugins as $plugin ){ if( $plugin->editable ){ jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); $path = JPATH_PLUGINS .DS. 'editors' .DS. 'jce' .DS. 'tiny_mce' .DS. 'plugins' .DS. $plugin->name; $xmlPath = $path . DS . $plugin->name .'.xml'; $name = trim( $plugin->name ); $params = new JParameter( $this->group->params, $xmlPath ); // Load Language for plugin $lang =& JFactory::getLanguage(); $lang->load( 'com_jce_' . trim( $name ), JPATH_SITE ); $display = in_array( $plugin->id, explode( ',', $this->group->plugins ) ) ? 'block' : 'none'; if( $params->getNumParams('standard') || $params->getNumParams('defaults')|| $params->getNumParams('access') || $params->getNumParams('advanced') ) { ?>
    title ); ?> startPane("group-pane-".$name); if($params->getNumParams('standard')) { if($output = $params->render('params', 'standard')){ echo $pane->startPanel(JText :: _('STANDARD'), $name."-standard-page"); echo $output; echo $pane->endPanel(); } } if($params->getNumParams('defaults')) { if($output = $params->render('params', 'defaults')){ echo $pane->startPanel(JText :: _('DEFAULTS'), $name."-defaults-page"); echo $output; echo $pane->endPanel(); } } if($params->getNumParams('access')) { if($output = $params->render('params', 'access')){ echo $pane->startPanel(JText :: _('PERMISSIONS'), $name."-access-page"); echo $output; echo $pane->endPanel(); } } if($params->getNumParams('advanced')) { if($output = $params->render('params', 'advanced')){ echo $pane->startPanel(JText :: _('ADVANCED'), $name."-advanced-page"); echo $output; echo $pane->endPanel(); } } if( JFolder::exists( $path .DS. 'extensions' ) ){ $db =& JFactory::getDBO(); $query = 'SELECT *' . ' FROM #__jce_extensions' . ' WHERE published = 1' . ' AND pid = '.(int) $plugin->id; ; $db->setQuery( $query ); $extensions = $db->loadObjectList(); foreach( $extensions as $extension ){ // Load extension xml file $file = $path .DS. 'extensions' .DS. $extension->folder .DS. $extension->extension . '.xml'; // Load extension language file $lang =& JFactory::getLanguage(); $lang->load( 'com_jce_' . trim( $name ) . '_' . trim( $extension->extension ), JPATH_SITE ); if( JFile::exists( $file ) ){ $params = new JParameter( $this->group->params, $file ); if($params->getNumParams()) { if($output = $params->render('params')){ echo $pane->startPanel(JText :: _( $extension->name ), $extension->extension."-extension-page"); echo $output; echo $pane->endPanel(); } } } } } echo $pane->endPane(); ?>
    elracodelangela/administrator/components/com_jce/groups/views/group/tmpl/index.html0000644000176700017710000000005411074451460031647 0ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/group/view.html.php0000644000176700017710000001364611074451460031337 0ustar essawireessawireload( $cid[0] ); // fail if checked out not by 'me' if( $row->isCheckedOut( $user->get('id') ) ){ $msg = JText::sprintf( 'DESCBEINGEDITTED', JText::_( 'The Group' ), $row->name ); $this->setRedirect( 'index.php?option='. $option .'&type=group', $msg, 'error' ); return false; } // Load editor $editor =& JPluginHelper::getPlugin('editors', 'jce'); // Get all plugins/commands $query = 'SELECT *' . ' FROM #__jce_plugins' . ' WHERE published = 1' ; $db->setQuery( $query ); $plugins = $db->loadObjectList(); // load the row from the db table if( $cid[0] ){ $row->checkout( $user->get('id') ); }else{ $query = 'SELECT COUNT(id)' . ' FROM #__jce_groups' ; $db->setQuery( $query ); $total = $db->loadResult(); $row->name = ''; $row->description = ''; $row->types = ''; $row->components = ''; $row->types = ''; $row->rows = ''; $row->plugins = ''; $row->published = 1; $row->ordering = 0; $row->params = ''; $row->params .= $editor->params; foreach( $plugins as $plugin ){ if( $plugin->type == 'plugin' ){ $row->params .= $plugin->params; } } } // build the html select list for ordering $query = 'SELECT ordering AS value, name AS text' . ' FROM #__jce_groups' . ' WHERE published = 1' . ' AND ordering > -10000' . ' AND ordering < 10000' . ' ORDER BY ordering' ; $order = JHTML::_('list.genericordering', $query ); $lists['ordering'] = JHTML::_('select.genericlist', $order, 'ordering', 'class="inputbox" size="1"', 'value', 'text', intval( $row->ordering ) ); $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published ); // Get components list $query = "SELECT *" . " FROM #__components" . " WHERE link <> ''" . " AND parent = 0" . " AND enabled = 1" . " ORDER BY name"; $db->setQuery( $query ); $components = $db->loadObjectList(); $options = array(); foreach( $components as $component ){ $options[] = JHTML::_('select.option', $component->option, JText::_( $component->name ) ); } $lists['components'] = JHTML::_('select.genericlist', $options, 'components[]', 'class="inputbox levels" size="10" multiple="multiple"', 'value', 'text', $row->components == '' ? '' : explode( ',', $row->components ) ); $query = 'SELECT types' . ' FROM #__jce_groups' // Exclude ROOT, USERS, Super Administrator, Public Frontend, Public Backend . ' WHERE id NOT IN (17,28,29,30)' ; $db->setQuery( $query ); $types = $db->loadResultArray(); // get list of Groups for dropdown filter $query = 'SELECT id AS value, name AS text' . ' FROM #__core_acl_aro_groups' // Exclude ROOT, USERS, Super Administrator, Public Frontend, Public Backend . ' WHERE id NOT IN (17,28,29,30)' ; $db->setQuery( $query ); $types = $db->loadObjectList(); $i = '-'; $options = array( JHTML::_('select.option', '0', JText::_( 'Guest' ) ) ); foreach( $types as $type ){ $options[] = JHTML::_('select.option', $type->value, $i . JText::_( $type->text ) ); $i .= '-'; } $lists['types'] = JHTML::_('select.genericlist', $options, 'types[]', 'class="inputbox levels" size="8" multiple="multiple"', 'value', 'text', $row->types == '' ? '' : explode( ',', $row->types ) ); $options = array(); if( $row->id ){ $query = 'SELECT id as value, username as text' . ' FROM #__users' . ' WHERE id IN ('.$row->users.')' ; $db->setQuery( $query ); $gusers = $db->loadObjectList(); if( $gusers ){ foreach( $gusers as $guser ){ $options[] = JHTML::_('select.option', $guser->value, $guser->text ); } } } $lists['users'] = JHTML::_('select.genericlist', $options, 'users[]', 'class="inputbox users" size="10" multiple="multiple"', 'value', 'text', '' ); // get params definitions $xmlPath = JPATH_PLUGINS .DS. 'editors' .DS. 'jce.xml'; $editor_params = new JParameter( $editor->params, $xmlPath ); $params = new JParameter( $row->params, $xmlPath ); $rows = str_replace( ';', ',', $row->rows ); $layout['width'] = $editor_params->get( 'width', '600' ); $layout['height'] = $editor_params->get( 'height', '600' ); $layout['rows'] = intval( $editor_params->get( 'layout_rows', 5 ) ); $this->assignRef('layout', $layout); $this->assignRef('lists', $lists); $this->assignRef('group', $row); $this->assignRef('params', $params); $this->assignRef('plugins', $plugins); parent::display($tpl); } }elracodelangela/administrator/components/com_jce/groups/views/legend/0000755000176700017710000000000011074451460027001 5ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/legend/index.html0000644000176700017710000000005411074451460030775 0ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/legend/tmpl/0000755000176700017710000000000011074451460027755 5ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/legend/tmpl/index.html0000644000176700017710000000005411074451460031751 0ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/legend/tmpl/default.php0000644000176700017710000000256311074451460032120 0ustar essawireessawire
    icons as $icon ){ $path = $icon->type == 'command' ? '../plugins/editors/jce/tiny_mce/themes/advanced/img/'. $icon->layout .'.gif' : '../plugins/editors/jce/tiny_mce/plugins/'. $icon->name .'/img/'. $icon->layout .'.gif'; ?>
    : :
    title;?> <?php echo $icon->title;?>
    elracodelangela/administrator/components/com_jce/groups/views/legend/view.html.php0000644000176700017710000000241411074451460031430 0ustar essawireessawire 0' . ' ORDER BY title' ; $db->setQuery( $query ); $icons = $db->loadObjectList(); $this->assignRef('icons', $icons); parent::display($tpl); } }elracodelangela/administrator/components/com_jce/groups/views/groups/0000755000176700017710000000000011074451460027062 5ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/groups/index.html0000644000176700017710000000005411074451460031056 0ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/groups/tmpl/0000755000176700017710000000000011074451460030036 5ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/groups/tmpl/index.html0000644000176700017710000000005411074451460032032 0ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/groups/tmpl/default.php0000644000176700017710000001203311074451460032172 0ustar essawireessawire items; JToolBarHelper::title( JText::_( 'Group Manager' ), 'user.png' ); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); JToolBarHelper::custom( 'copy', 'copy.png', 'copy_f2.png', JText::_('Copy'), true ); if( count( $rows ) > 1 ){ JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::deleteList(); } JToolBarHelper::cancel( 'cancel', JText::_( 'Close' ) ); jceToolbarHelper::help( 'groups' ); ?>
    :
    id ); if( $n == 1){ $published = JHTMLImage::administrator('tick.png'); }else{ $published = JHTML::_('grid.published', $row, $i ); } $checked = JHTML::_('grid.checkedout', $row, $i ); $ordering = ($this->lists['order'] == 'g.name'); ?> ">
    lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> 1 ){ echo JHTML::_('grid.order', $rows );}?> lists['order_Dir'], @$this->lists['order'] ); ?>
    pagination->getListFooter(); ?>
    pagination->getRowOffset( $i ); ?> user->get ('id'), $row->checked_out ) ) { echo $row->name; } else { ?> name; ?> description;?> pagination->orderUpIcon( $i, ($row->ordering > -10000 && $row->ordering < 10000), 'orderup', 'Move Up', $ordering ); ?> pagination->orderDownIcon( $i, $n, ($row->ordering > -10000 && $row->ordering < 10000), 'orderdown', 'Move Down', $ordering ); ?> 1? '' : 'disabled="disabled"'; ?> class="text_area" style="text-align: center" /> id;?>
    elracodelangela/administrator/components/com_jce/groups/views/groups/view.html.php0000644000176700017710000000670711074451460031522 0ustar essawireessawiregetUserStateFromRequest( "$option.$type.$task.$client.filter_order", 'filter_order', 'g.name', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( "$option.$type.$task.$client.filter_order_Dir", 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( "$option.$type.$task.$client.filter_state", 'filter_state', '', 'word' ); $search = $mainframe->getUserStateFromRequest( "$option.$type.$task.$client.search", 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( '$option.$type.$task.$client.limitstart', 'limitstart', 0, 'int' ); $limitstart = isset( $limitstart->group ) ? $limitstart->group : 0; $where = array(); if ( $search ) { $where[] = 'LOWER( g.name ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'g.published = 1'; } else if ($filter_state == 'U' ) { $where[] = 'g.published = 0'; } } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '.$filter_order .' '. $filter_order_Dir .', g.ordering ASC'; // get the total number of records $query = 'SELECT COUNT(g.id)' . ' FROM #__jce_groups AS g' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pagination = new JPagination( $total, $limitstart, $limit ); $query = 'SELECT g.*, u.name AS editor' . ' FROM #__jce_groups AS g' . ' LEFT JOIN #__users AS u ON u.id = g.checked_out' . $where . ' GROUP BY g.id' . $orderby ; $db->setQuery( $query, $pagination->limitstart, $pagination->limit ); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search'] = $search; $this->assignRef('user', JFactory::getUser()); $this->assignRef('lists', $lists); $this->assignRef('items', $rows); $this->assignRef('pagination', $pagination); parent::display($tpl); } }elracodelangela/administrator/components/com_jce/groups/views/users/0000755000176700017710000000000011074451460026704 5ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/users/index.html0000644000176700017710000000005411074451460030700 0ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/users/tmpl/0000755000176700017710000000000011074451460027660 5ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/users/tmpl/index.html0000644000176700017710000000005411074451460031654 0ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/views/users/tmpl/default.php0000644000176700017710000001112211074451460032012 0ustar essawireessawire
    : lists['group'];?>
    items ); $i < $n; $i++) { $row =& $this->items[$i]; $task = $row->block ? 'unblock' : 'block'; $alt = $row->block ? JText::_( 'Enabled' ) : JText::_( 'Blocked' ); //$group = JCEGroupsHelper::getUserGroupFromId($row->id); //$checked = $group->id ? '' : JHTML::_('grid.id', $i, $row->id ); ?> ">
    lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?>
    pagination->getListFooter(); ?>
    pagination->limitstart;?> id );?> name; ?> username; ?> groupname ); ?> email; ?> id; ?>
    elracodelangela/administrator/components/com_jce/groups/views/users/view.html.php0000644000176700017710000001141211074451460031331 0ustar essawireessawiregetUserStateFromRequest( "$option.$type.$task.$client.filter_order", 'filter_order', 'a.name', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( "$option.$type.$task.$client.filter_order_Dir", 'filter_order_Dir', '', 'word' ); $filter_type = $mainframe->getUserStateFromRequest( "$option.$type.$task.$client.filter_type", 'filter_type', 0, 'string' ); $search = $mainframe->getUserStateFromRequest( "$option.$type.$task.$client.search", 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); $where = array(); if (isset( $search ) && $search!= '') { $searchEscaped = $db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); $where[] = 'a.username LIKE '.$searchEscaped.' OR a.email LIKE '.$searchEscaped.' OR a.name LIKE '.$searchEscaped; } if ( $filter_type ) { $where[] = 'a.usertype = LOWER( '.$db->Quote($filter_type).' ) '; } // exclude any child group id's for this user $pgids = $acl->get_group_children( $currentUser->get('gid'), 'ARO', 'RECURSE' ); if (is_array( $pgids ) && count( $pgids ) > 0) { JArrayHelper::toInteger($pgids); $where[] = 'a.gid NOT IN (' . implode( ',', $pgids ) . ')'; } // Exclude ROOT, USERS, Super Administrator, Public Frontend, Public Backend $where[] = 'a.gid NOT IN (17,28,29,30)'; // Only unblocked users $where[] = 'a.block = 0'; $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir; $where = ( count( $where ) ? ' WHERE (' . implode( ') AND (', $where ) . ')' : '' ); $query = 'SELECT COUNT(a.id)' . ' FROM #__users AS a' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pagination = new JPagination( $total, $limitstart, $limit ); $query = 'SELECT a.*, g.name AS groupname' . ' FROM #__users AS a' . ' INNER JOIN #__core_acl_aro AS aro ON aro.value = a.id' . ' INNER JOIN #__core_acl_groups_aro_map AS gm ON gm.aro_id = aro.id' . ' INNER JOIN #__core_acl_aro_groups AS g ON g.id = gm.group_id' . $where . ' GROUP BY a.id' . $orderby ; $db->setQuery( $query, $pagination->limitstart, $pagination->limit ); $rows = $db->loadObjectList(); // get list of Groups for dropdown filter $query = 'SELECT name AS value, name AS text' . ' FROM #__core_acl_aro_groups' // Exclude ROOT, USERS, Super Administrator, Public Frontend, Public Backend . ' WHERE id NOT IN (17,28,29,30)' ; $db->setQuery( $query ); $types[] = JHTML::_('select.option', '0', '- '. JText::_( 'Select Group' ) .' -' ); foreach( $db->loadObjectList() as $obj ) { $types[] = JHTML::_('select.option', $obj->value, JText::_( $obj->text ) ); } $lists['group'] = JHTML::_('select.genericlist', $types, 'filter_type', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'value', 'text', "$filter_type" ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; $this->assignRef('user', JFactory::getUser()); $this->assignRef('lists', $lists); $this->assignRef('items', $rows); $this->assignRef('pagination', $pagination); parent::display($tpl); } }elracodelangela/administrator/components/com_jce/groups/views/index.html0000644000176700017710000000005411074451460027537 0ustar essawireessawireelracodelangela/administrator/components/com_jce/groups/controller.php0000644000176700017710000002217111074451460027305 0ustar essawireessawireregisterTask( 'apply', 'save'); $this->registerTask( 'unpublish', 'publish'); $this->registerTask( 'edit' , 'display' ); $this->registerTask( 'add' , 'display' ); $this->registerTask( 'remove' , 'remove' ); $this->registerTask( 'addusers' , 'display' ); $this->registerTask( 'removeusers' ,'display' ); $this->registerTask( 'orderup' , 'order' ); $this->registerTask( 'orderdown' , 'order' ); $this->registerTask( 'legend' , 'display' ); $this->registerTask( 'copy' , 'copy' ); } function display( ) { switch($this->getTask()) { case 'add' : case 'edit' : { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); JRequest::setVar( 'view', 'group' ); } break; case 'addusers' : case 'removeusers' : { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'view', 'users' ); } break; case 'legend': { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'view', 'legend' ); } break; } parent::display(); } function remove() { // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select a Group to remove' ) ); } $cids = implode( ',', $cid ); $query = 'DELETE FROM #__jce_groups' . ' WHERE id IN ( '.$cids.' )' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } $this->setRedirect( 'index.php?option=com_jce&type=group' ); } function copy() { // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $n = count( $cid ); if ($n == 0) { return JError::raiseWarning( 500, JText::_( 'No items selected' ) ); } $row =& JTable::getInstance('groups', 'JCETable'); foreach ($cid as $id){ // load the row from the db table $row->load( (int) $id ); $row->name = JText::sprintf( 'Copy of %s', $row->name ); $row->id = 0; $row->published = 0; if (!$row->check()) { return JError::raiseWarning( 500, $row->getError() ); } if (!$row->store()) { return JError::raiseWarning( 500, $row->getError() ); } $row->checkin(); $row->reorder( 'ordering='.$db->Quote( $row->ordering ) ); } $msg = JText::sprintf( 'Items Copied', $n ); $this->setRedirect( 'index.php?option=com_jce&type=group', $msg ); } function save() { // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); require_once( dirname( __FILE__ ) .DS. 'helper.php' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('groups', 'JCETable'); $task = $this->getTask(); $pid = JRequest::getVar( 'pid', array(), 'post', 'array' ); $components = JRequest::getVar( 'components', array(), 'post', 'array' ); $types = JRequest::getVar( 'types', array(), 'post', 'array' ); $users = JRequest::getVar( 'users', array(), 'post', 'array' ); if (!$row->bind(JRequest::get('post'))) { JError::raiseError(500, $row->getError() ); } if( substr( $row->rows, -1, 1 ) == ';' ){ $row->rows = substr( $row->rows, 0, -1 ); } $row->types = implode( ',', $types ); $row->components = implode( ',', $components ); $row->users = implode( ',', $users ); $query = "SELECT id" . " FROM #__jce_plugins" . " WHERE published = 1" . " AND type = 'plugin'" . " AND id IN (". str_replace( ';', ',', $row->rows ) .")" ; $db->setQuery( $query ); $ids = $db->loadResultArray(); if( !$ids ){ $ids = array(); } $row->plugins = implode( ',', array_merge( $pid, $ids ) ); if (!$row->check()) { JError::raiseError(500, $row->getError() ); } if (!$row->store()) { JError::raiseError(500, $row->getError() ); } $row->checkin(); switch ( $task ) { case 'apply': $msg = JText::sprintf( 'Successfully Saved changes to Group', $row->name ); $this->setRedirect( 'index.php?option=com_jce&type=group&view=group&task=edit&cid[]='. $row->id, $msg ); break; case 'save': default: $msg = JText::sprintf( 'Successfully Saved Group', $row->name ); $this->setRedirect( 'index.php?option=com_jce&type=group', $msg ); break; } } function publish( ){ // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $publish = ( $this->getTask() == 'publish' ? 1 : 0 ); if (count( $cid ) < 1) { $action = $publish ? JText::_( 'publish' ) : JText::_( 'unpublish' ); JError::raiseError(500, JText::_( 'Select a Group to '.$action ) ); } $cids = implode( ',', $cid ); $query = 'UPDATE #__jce_groups SET published = '.(int) $publish . ' WHERE id IN ( '.$cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id').' ))' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } if (count( $cid ) == 1) { $row =& JTable::getInstance('groups', 'JCETable'); $row->checkin( $cid[0] ); } $this->setRedirect( 'index.php?option=com_jce&type=group' ); } function order( ) { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $uid = $cid[0]; $inc = ( $this->getTask() == 'orderup' ? -1 : 1 ); $row =& JTable::getInstance('groups', 'JCETable'); $row->load( $uid ); //$row->move( $inc, ' AND ordering > -10000 AND ordering < 10000' ); $row->move( $inc ); $this->setRedirect( 'index.php?option=com_jce&type=group' ); } function saveorder( ) { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $db =& JFactory::getDBO(); $total = count( $cid ); $order = JRequest::getVar( 'order', array(0), 'post', 'array' ); JArrayHelper::toInteger($order, array(0)); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $row =& JTable::getInstance('groups', 'JCETable'); $conditions = array(); // update ordering values for ( $i=0; $i < $total; $i++ ) { $row->load( (int) $cid[$i] ); if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { JError::raiseError(500, $db->getErrorMsg() ); } // remember to updateOrder this group $condition = ' AND ordering > -10000 AND ordering < 10000'; $found = false; foreach ( $conditions as $cond ) { if ($cond[1]==$condition) { $found = true; break; } } if (!$found) $conditions[] = array($row->id, $condition); } } // execute updateOrder for each group foreach ( $conditions as $cond ) { $row->load( $cond[0] ); $row->reorder( $cond[1] ); } $msg = JText::_( 'New ordering saved' ); $this->setRedirect( 'index.php?option=com_jce&type=group', $msg ); } function cancel( ){ $this->setRedirect( JRoute::_( 'index.php?option=com_jce', false ) ); } function cancelEdit( ) { // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('groups', 'JCETable'); $row->bind(JRequest::get('post')); $row->checkin(); $this->setRedirect( JRoute::_( 'index.php?option=com_jce&type=group', false ) ); } }elracodelangela/administrator/components/com_jce/helper.php0000644000176700017710000004577511074451460025101 0ustar essawireessawiresetQuery( $query ); return $db->loadResult(); } function checkEditor(){ $db =& JFactory::getDBO(); $query = 'SELECT published' . ' FROM #__plugins' . ' WHERE element = "jce" AND folder = "editors"' ; $db->setQuery( $query ); return $db->loadResult(); } function checkEditorPath(){ $path = JPATH_PLUGINS .DS. 'editors'; if( file_exists( $path .DS. 'jce.php' ) && file_exists( $path .DS. 'jce.xml' ) && is_dir( $path .DS. 'jce' ) ){ return true; } return false; } function checkPlugins(){ $db =& JFactory::getDBO(); $query = 'SELECT id' . ' FROM #__jce_plugins' ; $db->setQuery( $query ); $result = $db->loadResult(); return $result ? true : false; } function checkGroups(){ $db =& JFactory::getDBO(); $query = 'SELECT id' . ' FROM #__jce_groups' ; $db->setQuery( $query ); $result = $db->loadResult(); return $result ? true : false; } function fixGroups(){ global $mainframe; $db =& JFactory::getDBO(); // Groups $query = 'DROP TABLE IF EXISTS `#__jce_groups`'; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to remove Groups Table!'), 'error' ); } $query = "CREATE TABLE `#__jce_groups` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `description` varchar(255) NOT NULL, `users` text NOT NULL, `types` varchar(255) NOT NULL, `components` text NOT NULL, `rows` text NOT NULL, `plugins` varchar(255) NOT NULL, `published` tinyint(3) NOT NULL, `ordering` int(11) NOT NULL, `checked_out` tinyint(3) NOT NULL, `checked_out_time` datetime NOT NULL, `params` text NOT NULL, PRIMARY KEY (`id`) )"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to create Groups Table!') ); }else{ $mainframe->enqueueMessage( JText::_('Groups Table created successfully.') ); } $query = "INSERT INTO `#__jce_groups` (`id`, `name`, `description`, `users`, `types`, `components`, `rows`, `plugins`, `published`, `ordering`, `checked_out`, `checked_out_time`, `params`) VALUES (1,'Default','Default group for all users with edit access','','19,20,21,23,24,25', '','28,27,32,33,19,20,21,29,45,44,43,46,26,49,36,37,30,31,39,40;56,47,38,5,9,48,42,24,25,22,18,2;7,17,13,10,3;23,15,14,59,16,4,6,8,12,54,34,41,11', '1,52,53,55,57,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,28,54,59', 1, 1, 62, '2008-08-01 18:52:15', '')"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to insert Groups Table data!'), 'error' ); }else{ $mainframe->enqueueMessage( JText::_('Groups Table updated successfully.') ); } } function fixPlugins(){ global $mainframe; $db =& JFactory::getDBO(); $query = 'DROP TABLE IF EXISTS `#__jce_plugins`'; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to remove Plugins Table!'), 'error' ); } $query = "CREATE TABLE `#__jce_plugins` ( `id` int(11) NOT NULL auto_increment, `title` varchar(100) NOT NULL default '', `name` varchar(100) NOT NULL, `type` varchar(100) NOT NULL default 'plugin', `icon` varchar(255) NOT NULL default '', `layout` varchar(255) NOT NULL, `row` int(11) NOT NULL default '0', `ordering` int(11) NOT NULL default '0', `published` tinyint(3) NOT NULL default '0', `editable` tinyint(3) NOT NULL default '0', `elements` varchar(255) NOT NULL default '', `params` text NOT NULL, `iscore` tinyint(3) NOT NULL default '0', `checked_out` int(11) NOT NULL default '0', `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`), UNIQUE KEY `plugin` (`name`) )"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to create Plugins Table!'), 'error' ); }else{ $mainframe->enqueueMessage( JText::_('Plugins Table created successfully.') ); } $query = "INSERT INTO `#__jce_plugins` (`id`, `title`, `name`, `type`, `icon`, `layout`, `row`, `ordering`, `published`, `editable`, `elements`, `params`, `iscore`, `checked_out`, `checked_out_time`) VALUES (1, 'Context Menu', 'contextmenu', 'plugin', '', '', 0, 19, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (2, 'Directionality', 'directionality', 'plugin', 'ltr,rtl', 'directionality', 3, 26, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (3, 'Emotions', 'emotions', 'plugin', 'emotions', 'emotions', 3, 24, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (4, 'Fullscreen', 'fullscreen', 'plugin', 'fullscreen', 'fullscreen', 3, 27, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (5, 'Paste', 'paste', 'plugin', 'pasteword,pastetext', 'paste', 2, 15, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (6, 'Preview', 'preview', 'plugin', 'preview', 'preview', 3, 29, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (7, 'Tables', 'table', 'plugin', 'tablecontrols', 'buttons', 3, 11, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (8, 'Print', 'print', 'plugin', 'print', 'print', 3, 25, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (9, 'Search Replace', 'searchreplace', 'plugin', 'search,replace', 'searchreplace', 2, 18, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (10, 'Styles', 'style', 'plugin', 'styleprops', 'style', 4, 16, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (11, 'Non-Breaking', 'nonbreaking', 'plugin', 'nonbreaking', 'nonbreaking', 4, 21, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (12, 'Visual Characters', 'visualchars', 'plugin', 'visualchars', 'visualchars', 4, 20, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (13, 'XHTML Xtras', 'xhtmlxtras', 'plugin', 'cite,abbr,acronym,del,ins,attribs', 'xhtmlxtras', 4, 17, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (14, 'Image Manager', 'imgmanager', 'plugin', 'imgmanager', 'imgmanager', 4, 30, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (15, 'Advanced Link', 'advlink', 'plugin', 'advlink', 'advlink', 4, 31, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (16, 'Spell Checker', 'spellchecker', 'plugin', 'spellchecker', 'spellchecker', 4, 22, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (17, 'Layers', 'layer', 'plugin', 'insertlayer,moveforward,movebackward,absolute', 'layer', 4, 10, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (18, 'Font ForeColour', 'forecolor', 'command', 'forecolor', 'forecolor', 2, 17, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (19, 'Bold', 'bold', 'command', 'bold', 'bold', 1, 2, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (20, 'Italic', 'italic', 'command', 'italic', 'italic', 1, 3, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (21, 'Underline', 'underline', 'command', 'underline', 'underline', 1, 4, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (22, 'Font BackColour', 'backcolor', 'command', 'backcolor', 'backcolor', 2, 18, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (23, 'Unlink', 'unlink', 'command', 'unlink', 'unlink', 2, 11, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (24, 'Font Select', 'fontselect', 'command', 'fontselect', 'fontselect', 1, 12, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (25, 'Font Size Select', 'fontsizeselect', 'command', 'fontsizeselect', 'fontsizeselect', 1, 13, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (26, 'Style Select', 'styleselect', 'command', 'styleselect', 'styleselect', 1, 10, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (27, 'New Document', 'newdocument', 'command', 'newdocument', 'newdocument', 1, 1, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (28, 'Help', 'help', 'plugin', 'help', 'help', 1, 6, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (29, 'StrikeThrough', 'strikethrough', 'command', 'strikethrough', 'strikethrough', 1, 5, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (30, 'Indent', 'indent', 'command', 'indent', 'indent', 2, 7, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (31, 'Outdent', 'outdent', 'command', 'outdent', 'outdent', 2, 6, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (32, 'Undo', 'undo', 'command', 'undo', 'undo', 2, 8, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (33, 'Redo', 'redo', 'command', 'redo', 'redo', 2, 9, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (34, 'Horizontal Rule', 'hr', 'command', 'hr', 'hr', 3, 2, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (35, 'HTML', 'html', 'command', 'code', 'code', 2, 16, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (36, 'Numbered List', 'numlist', 'command', 'numlist', 'numlist', 2, 5, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (37, 'Bullet List', 'bullist', 'command', 'bullist', 'bullist', 2, 4, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (38, 'Clipboard Actions', 'clipboard', 'command', 'cut,copy,paste', 'clipboard', 2, 1, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (39, 'Subscript', 'sub', 'command', 'sub', 'sub', 3, 5, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (40, 'Superscript', 'sup', 'command', 'sup', 'sup', 3, 6, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (41, 'Visual Aid', 'visualaid', 'command', 'visualaid', 'visualaid', 3, 4, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (42, 'Character Map', 'charmap', 'command', 'charmap', 'charmap', 3, 7, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (43, 'Justify Full', 'full', 'command', 'justifyfull', 'justifyfull', 1, 8, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (44, 'Justify Center', 'center', 'command', 'justifycenter', 'justifycenter', 1, 7, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (45, 'Justify Left', 'left', 'command', 'justifyleft', 'justifyleft', 1, 6, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (46, 'Justify Right', 'right', 'command', 'justifyright', 'justifyright', 1, 9, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (47, 'Remove Format', 'removeformat', 'command', 'removeformat', 'removeformat', 3, 3, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (48, 'Anchor', 'anchor', 'command', 'anchor', 'anchor', 2, 12, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (49, 'Format Select', 'formatselect', 'command', 'formatselect', 'formatselect', 1, 11, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (50, 'Image', 'image', 'command', 'image', 'image', 2, 13, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (51, 'Link', 'link', 'command', 'link', 'link', 2, 10, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (52, 'File Browser', 'browser', 'plugin', '', '', 0, 28, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (53, 'Inline Popups', 'inlinepopups', 'plugin', '', '', 0, 12, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (54, 'Read More', 'readmore', 'plugin', 'readmore', 'readmore', 4, 23, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (55, 'Media Support', 'media', 'plugin', '', '', 0, 9, 1, 1, '', '', 1, 0, '0000-00-00 00:00:00'), (56, 'Code Cleanup', 'cleanup', 'command', 'cleanup', 'cleanup', 2, 14, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (57, 'Safari Browser Support', 'safari', 'plugin', '', '', 0, 13, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00'), (59, 'Advanced Code Editor', 'advcode', 'plugin', 'advcode', 'advcode', 4, 8, 1, 0, '', '', 1, 0, '0000-00-00 00:00:00')"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to insert Plugins Table data!'), 'error' ); }else{ $mainframe->enqueueMessage( JText::_('Plugins Table updated successfully.') ); } // Extensions $query = 'DROP TABLE IF EXISTS `#__jce_extensions`'; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to remove Extensions Table!'), 'error' ); } $query = "CREATE TABLE `#__jce_extensions` ( `id` int(11) NOT NULL auto_increment, `pid` int(11) NOT NULL, `name` varchar(100) NOT NULL, `extension` varchar(255) NOT NULL, `folder` varchar(255) NOT NULL, `published` tinyint(3) NOT NULL, PRIMARY KEY (`id`) )"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to create Extensions Table!'), 'error' ); }else{ $mainframe->enqueueMessage( JText::_('Extensions Table created successfully.') ); } $query = "INSERT INTO `#__jce_extensions` (`id`, `pid`, `name`, `extension`, `folder`, `published`) VALUES (1, 15, 'Joomla Links for Advanced Link', 'joomlalinks', 'links', 1)"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to insert Extensions Table data!') ); }else{ $mainframe->enqueueMessage( JText::_('Extensions Table updated successfully.') ); } $query = "INSERT INTO `#__modules` (`id`, `title`, `content`, `ordering`, `position`, `checked_out`, `checked_out_time`, `published`, `module`, `numnews`, `access`, `showtitle`, `params`, `iscore`, `client_id`, `control`) VALUES ('', 'JCE News Feed', '', 0, 'jce_cpanel', 0, '0000-00-00 00:00:00', 1, 'mod_feed', 0, 0, 1, 'cache=1\ncache_time=15\nmoduleclass_sfx=\nrssurl=http://www.joomlacontenteditor.net/index.php?option=com_rss&feed=RSS2.0&type=com_frontpage&Itemid=1\nrssrtl=0\nrsstitle=0\nrssdesc=0\nrssimage=0\nrssitems=3\nrssitemdesc=1\nword_count=0\n\n', 0, 1, ''), ('', 'JCE Admin Menu', '', 0, 'jce_icon', 0, '0000-00-00 00:00:00', 1, 'mod_jcequickicon', 0, 0, 1, '', 0, 1, '')"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to insert Modules data!') ); }else{ $mainframe->enqueueMessage( JText::_('Modules data updated successfully.') ); } $mainframe->redirect( 'index.php?option=com_jce&redirected=1' ); } function fixEditor(){ global $mainframe; $path = JPATH_PLUGINS .DS. 'editors'; if( file_exists( $path .DS. 'jce.php' ) && file_exists( $path .DS. 'jce.xml' ) ){ // Sourced from various Joomla! core files including the installer plugin adapter $xml =& JFactory::getXMLParser('Simple'); $ini = ''; if( $xml->loadFile( $path .DS. 'jce.xml' ) ){ $root =& $xml->document; // Get the element of the tag names $element =& $root->getElementByPath('params'); if (!is_a($element, 'JSimpleXMLElement') || !count($element->children())) { // Either the tag does not exist or has no children therefore we return zero files processed. return null; } // Get the array of parameter nodes to process $params = $element->children(); if (count($params) == 0) { // No params to process return null; } // Process each parameter in the $params array. $ini = null; foreach ($params as $param) { if (!$name = $param->attributes('name')) { continue; } if (!$value = $param->attributes('default')) { continue; } $ini .= $name."=".$value."\n"; } } $row =& JTable::getInstance('plugin'); $row->name = 'JCE Editor 1.5.x'; $row->ordering = 0; $row->folder = 'editors'; $row->iscore = 0; $row->access = 0; $row->published = 1; $row->client_id = 0; $row->element = 'jce'; $row->params = $ini; if (!$row->store()) { // Install failed, roll back changes $mainframe->redirect( 'index.php', JText::_('Plugin').' '.JText::_('Install').': '.$db->stderr(true) ); return false; } }else{ $mainframe->redirect( 'index.php', JText::_('Plugin files missing') ); return false; } $mainframe->redirect( 'index.php?option=com_jce', JText::_('Editor successfully installed') ); } function getOrderArray( $input, $listname, $itemKeyName = 'element', $orderKeyName = 'order' ) { parse_str( $input, $inputArray ); $inputArray = $inputArray[$listname]; $orderArray = array(); for( $i=0; $i $inputArray[$i], $orderKeyName => $i +1 ); } return $orderArray; } function getAccessName( $id ){ $db =& JFactory::getDBO(); // get list of Groups for dropdown filter $query = 'SELECT name' . ' FROM #__core_acl_aro_groups' . ' WHERE id = '. $id . ' AND name != "ROOT"' . ' AND name != "USERS"' ; $db->setQuery( $query ); return $db->loadResult(); } function accessList( $name, $access='', $size=1, $extra ){ $db =& JFactory::getDBO(); // get list of Groups for dropdown filter $query = 'SELECT id AS value, name AS text' . ' FROM #__core_acl_aro_groups' . ' WHERE id NOT IN (17,28,29,30)' ; $db->setQuery( $query ); $types[] = JHTML::_('select.option', '0', '- '. JText::_( 'Select Access' ) .' -' ); $i = '-'; foreach( $db->loadObjectList() as $obj ) { $types[] = JHTML::_('select.option', $obj->value, $i . JText::_( $obj->text ) ); $i .= '-'; } return JHTML::_('select.genericlist', $types, $name, 'class="inputbox" size="'. $size .'"'. $extra, 'value', 'text', $access ); } function quickiconButton( $link, $image, $text, $disabled=false ){ global $mainframe; $lang =& JFactory::getLanguage(); $template = $mainframe->getTemplate(); if( $disabled ){ $link = '#'; } ?> getTag(); if( file_exists( JPATH_SITE .DS. 'language' .DS. $tag .DS. $tag .'.com_jce.xml' ) ){ return substr( $tag, 0, strpos( $tag, '-' ) ); } return 'en'; } } class jceToolbarHelper extends JToolbarHelper { function access( $alt = 'Plugin Access' ){ $bar = & JToolBar::getInstance('toolbar'); $bar->appendButton( 'Popup', 'lock', $alt, "index.php?option=com_jce&tmpl=component&type=plugin&task=access_popup", 400, 150 ); } function popup( $alt, $icon, $type, $task, $width=750, $height=400 ){ $bar = & JToolBar::getInstance('toolbar'); $bar->appendButton( 'Popup', $icon, $alt, "index.php?option=com_jce&tmpl=component&type=".$type."&task=".$task, $width, $height ); } function config( $alt = 'Editor Config' ){ $bar = & JToolBar::getInstance('toolbar'); $bar->appendButton( 'Popup', 'config', $alt, "index.php?option=com_jce&tmpl=component&type=config&task=view", 700, 560 ); } function help( $type, $alt='Help' ){ jimport('joomla.plugin.helper'); $plugin = JPluginHelper::getPlugin( 'editors', 'jce' ); $url = 'http://www.joomlacontenteditor.net/index2.php?option=com_content&task=findkey&pop=1'; if( isset( $plugin->params ) ){ $params = new JParameter( $plugin->params ); $url = $params->get( 'help', 'http://www.joomlacontenteditor.net/index2.php?option=com_content&task=findkey&pop=1' ); } $bar = & JToolBar::getInstance('toolbar'); $bar->appendButton( 'Popup', 'help', $alt, $url. '&lang=' .JCEHelper::getLanguage(). '&keyref=admin.' .$type. '.view', 700, 560 ); } } ?>elracodelangela/administrator/components/com_jce/groups.php0000644000176700017710000000201511074451460025115 0ustar essawireessawire dirname( __FILE__ ) .DS. 'groups' ) ); $controller->execute( JRequest::getCmd( 'task' ) ); $controller->redirect(); ?> elracodelangela/administrator/components/com_jce/modules/0000755000176700017710000000000011074451460024537 5ustar essawireessawireelracodelangela/administrator/components/com_jce/modules/mod_jcequickicon/0000755000176700017710000000000011074451460030045 5ustar essawireessawireelracodelangela/administrator/components/com_jce/modules/mod_jcequickicon/index.html0000644000176700017710000000005411074451460032041 0ustar essawireessawireelracodelangela/administrator/components/com_jce/modules/mod_jcequickicon/mod_jcequickicon.xml0000644000176700017710000000163511074451460034102 0ustar essawireessawire JCE Admin Control Panel Joomla! Project / Ryan Demmer May 2008 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.0.0 JCE Administration Control Panel Icons based on Quick Icons Module mod_quickicon.php elracodelangela/administrator/components/com_jce/modules/mod_jcequickicon/mod_jcequickicon.php0000644000176700017710000000477011074451460034074 0ustar essawireessawiregetTemplate(); ?>
    Class. License: MIT-style license. */ /* Class: Sortables Creates an interface for drag and drop sorting of a list or lists. Arguments: list - required, the list or lists that will become sortable. This argument can be an Element, or array of Elements. When a single list (or id) is passed, that list will be sortable only with itself. To enable sorting between lists, one or more lists or id's must be passed using an array or an object. See Examples below. options - an Object, see options and events below. Options: constrain - whether or not to constrain the element being dragged to its parent element. defaults to false. clone - whether or not to display a copy of the actual element while dragging. defaults to true with opacity of 0.7, you can refine styles using an object. opacity - opacity of the element being dragged for sorting handle - a selector which be used to select the element inside each item to be used as a handle for sorting that item. if no match is found, the element is used as its own handle. revert - whether or not to use an effect to slide the element into its final location after sorting. If you pass an object it will be treated as true and used as aditional options for the revert effect. defaults to false. Events: onStart - function executed when the item starts dragging onComplete - function executed when the item ends dragging Example: (start code) var mySortables = new Sortables('list-1', { revert: { duration: 500, transition: Fx.Transitions.Elastic.easeOut } }); //creates a new Sortable instance over the list with id 'list-1' with some extra options for the revert effect var mySortables = new Sortables(['list-1', 'list-2'], { constrain: true, clone: false, revert: true }); //creates a new Sortable instance allowing the sorting of the lists with id's 'list-1' and 'list-2' with extra options //since constrain was set to false, the items will not be able to be dragged from one list to the other var mySortables = new Sortables(['list-1', 'list-2', 'list-3']); //creates a new Sortable instance allowing sorting between the lists with id's 'list-1', 'list-2, and 'list-3' (end) */ var Sortables = new Class({ getOptions : function(){ return { constrain : false, clone: false, opacity: 0.7, handle: false, revert: false, onStart: Class.empty, onComplete: Class.empty }; }, initialize: function(lists, options){ this.setOptions(this.getOptions(), options); this.idle = true; this.hovering = false; this.newInsert = false; this.bound = { start: [], end: this.end.bind(this), move: this.move.bind(this), reset: this.reset.bind(this) }; if (this.options.revert){ var revertOptions = $merge({duration: 250, wait: false}, this.options.revert); this.effect = new Fx.Styles(this.element, revertOptions).addEvent('onComplete', this.bound.reset, true); } this.cloneContents = !!(this.options.clone); this.lists = $$($(lists) || lists); this.reinitialize(); if (this.options.initialize) this.options.initialize.call(this); }, /* Property: reinitialize Allows the sortables instance to be reinitialized after making modifications to the DOM such as adding or removing elements from any of the lists. */ reinitialize: function(){ if (this.handles) this.detach(); this.handles = []; var elements = []; this.lists.each(function(list){ elements.extend(list.getChildren()); }); this.handles = !this.options.handle ? elements : elements.map(function(element){ return element.getElement(this.options.handle) || element; }.bind(this)); this.handles.each(function(handle, i){ this.bound.start[i] = this.start.bindAsEventListener(this, elements[i], true); }, this); this.attach(); }, /* Property: attach Attaches the mousedown event to all the handles, enabling sorting. */ attach: function(){ this.handles.each(function(handle, i){ handle.addEvent('mousedown', this.bound.start[i]); }, this); }, /* Property: detach Detaches the mousedown event from the handles, disabling sorting. */ detach: function(){ this.handles.each(function(handle, i){ handle.removeEvent('mousedown', this.bound.start[i]); }, this); }, check: function(element, list){ element = element.getCoordinates(); var coords = list ? element : { left: element.left - this.list.scrollLeft, right: element.right - this.list.scrollLeft, top: element.top - this.list.scrollTop, bottom: element.bottom - this.list.scrollTop }; return (this.curr.x > coords.left && this.curr.x < coords.right && this.curr.y > coords.top && this.curr.y < coords.bottom); }, where: function(element){ if (this.newInsert){ this.newInsert = false; return 'before'; } var dif = {'x': this.curr.x - this.prev.x, 'y': this.curr.y - this.prev.y}; return dif[['y', 'x'][(Math.abs(dif.x) >= Math.abs(dif.y)) + 0]] <= 0 ? 'before' : 'after'; }, reposition: function(){ if (this.list.positioned){ this.position.y -= this.offset.list.y - this.list.scrollTop; this.position.x -= this.offset.list.x - this.list.scrollLeft; } else if (window.opera){ this.position.y += this.list.scrollTop; this.position.x += this.list.scrollLeft; } }, start: function(event, element){ var event = new Event(event); if (!this.idle) return; this.idle = false; this.prev = {'x': event.page.x, 'y': event.page.y}; this.styles = element.getStyles('margin-top', 'margin-left', 'padding-top', 'padding-left', 'border-top-width', 'border-left-width', 'opacity'); this.margin = { 'top': this.styles['margin-top'].toInt() + this.styles['border-top-width'].toInt(), 'left': this.styles['margin-left'].toInt() + this.styles['border-left-width'].toInt() }; this.element = element; this.list = this.element.getParent(); this.list.hovering = this.hovering = true; this.list.positioned = this.list.getStyle('position').test(/relative|absolute|fixed/); var children = this.list.getChildren(); var bounds = children.shift().getCoordinates(); children.each(function(element){ var coords = element.getCoordinates(); bounds.left = Math.min(coords.left, bounds.left); bounds.right = Math.max(coords.right, bounds.right); bounds.top = Math.min(coords.top, bounds.top); bounds.bottom = Math.max(coords.bottom, bounds.bottom); }); this.bounds = bounds; this.position = this.element.getPosition([this.list]); this.offset = { 'list': this.list.getPosition(), 'element': {'x': event.page.x - this.position.x, 'y': event.page.y - this.position.y} }; this.reposition(); var clone = this.options.clone; switch ($type(clone)){ case 'function': this.clone = clone.call(this, this.element); break; case 'boolean': clone = (clone) ? {'opacity': 0.7} : {'visibility': 'hidden', 'width': this.element.getStyle('width')}; case 'object': this.clone = this.element.clone(this.cloneContents).setStyles(clone); } this.clone.injectBefore(this.element.setStyles({ 'position': 'absolute', 'top': this.position.y - this.margin.top, 'left': this.position.x - this.margin.left, 'opacity': this.options.opacity })); document.addEvent('mousemove', this.bound.move); document.addEvent('mouseup', this.bound.end); this.fireEvent('onStart', this.element); event.stop(); }, move: function(event){ var event = new Event(event); this.curr = {'x': event.page.x, 'y': event.page.y}; this.position = {'x': this.curr.x - this.offset.element.x, 'y': this.curr.y - this.offset.element.y}; if (this.options.constrain) { this.position.y = this.position.y.limit(this.bounds.top, this.bounds.bottom - this.element.offsetHeight); this.position.x = this.position.x.limit(this.bounds.left, this.bounds.right - this.element.offsetWidth); } this.reposition(); this.element.setStyles({ 'top' : this.position.y - this.margin.top, 'left' : this.position.x - this.margin.left }); if (!this.options.constrain){ var oldSize, newSize; this.lists.each(function(list){ if (!this.check(list, true)){ list.hovering = false; } else if (!list.hovering){ this.list = list; this.list.hovering = this.newInsert = true; this.list.positioned = this.list.getStyle('position').test(/relative|absolute|fixed/); oldSize = this.clone.getSize().size; this.list.adopt(this.clone, this.element); newSize = this.clone.getSize().size; this.offset = { 'list': this.list.getPosition(), 'element': { 'x': Math.round(newSize.x * (this.offset.element.x / oldSize.x)), 'y': Math.round(newSize.y * (this.offset.element.y / oldSize.y)) } }; } }, this); } if (this.list.hovering){ this.list.getChildren().each(function(element){ if (!this.check(element)){ element.hovering = false; } else if (!element.hovering && element != this.clone){ element.hovering = true; this.clone.inject(element, this.where(element)); } }, this); } this.prev = this.curr; event.stop(); }, end: function(){ this.prev = null; document.removeEvent('mousemove', this.bound.move); document.removeEvent('mouseup', this.bound.end); this.position = this.clone.getPosition([this.list]); this.reposition(); if (!this.effect){ this.reset(); } else { this.effect.element = this.element; this.effect.start({ 'top' : this.position.y - this.margin.top, 'left' : this.position.x - this.margin.left, 'opacity' : this.styles.opacity }); } }, reset: function(){ this.element.setStyles({ 'position': 'static', 'opacity': this.styles.opacity }).injectBefore(this.clone); this.clone.empty().remove(); this.fireEvent('onComplete', this.element); this.idle = true; }, /* Property: serialize Function to get the order of the elements in the lists of this sortables instance. For each list, an array containing the order of the elements will be returned. If more than one list is being used, all lists will be serialized and returned in an array. Arguments: index - int or false; index of the list to serialize. Omit or pass false to serialize all lists. modifier - function to override the default output of the sortables. See Examples below Examples: (start code) mySortables.serialize(1); //returns the second list serialized (remember, arrays are 0 based...); //['item_1-1', 'item_1-2', 'item_1-3'] mySortables.serialize(); //returns a nested array of all lists serialized, or if only one list exists, that lists order //[['item_1-1', 'item_1-2', 'item_1-3'], ['item_2-1', 'item_2-2', 'item_2-3'], ['item_3-1', 'item_3-2', 'item_3-3']] mySortables.serialize(2, function(element, index){ return element.getProperty('id').replace('item_','') + '=' + index; }).join('&'); //joins the array with a '&' to return a string of the formatted ids of all the elmements in list 3 with their position //'3-0=0&3-1=1&3-2=2' (end) */ serialize: function(index, modifier){ var map = modifier || function(element, index){ return element.getProperty('id'); }.bind(this); var serial = this.lists.map(function(list){ return list.getChildren().map(map, this); }, this); if (this.lists.length == 1) index = 0; return $chk(index) && index >= 0 && index < this.lists.length ? serial[index] : serial; } }); Sortables.implement(new Options, new Events);elracodelangela/administrator/components/com_jce/js/index.html0000644000176700017710000000005411074451460025477 0ustar essawireessawireelracodelangela/administrator/components/com_jce/js/scripts.js0000644000176700017710000000147611074451460025540 0ustar essawireessawire// JavaScript Document var jce = { getSelect : function(d, fn, v){ var s = d.getElementById(fn); return s.value || false; }, addSelect : function(d, fn, n, v){ var s = d.getElementById(fn); if(this.getSelect(d, fn, v) == n){ return; }else{ var o = new Option(n, v); s.options[s.options.length] = o; } }, selectAll : function(d, fn){ var s = d.getElementById(fn); for(var i=0; i=0; i--){ if (s.options[i].selected) { s.remove(i); } } } }elracodelangela/administrator/components/com_jce/cpanel.php0000644000176700017710000000201211074451460025035 0ustar essawireessawire dirname( __FILE__ ) .DS. 'cpanel' , 'template_path' => dirname( __FILE__ ) .DS. 'cpanel' .DS. 'views' .DS. 'tmpl' ) ); $controller->execute( JRequest::getCmd( 'task' ) ); $controller->redirect(); ?> elracodelangela/administrator/components/com_jce/installer.php0000644000176700017710000000351611074451460025602 0ustar essawireessawire 'plugin', 'Languages' => 'language', 'Plugin Extensions' => 'extension' ); JSubMenuHelper::addEntry(JText::_( 'Control Panel' ), '#" onclick="javascript:document.adminForm.type.value=\'\';document.adminForm.task.value=\'\';submitbutton(\'\');', !in_array( $ext, $subMenus)); JSubMenuHelper::addEntry(JText::_( 'Install' ), '#" onclick="javascript:document.adminForm.type.value=\'install\';document.adminForm.task.value=\'\';submitbutton(\'\');', !in_array( $ext, $subMenus)); foreach ($subMenus as $name => $extension) { JSubMenuHelper::addEntry(JText::_( $name ), '#" onclick="javascript:document.adminForm.type.value=\''.$extension.'\';submitbutton(\'manage\');', ($extension == $ext)); } require_once( dirname( __FILE__ ) .DS. 'installer' .DS. 'controller.php' ); $controller = new InstallerController( array( 'default_task' => 'installform', 'base_path' => dirname( __FILE__ ) .DS. 'installer' ) ); $task = JRequest::getWord('task'); if( $task == 'install' ){ $task = 'doInstall'; } $controller->execute( $task ); $controller->redirect();elracodelangela/administrator/components/com_jce/css/0000755000176700017710000000000011074451460023657 5ustar essawireessawireelracodelangela/administrator/components/com_jce/css/icons.css0000644000176700017710000000076411074451460025513 0ustar essawireessawire/* CSS Document */ .icon-32-lock { background-image: url(../img/toolbar/icon-32-lock.png); } .icon-32-refresh { background-image: url(../img/toolbar/icon-32-refresh.png); } .icon-remove { height: 20px; background: url(../img/delete.png) no-repeat; padding: 2px; } .icon-add { background: url(../img/add.png) no-repeat; padding: 2px; } .icon-text { margin-left: 20px; } .icon-legend { height: 20px; background: url(../img/icons.png) no-repeat; padding: 2px; }elracodelangela/administrator/components/com_jce/css/layout.css0000644000176700017710000000122611074451460025707 0ustar essawireessawire/* CSS Document */ div.sortableList { cursor: n-resize; } div.sortableList.group { margin: 20px 0px 0px 0px; } div.sortableList ul.sortableRow { background-color: #F0F0EE; border: 1px solid #CCC; margin-bottom: 1px; padding-left: 1px; height: 30px; /*overflow:none;*/ white-space: nowrap; } div.sortableList ul { list-style: none; margin:0px; padding: 0px; height: 30px; } div.sortableList ul li { list-style: none; cursor: move; } li.sortableItem { position: relative; float: left; margin: 3px 1px 1px 0px; border: 1px solid #CCC; } li.sortableItem.spacer { cursor: move; float: left; margin: 1px; } elracodelangela/administrator/components/com_jce/css/index.html0000644000176700017710000000005411074451460025653 0ustar essawireessawireelracodelangela/administrator/components/com_jce/css/styles.css0000644000176700017710000000017611074451460025720 0ustar essawireessawire/* CSS Document */ select.inputbox.levels, select.inputbox.users { width: 200px; } input { vertical-align: middle; } elracodelangela/administrator/components/com_jce/img/0000755000176700017710000000000011074451460023643 5ustar essawireessawireelracodelangela/administrator/components/com_jce/img/icons.png0000644000176700017710000000122511074451460025464 0ustar essawireessawirePNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<'IDAT8˅kPW V,톕"es[СkL݊ 6MV&bQ+ QM Nڏ4sNa9{rI7#bsRԎp ςXa2*6~1L:GZ:_7a|aUEwl|,.,2cuyA+oaCLMXxx>En5P!k.J1|))e98' ވ%Zko+# ϧ k,GA$?ʚ ǹ}pO0;_t*ęE| J+Pw2K=E7׿˯o* e|v`H,Ј ҇E o;ȏP,7$xiahZ~MH-|3˜~R.̶X6S.4pe B]C:;r']{]ki[t29DO P]t{PFP%M}IikS!IENDB`elracodelangela/administrator/components/com_jce/img/add.png0000644000176700017710000000133511074451460025103 0ustar essawireessawirePNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<oIDAT8˥Ka[/Y()%X(olNۖskn.-h;8fEP"jïMGˈ}yພ羹$I.tulu AX:𼂒ZHh1DnZJOJB{Z?`2`S=N$ő=;a &jw qJG#<"N2h8޵`6xցn_+ ~Zto}`x%XЛ͈ hXѿƻ/}BJ_G&|Qr-6Aރ EL⬡\U3:WUh[C6+ 6.f *K͸ܝFq ou4܄?d|XҥMvD` *_[ #A20liR|xq`4w=\uQ m+G|%$5Թ5RO*YGMUO Gqj4ְ(X& s1c˭(LVf RdjQ '-1ATA>U j4,pV"4L$e@.ArBY a~myY])Q8tNLܞt2"I o=CSd)__AF(IENDB`elracodelangela/administrator/components/com_jce/img/delete.png0000644000176700017710000000131311074451460025611 0ustar essawireessawirePNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<]IDAT8˥KSa[nQP2wܦγL[,biaA\Cv_2MlZFjסNMjmkʷ`&.#z<ϓ bVPT3%I{GqRivȅ tz#E6EddJ`DR2<]N ;4Ѿ;m>78ɀQe6LIt殷cq!z |v j/Xi@ %1|hl !|! Y#uUNw]˼ H3u t]E>k%IfoRD:0`~ | (r on3oG0!$V *[W0_-+ dW&2ZfMFVJpiF&B > Rg- ~ CmڴER ឫ p5ްy+21Kawh` #aZ񽞆TZoLѓ`"(?'ˎJvKކ|:G9[aw82 Jw f'ymzsӘTsw__ιIrIENDB`elracodelangela/administrator/components/com_jce/img/index.html0000644000176700017710000000005411074451460025637 0ustar essawireessawireelracodelangela/administrator/components/com_jce/img/toolbar/0000755000176700017710000000000011074451460025305 5ustar essawireessawireelracodelangela/administrator/components/com_jce/img/toolbar/icon-32-refresh.png0000644000176700017710000000272211074451460030624 0ustar essawireessawirePNG  IHDR @LPsBITOhPLTE}Z"Ǡt(ȎAڜZ\|'v׾ ҍuXK׭;yVErB)Ȥ~4j֓d{ڳlTk٥9p̒Х}&C1ͅ֋bZՇLzѝQݥzkTkB?.ȒB~Ъ0s*J޺<xtRNSN] pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j0IDATHO0p ‹!.tBP^1LRVccMchcΎiB|ܯ9ο= *Zi Stm_&b_tre}1b5#._sFc&44LtY[luff(Ľ˶~f~!fGM0cO%t-t:kuubS-A#$h>1W`ۚF1?;)&!d†e@`I qL&L}8yM!8 .l <LdX Mr#8& >5U<l"pA R؎#7Vpl Dk*@A`;$/T߁L-~Np +LC 0P^ˆj>lAaBSty('(T w2Nhf؎Ha(@,'yYA qF8nv''1 * wf2VW  bEm @*D ߠ?cܵR!IENDB`elracodelangela/administrator/components/com_jce/img/toolbar/index.html0000644000176700017710000000005411074451460027301 0ustar essawireessawireelracodelangela/administrator/components/com_jce/img/toolbar/icon-32-lock.png0000644000176700017710000000146611074451460030122 0ustar essawireessawirePNG  IHDR @LPsBITOKPLTEfff{{{̭utskkkŽ~gttRNS%`k pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATH0:KR׻3:N?'&N@bȯA@0}TCɠ ]J@i{jC:q@3Nr:'`o~P dQS)P/s 2DkIʹ鋘@]"Wؒ/SJ CADHxM8N+M@$nL.*$@P&Iɨ+zp@;9ht\&N`Ju:n sc=R*s F`C:Œ,,`n-вe8)2쬴Vtd cxlVWufM!?-kWam7l].CZcn@Ci$ 5a|b(ҁG &ax"t&{&ag$3dbr,jT]0-QwCkJ}}XCFgo7>(-IENDB`elracodelangela/administrator/components/com_jce/editor.php0000644000176700017710000000373611074451460025077 0ustar essawireessawireQuote( $plugin ) . "\n AND published = 1" . "\n AND type = 'plugin'" ; $db->setQuery( $query ); return $db->loadResult(); } switch( $task ){ case 'plugin': $plugin = JRequest::getVar( 'plugin', 'cmd' ); if( checkPlugin( $plugin ) ){ $file = basename( JRequest::getVar( 'file', 'cmd' ) ); $path = JCE_PLUGINS .DS. $plugin; if( is_dir( $path ) && file_exists( $path .DS. $file . '.php' ) ){ include_once $path .DS. $file . '.php'; }else{ JError::raiseError(500, JText::_('File '. $file .' not found!') ); } }else{ JError::raiseError(500, JText::_('Plugin not found!') ); } exit(); break; case 'help': $plugin = JRequest::getVar( 'plugin', 'cmd' ); if( checkPlugin( $plugin ) ){ jimport('joomla.application.component.view'); $help = new JView( $config = array( 'base_path' => JCE_LIBRARIES, 'layout' => 'help' ) ); $help->display(); }else{ JError::raiseError(500, JText::_('Plugin not found!') ); } exit(); break; } ?>elracodelangela/administrator/components/com_jce/index.html0000644000176700017710000000005411074451460025063 0ustar essawireessawireelracodelangela/administrator/components/com_jce/config/0000755000176700017710000000000011074451460024334 5ustar essawireessawireelracodelangela/administrator/components/com_jce/config/index.html0000644000176700017710000000005411074451460026330 0ustar essawireessawireelracodelangela/administrator/components/com_jce/config/views/0000755000176700017710000000000011074451460025471 5ustar essawireessawireelracodelangela/administrator/components/com_jce/config/views/index.html0000644000176700017710000000005411074451460027465 0ustar essawireessawireelracodelangela/administrator/components/com_jce/config/views/config/0000755000176700017710000000000011074451460026736 5ustar essawireessawireelracodelangela/administrator/components/com_jce/config/views/config/index.html0000644000176700017710000000005411074451460030732 0ustar essawireessawireelracodelangela/administrator/components/com_jce/config/views/config/tmpl/0000755000176700017710000000000011074451460027712 5ustar essawireessawireelracodelangela/administrator/components/com_jce/config/views/config/tmpl/index.html0000644000176700017710000000005411074451460031706 0ustar essawireessawireelracodelangela/administrator/components/com_jce/config/views/config/tmpl/default.php0000644000176700017710000001417511074451460032057 0ustar essawireessawire
    params->render('params', 'setup')) : echo $output; else : echo "
    ".JText::_('No Parameters')."
    "; endif;?>
    params->render('params', 'cleanup')) : echo $output; else : echo "
    ".JText::_('No Parameters')."
    "; endif;?>
    params->render('params', 'format')) : echo $output; else : echo "
    ".JText::_('No Parameters ')."
    "; endif;?>
    params->render('params', 'advanced')) : echo $output; else : echo "
    ".JText::_('No Parameters ')."
    "; endif;?>
    params->render('params', 'plugins')) : echo $output; else : echo "
    ".JText::_('No Parameters ')."
    "; endif;?>
    params->render('params', 'other')) : echo $output; else : echo "
    ".JText::_('No Parameters ')."
    "; endif;?>
    params->render('params', 'groups-editor')) : echo $output; else : echo "
    ".JText::_('No Parameters ')."
    "; endif;?>
    params->render('params', 'groups-options')) : echo $output; else : echo "
    ".JText::_('No Parameters ')."
    "; endif;?>
    params->render('params', 'groups-plugins')) : echo $output; else : echo "
    ".JText::_('No Parameters ')."
    "; endif;?>
    elracodelangela/administrator/components/com_jce/config/views/config/view.html.php0000644000176700017710000000313711074451460031370 0ustar essawireessawireload( 'plg_editors_jce', JPATH_SITE ); $client = JRequest::getWord( 'client', 'site' ); $lists = array(); $row =& JTable::getInstance('plugin'); $query = 'SELECT id' . ' FROM #__plugins' . ' WHERE element = "jce"' ; $db->setQuery( $query ); $id = $db->loadResult(); // load the row from the db table $row->load( intval( $id ) ); // get params definitions $params = new JParameter( $row->params, JApplicationHelper::getPath( 'plg_xml', $row->folder .DS. $row->element ), 'plugin' ); $this->assignRef('params', $params); $this->assignRef('client', $client); parent::display($tpl); } }elracodelangela/administrator/components/com_jce/config/controller.php0000644000176700017710000000477211074451460027242 0ustar essawireessawireregisterTask( 'apply', 'save'); } function display( ) { parent::display(); } function cancel( ) { $this->setRedirect( JRoute::_( 'index.php?option=com_jce&client='. $client, false ) ); } function save() { // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('plugin'); $task = $this->getTask(); $client = JRequest::getWord( 'client', 'site' ); $query = 'SELECT id' . ' FROM #__plugins' . ' WHERE element = "jce"' ; $db->setQuery( $query ); $id = $db->loadResult(); $row->load( intval( $id ) ); if (!$row->bind(JRequest::get('post'))) { JError::raiseError(500, $row->getError() ); } if (!$row->check()) { JError::raiseError(500, $row->getError() ); } if (!$row->store()) { JError::raiseError(500, $row->getError() ); } $row->checkin(); if ($client == 'admin') { $where = "client_id=1"; } else { $where = "client_id=0"; } $row->reorder( 'folder = '.$db->Quote( $row->folder ).' AND ordering > -10000 AND ordering < 10000 AND ( '.$where.' )' ); $msg = JText::sprintf( 'Successfully Saved changes to JCE configuration' ); switch ( $task ) { case 'apply': $this->setRedirect( 'index.php?option=com_jce&type=config&client='. $client, $msg ); break; case 'save': default: $this->setRedirect( 'index.php?option=com_jce&client='. $client, $msg ); break; } } }elracodelangela/administrator/components/com_jce/install.php0000644000176700017710000001035311074451460025250 0ustar essawireessawireenqueueMessage( JText::_('Unable to install control panel icon module!') ); } $row = & JTable::getInstance('module'); $row->title = 'JCE Latest News'; $row->ordering = $row->getNextOrder( "position='jce_cpanel'" ); $row->position = 'jce_cpanel'; $row->published = 1; $row->showtitle = 1; $row->iscore = 0; $row->access = 0; $row->client_id = 1; $row->module = 'mod_feed'; $row->params = 'cache=1 cache_time=15 moduleclass_sfx= rssurl=http://www.joomlacontenteditor.net/index.php?option=com_rss&feed=RSS2.0&type=com_frontpage&Itemid=1 rssrtl=0 rsstitle=0 rssdesc=0 rssimage=0 rssitems=3 rssitemdesc=1 word_count=100'; if (!$row->store()) { $mainframe->enqueueMessage( JText::_('Unable to insert feed Module data!') ); } $row = & JTable::getInstance('module'); $row->title = 'JCE Control Panel Icons'; $row->ordering = $row->getNextOrder( "position='jce_icon'" ); $row->position = 'jce_icon'; $row->published = 1; $row->showtitle = 0; $row->iscore = 0; $row->access = 0; $row->client_id = 1; $row->module = 'mod_jcequickicon'; $row->params = ''; if (!$row->store()) { $mainframe->enqueueMessage( JText::_('Unable to insert Control Panel icon Module data!') ); } unset( $row ); } function com_uninstall() { global $mainframe; $db =& JFactory::getDBO(); jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); $path = JPATH_ADMINISTRATOR .DS. 'modules' .DS. 'mod_jcequickicon'; if( !JFolder::delete( $path ) ){ $mainframe->enqueueMessage( JText::_('Unable to remove control panel icon module!') ); } $query = "DELETE FROM #__modules" ." WHERE module = 'mod_feed'" ." AND position = 'jce_cpanel'" ." AND title = 'JCE Latest News'"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to remove Feed Module data!') ); } $query = "DELETE FROM #__modules" ." WHERE module = 'mod_jcequickicon'"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to remove Control Panel icon Module data!') ); } $query = "DROP TABLE IF EXISTS #__jce_plugins"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to remove JCE Plugins Table!'), 'error' ); } $query = "DROP TABLE IF EXISTS #__jce_extensions"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to remove JCE Extensions Table!'), 'error' ); } $query = "DROP TABLE IF EXISTS #__jce_groups"; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to remove JCE Groups Table!'), 'error' ); } // Remove plugin $query = 'DELETE FROM #__plugins' . ' WHERE folder = '. $db->Quote( 'editors' ) . ' AND element = '. $db->Quote( 'jce' ) ; $db->setQuery( $query ); if( !$db->query() ){ $mainframe->enqueueMessage( JText::_('Unable to remove JCE Plugin!'), 'error' ); } if( !JFolder::delete( JPATH_PLUGINS .DS. 'editors' .DS. 'jce' ) ){ $mainframe->enqueueMessage( JText::_('Unable to delete plugin folder!') ); } if( !JFile::delete( JPATH_PLUGINS .DS. 'editors' .DS. 'jce.xml' ) && !JFile::delete( JPATH_PLUGINS .DS. 'editors' .DS. 'jce.php' ) ){ $mainframe->enqueueMessage( JText::_('Unable to delete plugin files!') ); } // Remove languages $exclude = array( 'en-GB.com_jce.ini', 'en-GB.com_jce.xml', 'en-GB.com_jce_media.ini', 'en-GB.com_jce_imgmanager.ini', 'en-GB.com_jce_advlink.ini', 'en-GB.com_jce_paste.ini', 'en-GB.com_jce_spellchecker.ini' ); $files = array_merge( JFolder::files( JPATH_SITE .DS. 'language', '(com_jce)', true, true, $exclude ), JFolder::files( JPATH_ADMINISTRATOR .DS. 'language', '(com_jce)', true, true, array( 'en-GB.com_jce.ini' ) ) ); JFile::delete( $files ); }elracodelangela/administrator/components/com_jce/plugins/0000755000176700017710000000000011074451460024550 5ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/extension.php0000644000176700017710000000342411074451460027300 0ustar essawireessawireloadArray($array['params']); $array['params'] = $registry->toString(); } return parent::bind($array, $ignore); } } ?>elracodelangela/administrator/components/com_jce/plugins/index.html0000644000176700017710000000005411074451460026544 0ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/0000755000176700017710000000000011074451460025705 5ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/layout/0000755000176700017710000000000011074451460027222 5ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/layout/index.html0000644000176700017710000000005411074451460031216 0ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/layout/tmpl/0000755000176700017710000000000011074451460030176 5ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/layout/tmpl/index.html0000644000176700017710000000005411074451460032172 0ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/layout/tmpl/default.php0000644000176700017710000000562611074451460032344 0ustar essawireessawire
    dimensions['width'] + 100; $sortid = array(); for( $i=0; $iitems ); $i++ ){ $r = $i + 1; $sortid[] = "'row". $r ."'"; ?>
      items[$i] as $item ){ $n = "row_li_". $item->id; $path = $item->type == 'command' ? '../plugins/editors/jce/tiny_mce/themes/advanced/img/'. $item->layout .'.gif' : '../plugins/editors/jce/tiny_mce/plugins/'. $item->name .'/img/'. $item->layout .'.gif'; ?>
    • <?php echo $item->title;?>
    elracodelangela/administrator/components/com_jce/plugins/views/layout/view.html.php0000644000176700017710000000356611074451460031662 0ustar essawireessawireparams ); $num = intval( $params->get( 'layout_rows', 5 ) ); $rows = array(); for($i=1; $i<=$num; $i++){ $query = "SELECT id, title, name, type, layout, icon" . "\n FROM #__jce_plugins" . "\n WHERE row = ". $i ."" . "\n AND published = 1" . "\n AND icon != ''" . "\n ORDER BY ordering ASC" ; $db->setQuery( $query ); $rows[] = $db->loadObjectList(); } $dimensions['width'] = $params->get( 'width', '600' ); $dimensions['height'] = $params->get( 'height', '600' ); if ($client == 'admin') { $client_id = 1; } else { $client_id = 0; } $this->assignRef('dimensions', $dimensions); $this->assignRef('client', $client_id); $this->assignRef('items', $rows); parent::display($tpl); } }elracodelangela/administrator/components/com_jce/plugins/views/index.html0000644000176700017710000000005411074451460027701 0ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/plugin/0000755000176700017710000000000011074451460027203 5ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/plugin/index.html0000644000176700017710000000005411074451460031177 0ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/plugin/tmpl/0000755000176700017710000000000011074451460030157 5ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/plugin/tmpl/form.php0000644000176700017710000001413411074451460031636 0ustar essawireessawire [' .JText::_('Edit'). ']', 'plugin.png' ); JToolBarHelper::save(); JToolBarHelper::apply(); JToolBarHelper::cancel( 'cancelEdit', 'Close' ); JToolBarHelper::help( 'screen.plugins.edit' ); ?> plugin, ENT_QUOTES, '' ); ?> plugin->nameA = ''; if ( $this->plugin->id ) { $row->nameA = '[ '. $this->plugin->name .' ]'; } $icon_disabled = $this->plugin->row == '0' ? ' disabled="disabled"' : ''; $layout_disabled = $this->plugin->row == '0' ? ' disabled="disabled"' : ''; ?>
    : lists['published']; ?>
    plugin->type; ?>
    />.gif
    />.gif
    : lists['row']; ?>
    : lists['ordering']; ?>
    : plugin->description ) ); ?>
    : plugin->preview );?>
    startPane("plugin-pane"); if($this->params->getNumParams('standard')) { echo $pane->startPanel(JText :: _('STANDARD'), "standard-page"); if($output = $this->params->render('params', 'standard')) : echo $output; else : echo "
    ".JText::_('There are no parameters for this item')."
    "; endif; echo $pane->endPanel(); } if ($this->params->getNumParams('advanced')) { echo $pane->startPanel(JText :: _('ADVANCED'), "advanced-page"); if($output = $this->params->render('params', 'advanced')) : echo $output; else : echo "
    ".JText::_('There are no advanced parameters for this item')."
    "; endif; echo $pane->endPanel(); } if ($this->params->getNumParams('defaults')) { echo $pane->startPanel(JText :: _('DEFAULTS'), "defaults-page"); if($output = $this->params->render('params', 'defaults')) : echo $output; else : echo "
    ".JText::_('There are no defaults parameters for this item')."
    "; endif; echo $pane->endPanel(); } if ($this->params->getNumParams('access')) { echo $pane->startPanel(JText :: _('PERMISSIONS'), "access-page"); if($output = $this->params->render('params', 'access')) : echo $output; else : echo "
    ".JText::_('There are no access parameters for this item')."
    "; endif; echo $pane->endPanel(); } echo $pane->endPane(); ?>
    elracodelangela/administrator/components/com_jce/plugins/views/plugin/tmpl/index.html0000644000176700017710000000005411074451460032153 0ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/plugin/view.html.php0000644000176700017710000001043411074451460031633 0ustar essawireessawireload( $cid[0] ); // fail if checked out not by 'me' if ($row->isCheckedOut( $user->get('id') )) { $msg = JText::sprintf( 'DESCBEINGEDITTED', JText::_( 'The plugin' ), $row->title ); $this->setRedirect( 'index.php?option='. $option .'&type=plugin', $msg, 'error' ); return false; } $path = JPATH_PLUGINS .DS. 'editors' .DS. 'jce' .DS. 'tiny_mce' .DS. 'plugins' .DS. $row->name; $url = $mainframe->getSiteURL(). 'plugins/editors/jce/tiny_mce/plugins/' .$row->name; $xmlPath = $path .DS. $row->name .'.xml'; if ($cid[0]) { $row->checkout( $user->get('id') ); if ( $row->ordering > 0 && $row->ordering < 100 ) { // build the html select list for ordering $query = 'SELECT ordering AS value, title AS text' . ' FROM #__jce_plugins' . ' WHERE name = "'. $row->name. '"' . ' AND published > 0' . ' AND ordering > 0' . ' AND ordering < 100' . ' ORDER BY ordering' ; $order = JHTML::_('list.genericordering', $query ); $lists['ordering'] = JHTML::_('select.genericlist', $order, 'ordering', 'class="inputbox" size="1"', 'value', 'text', intval( $row->ordering ) ); } else { $lists['ordering'] = ''. JText::_( 'This plugin cannot be reordered' ); } $lang =& JFactory::getLanguage(); $lang->load( 'com_jce_' . trim( $row->name ), JPATH_SITE ); $data = JApplicationHelper::parseXMLInstallFile( $xmlPath ); $row->description = $data['description']; } else { $row->type = 'plugin'; $row->row = 4; $row->ordering = 1; $row->published = 1; $row->details = 'From XML file'; $row->icon = ''; $row->layout = ''; $row->params = ''; $row->description = ''; $ordering = array(); for($i=1; $i<31; $i++){ $ordering[] = JHTML::_( 'select.option', $i, $i ); } $lists['ordering'] = JHTML::_('select.genericlist', $ordering, 'ordering', 'class="inputbox" size="1"', 'value', 'text', '' ); } $row_list = array( JHTML::_( 'select.option', '1','1' ), JHTML::_( 'select.option', '2','2' ), JHTML::_( 'select.option', '3','3' ), JHTML::_( 'select.option', '4','4' ) ); if ( $row->row > 0 ){ $lists['row'] = JHTML::_('select.genericlist', $row_list, 'row', 'class="inputbox" size="1"', 'value', 'text', intval( $row->row ) ); }else{ $lists['row'] = ''. JText::_( 'This plugin\'s row cannot be altered' ); } $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published ); $row->preview = file_exists( $path .DS. 'img' .DS. 'preview.jpg' ) ? 'Preview' : JText::_( 'No Preview Available' ); // get params definitions $params = new JParameter( $row->params, $xmlPath ); $this->assignRef('lists', $lists); $this->assignRef('plugin', $row); $this->assignRef('params', $params); parent::display($tpl); } }elracodelangela/administrator/components/com_jce/plugins/views/plugins/0000755000176700017710000000000011074451460027366 5ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/plugins/index.html0000644000176700017710000000005411074451460031362 0ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/plugins/tmpl/0000755000176700017710000000000011074451460030342 5ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/plugins/tmpl/index.html0000644000176700017710000000005411074451460032336 0ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/plugins/tmpl/default.php0000644000176700017710000001251711074451460032505 0ustar essawireessawire items; ?>
    : lists['type']; echo $this->lists['state']; ?>
    id ); $checked = JHTML::_('grid.checkedout', $row, $i ); $published = JHTML::_('grid.published', $row, $i ); $ordering = ($this->lists['order'] == 'p.type'); ?> ">
    lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?>
    pagination->getListFooter(); ?>
    pagination->getRowOffset( $i ); ?> user->get ('id'), $row->checked_out ) || !$row->editable ) { echo $row->title; } else { ?> title; ?> row;?> ordering;?> type;?> name;?> type == 'plugin' && $row->layout ){ echo ''. $row->name .''; } if( $row->type == 'command' ){ echo ''. $row->name .''; }?> id;?>
    elracodelangela/administrator/components/com_jce/plugins/views/plugins/view.html.php0000644000176700017710000001044011074451460032013 0ustar essawireessawiregetUserStateFromRequest( "$option.$type.$task.$client.filter_order", 'filter_order', 'p.type', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( "$option.$type.$task.$client.filter_order_Dir", 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( "$option.$type.$task.$client.filter_state", 'filter_state', '', 'word' ); $filter_type = $mainframe->getUserStateFromRequest( "$option.$type.$task.$client.filter_type", 'filter_type', 1, 'cmd' ); $search = $mainframe->getUserStateFromRequest( "$option.$type.$task.$client.search", 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( '$option.$type.$task.$client.limitstart', 'limitstart', 0, 'int' ); $limitstart = isset( $limitstart->plugin ) ? $limitstart->plugin : $limitstart; $where = array(); // used by filter if ( $filter_type != 1 ) { $where[] = 'p.type = "'.$filter_type.'"'; } if ( $search ) { $where[] = 'LOWER( p.name ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'p.published = 1'; } else if ($filter_state == 'U' ) { $where[] = 'p.published = 0'; } } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '.$filter_order .' '. $filter_order_Dir .', p.row ASC'; // get the total number of records $query = 'SELECT COUNT(*)' . ' FROM #__jce_plugins AS p' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pagination = new JPagination( $total, $limitstart, $limit ); $query = 'SELECT p.*, u.name AS editor' . ' FROM #__jce_plugins AS p' . ' LEFT JOIN #__users AS u ON u.id = p.checked_out' . $where . ' GROUP BY p.id' . $orderby ; $db->setQuery( $query, $pagination->limitstart, $pagination->limit ); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } // get list of Positions for dropdown filter $query = 'SELECT type AS value, type AS text' . ' FROM #__jce_plugins' . ' GROUP BY type' . ' ORDER BY type' ; $types[] = JHTML::_('select.option', 1, '- '. JText::_( 'Select Type' ) .' -' ); $db->setQuery( $query ); $types = array_merge( $types, $db->loadObjectList() ); $lists['type'] = JHTML::_('select.genericlist', $types, 'filter_type', 'class="inputbox" size="1" onchange="document.adminForm.submit();"', 'value', 'text', $filter_type ); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search'] = $search; $this->assignRef('user', JFactory::getUser()); $this->assignRef('lists', $lists); $this->assignRef('items', $rows); $this->assignRef('pagination', $pagination); parent::display($tpl); } }elracodelangela/administrator/components/com_jce/plugins/views/access/0000755000176700017710000000000011074451460027146 5ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/access/index.html0000644000176700017710000000005411074451460031142 0ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/access/tmpl/0000755000176700017710000000000011074451460030122 5ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/access/tmpl/index.html0000644000176700017710000000005411074451460032116 0ustar essawireessawireelracodelangela/administrator/components/com_jce/plugins/views/access/tmpl/default.php0000644000176700017710000000177611074451460032272 0ustar essawireessawire
    lists;?>
    elracodelangela/administrator/components/com_jce/plugins/views/access/view.html.php0000644000176700017710000000225311074451460031576 0ustar essawireessawireassignRef('lists', $lists); parent::display($tpl); } }elracodelangela/administrator/components/com_jce/plugins/plugin.php0000644000176700017710000000453711074451460026570 0ustar essawireessawireloadArray($array['params']); $array['params'] = $registry->toString(); } return parent::bind($array, $ignore); } } ?>elracodelangela/administrator/components/com_jce/plugins/controller.php0000644000176700017710000001633711074451460027456 0ustar essawireessawireregisterTask( 'apply', 'save'); $this->registerTask( 'unpublish', 'publish'); $this->registerTask( 'edit' , 'display' ); $this->registerTask( 'add' , 'display' ); $this->registerTask( 'orderup' , 'order' ); $this->registerTask( 'orderdown' , 'order' ); $this->registerTask( 'layout' , 'display' ); $this->registerTask( 'layoutsave' , 'layoutsave' ); } function display( ) { switch($this->getTask()) { case 'add' : case 'edit' : { JRequest::setVar( 'hidemainmenu', 1 ); JRequest::setVar( 'layout', 'form' ); JRequest::setVar( 'view', 'plugin' ); } break; case 'layout' : { JRequest::setVar( 'view', 'layout' ); } break; } parent::display(); } function save() { // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('plugin', 'JCETable'); $task = $this->getTask(); if (!$row->bind(JRequest::get('post'))) { JError::raiseError(500, $row->getError() ); } if (!$row->check()) { JError::raiseError(500, $row->getError() ); } if (!$row->store()) { JError::raiseError(500, $row->getError() ); } $row->checkin(); $row->reorder( 'type = '.$db->Quote($row->type).' AND ordering > -10000 AND ordering < 10000' ); switch ( $task ) { case 'apply': $msg = JText::sprintf( 'Successfully Saved changes to Plugin', $row->title ); $this->setRedirect( 'index.php?option=com_jce&type=plugin&view=plugin&task=edit&cid[]='. $row->id, $msg ); break; case 'save': default: $msg = JText::sprintf( 'Successfully Saved Plugin', $row->title ); $this->setRedirect( 'index.php?option=com_jce&type=plugin', $msg ); break; } } function layoutsave( ){ // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $db =& JFactory::getDBO(); $rows = JRequest::getVar( 'layout' ); if( $rows ){ $plugin =& JPluginHelper::getPlugin('editors', 'jce'); $params = new JParameter( $plugin->params ); $num = intval( $params->get( 'layout_rows', 5 ) ); for( $i=1; $i <= $num; $i++ ){ $items = JCEHelper::getOrderArray( $rows, 'row' . $i ); foreach( $items as $item ){ $row =& JTable::getInstance('plugin', 'JCETable'); $row->load( $item['element'] ); $row->row = $i; $row->ordering = $item['order']; if ( !$row->check() ) { return $row->getError(); } if ( !$row->store() ) { return $row->getError(); } } } } $this->setRedirect( 'index.php?option=com_jce&type=plugin&tmpl=component&task=layout', JText::_('New Layout Saved') ); } function publish( ){ // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $publish = ( $this->getTask() == 'publish' ? 1 : 0 ); if (count( $cid ) < 1) { $action = $publish ? JText::_( 'publish' ) : JText::_( 'unpublish' ); JError::raiseError(500, JText::_( 'Select a plugin to '.$action ) ); } $cids = implode( ',', $cid ); $query = 'UPDATE #__jce_plugins SET published = '.(int) $publish . ' WHERE id IN ( '.$cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id').' ))' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } if (count( $cid ) == 1) { $row =& JTable::getInstance('plugin', 'JCETable'); $row->checkin( $cid[0] ); } $this->setRedirect( 'index.php?option=com_jce&type=plugin' ); } function cancel( ){ $this->setRedirect( JRoute::_( 'index.php?option=com_jce', false ) ); } function cancelEdit( ) { // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('plugin', 'JCETable'); $row->bind(JRequest::get('post')); $row->checkin(); $this->setRedirect( JRoute::_( 'index.php?option=com_jce&type=plugin', false ) ); } function order( ) { // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $uid = $cid[0]; $inc = ( $this->getTask() == 'orderup' ? -1 : 1 ); $row =& JTable::getInstance('plugin', 'JCETable'); $row->load( $uid ); $row->move( $inc, 'name='.$db->Quote($row->name).' AND ordering > -10000 AND ordering < 10000' ); $this->setRedirect( 'index.php?option=com_jce&type=plugin' ); } function saveorder( ) { // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $db =& JFactory::getDBO(); $total = count( $cid ); $order = JRequest::getVar( 'order', array(0), 'post', 'array' ); JArrayHelper::toInteger($order, array(0)); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); $row =& JTable::getInstance('plugin', 'JCETable'); $conditions = array(); // update ordering values for ( $i=0; $i < $total; $i++ ) { $row->load( (int) $cid[$i] ); if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { JError::raiseError(500, $db->getErrorMsg() ); } // remember to updateOrder this group $condition = 'type = '.$db->Quote($row->type).' AND ordering > -10000 AND ordering < 10000'; $found = false; foreach ( $conditions as $cond ) { if ($cond[1]==$condition) { $found = true; break; } } if (!$found) $conditions[] = array($row->id, $condition); } } // execute updateOrder for each group foreach ( $conditions as $cond ) { $row->load( $cond[0] ); $row->reorder( $cond[1] ); } $msg = JText::_( 'New ordering saved' ); $this->setRedirect( 'index.php?option=com_jce&type=plugin', $msg ); } }elracodelangela/administrator/components/com_jce/admin.jce.php0000644000176700017710000001027111074451460025431 0ustar essawireessawireaddACL( 'com_jce', $task, 'users', 'super administrator' ); $acl->addACL( 'com_jce', $task, 'users', 'administrator' ); // Uncomment to allow Manager access //$acl->addACL( 'com_jce', $task, 'users', 'manager' ); if (!$user->authorize( 'com_jce', $task )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } require_once( dirname( __FILE__ ) .DS. 'helper.php' ); if( JRequest::getVar( 'redirected' ) ){ require_once( dirname( __FILE__ ) .DS. 'cpanel.php' ); return false; } $option = JRequest::getCmd( 'option' ); $type = JRequest::getCmd( 'type' ); /* * Installer error fallback functions */ if( $type == 'fixinstall-editor' ){ JCEHelper::fixEditor(); } if( $type == 'fixinstall-plugins' ){ JCEHelper::fixPlugins(); } if( $type == 'fixinstall-groups' ){ JCEHelper::fixGroups(); } /* * Check for installations */ if( !JCEHelper::checkEditor() ){ $mainframe->redirect( 'index.php?option=com_jce&redirected=1', JText::_('Editor is not enabled. Please enable the editor in the Joomla! Plugin Manager.') ); } if( !JCEHelper::checkEditorPath() ){ $mainframe->redirect( 'index.php?option=com_jce&redirected=1', JText::_('Editor files missing. Please install Editor Plugin or follow manual install instructions.') ); } if( !JCEHelper::checkPlugins() ){ $mainframe->redirect( 'index.php?option=com_jce&redirected=1', JText::_('The plugins database was not created during install. Click the Fix Plugins button below to complete the installation.') ); } if( !JCEHelper::checkGroups() ){ $mainframe->redirect( 'index.php?option=com_jce&redirected=1', JText::_('The groups database was not created during install. Click the Fix Groups button below to complete the installation.') ); } $client = JRequest::getWord( 'client', 'site' ); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); switch( $type ){ case 'plugin': switch( $task ){ case 'install': case 'remove': case 'manage': require_once( dirname( __FILE__ ) .DS. 'installer.php' ); break; case 'view': default: require_once( dirname( __FILE__ ) .DS. 'plugin.php' ); break; } break; case 'group': switch( $task ){ case 'view': default: require_once( dirname( __FILE__ ) .DS. 'groups.php' ); break; } break; case 'language': switch( $task ){ case 'install': case 'remove': case 'manage': require_once( dirname( __FILE__ ) .DS. 'installer.php' ); break; default: require_once( dirname( __FILE__ ) .DS. 'cpanel.php' ); break; } break; case 'extension': switch( $task ){ case 'install': case 'remove': case 'manage': require_once( dirname( __FILE__ ) .DS. 'installer.php' ); break; default: require_once( dirname( __FILE__ ) .DS. 'plugin.php' ); break; } break; case 'config': require_once( dirname( __FILE__ ) .DS. 'config.php' ); break; case 'install': require_once( dirname( __FILE__ ) .DS. 'installer.php' ); break; default: switch( $task ){ case 'install': require_once( dirname( __FILE__ ) .DS. 'installer.php' ); break; default: require_once( dirname( __FILE__ ) .DS. 'cpanel.php' ); break; } break; } ?> elracodelangela/administrator/components/com_jce/cpanel/0000755000176700017710000000000011074451460024331 5ustar essawireessawireelracodelangela/administrator/components/com_jce/cpanel/index.html0000644000176700017710000000005411074451460026325 0ustar essawireessawireelracodelangela/administrator/components/com_jce/cpanel/views/0000755000176700017710000000000011074451460025466 5ustar essawireessawireelracodelangela/administrator/components/com_jce/cpanel/views/index.html0000644000176700017710000000005411074451460027462 0ustar essawireessawireelracodelangela/administrator/components/com_jce/cpanel/views/cpanel/0000755000176700017710000000000011074451460026730 5ustar essawireessawireelracodelangela/administrator/components/com_jce/cpanel/views/cpanel/index.html0000644000176700017710000000005411074451460030724 0ustar essawireessawireelracodelangela/administrator/components/com_jce/cpanel/views/cpanel/tmpl/0000755000176700017710000000000011074451460027704 5ustar essawireessawireelracodelangela/administrator/components/com_jce/cpanel/views/cpanel/tmpl/index.html0000644000176700017710000000005411074451460031700 0ustar essawireessawireelracodelangela/administrator/components/com_jce/cpanel/views/cpanel/tmpl/default.php0000644000176700017710000001144611074451460032047 0ustar essawireessawire
    pane->startPane("content-pane"); // Bug in Joomla! 1.5.3 an below might cause problems with Feed. $v = version_compare( $version->getShortVersion(), '1.5.3' ); foreach ($this->modules as $module) { $title = $module->title ; echo $this->pane->startPanel( $title, 'cpanel-panel-'.$module->name ); if( $v == -1 && $module->name == 'feed' ){ echo '
    • '. JText::_('Feed disabled. Please upgrade Joomla! to the latest version.') .'
    '; }else{ echo JModuleHelper::renderModule( $module ); } echo $this->pane->endPanel(); } echo $this->pane->endPane();?>
    www.joomlacontenteditor.com/forum
    www.joomlacontenteditor.com/tutorials
    www.joomlacontenteditor.com/documentation
    www.joomlacontenteditor.com/faq
    GNU/GPL
    com_info['version'];?>
    plg_info['version'];?>
    elracodelangela/administrator/components/com_jce/cpanel/views/cpanel/view.html.php0000644000176700017710000000333511074451460031362 0ustar essawireessawireassignRef('icons', $icons); $this->assignRef('pane', $pane); $this->assignRef('modules', $modules); $this->assignRef('com_info', $com_xml); $this->assignRef('plg_info', $plg_xml); parent::display($tpl); } } ?>elracodelangela/administrator/components/com_jce/cpanel/controller.php0000644000176700017710000000204511074451460027226 0ustar essawireessawire dirname( __FILE__ ) .DS. 'plugins' ) ); $controller->execute( JRequest::getCmd( 'task' ) ); $controller->redirect(); ?> elracodelangela/administrator/components/com_jce/admin.jce.xml0000644000176700017710000003051011074451460025440 0ustar essawireessawire JCE Ryan Demmer 01 August 2008 (C) 2005 - 2008 Ryan Demmer. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL ryandemmer@gmail.com www.joomlacontenteditor.net 1.5.0 Stable JCE Administration Component 1.5.0 Stable

    Changelog (from 1.5.0 RC4):

    • Fixed: User State variables in Admin Component
    • Fixed: Default parameters for Default group
    • Added: Group Manager Copy Group
    • Added: Group Edit Component restrictions
    • Added: Group Edit Types Add All/Remove All
    • Added: Group Edit Option for all additional plugins
    • Added: Group Edit Plugin parameters hidden unless plugin in Editor Layout
    • Added: Group Edit Plugin Extension Parameters
    • Added: Group Edit Plugin Parameters and Editor Configuration used as default parameters for new groups
    • Added: Group Edit Plugin Parameters and Editor Configuration used as default parameters for new groups
    • Update: Reorganized Configuration
    • Update: Reorganized Control Panel, added version and support information.
    • Update: Uninstalling the component removes the editor and all plugins!

    Changelog (from 1.5.0 RC3):

    • Fixed: Difficult layout icon re-ordering
    • Added: Fix Groups button for installations that fail to install groups tables!
    • Added: New window popup code. Adds some better javascript and css.
    • Added: Groups table check/fix.
    • Changed: Default Group parameters not added on install

    Changelog (from 1.5.0 RC2):

    • Added: JCE Groups Permissions System
    • Added: Preview image in plugin view

    Changelog (from 1.5.0 RC1):

    • Added: Control Panel now uses modules for feed and buttons.

    Changelog (from 1.5.0 beta 2):

    • Added: Control Panel menu option
    • Added: Component DB Install Fixer

    Changelog (from 1.5.0 beta 1):

    • Fixed: Various errors in installer and plugins view
    • Fixed: SQL errors

    ]]>
    GNU/GPL Ryan Demmer ryandemmer@gmail.com http://www.joomlacontenteditor.net 2006 - 2008 Ryan Demmer sql/install.mysql.sql sql/uninstall.mysql.sql install.php install.php index.html jce.php popup.php css/popup.css css/index.html js/popup.js js/index.html en-GB.com_jce.ini en-GB.com_jce.xml en-GB.com_jce_advlink.ini en-GB.com_jce_browser.ini en-GB.com_jce_imgmanager.ini en-GB.com_jce_media.ini en-GB.com_jce_paste.ini en-GB.com_jce_spellchecker.ini JCE Administration Control Panel Configuration Groups Plugins Install admin.jce.php index.html install.php helper.php config.php config/controller.php config/index.html config/views/config/index.html config/views/config/tmpl/default.php config/views/config/tmpl/index.html config/views/config/view.html.php config/views/index.html cpanel.php cpanel/controller.php cpanel/index.html cpanel/views/cpanel/index.html cpanel/views/cpanel/tmpl/default.php cpanel/views/cpanel/tmpl/index.html cpanel/views/cpanel/view.html.php cpanel/views/index.html css/icons.css css/index.html css/layout.css css/styles.css editor.php groups.php groups/index.html groups/controller.php groups/groups.php groups/helper.php groups/views/index.html groups/views/group/index.html groups/views/group/view.html.php groups/views/group/tmpl/form.php groups/views/group/tmpl/index.html groups/views/groups/index.html groups/views/groups/view.html.php groups/views/groups/tmpl/default.php groups/views/groups/tmpl/index.html groups/views/legend/index.html groups/views/legend/view.html.php groups/views/legend/tmpl/default.php groups/views/legend/tmpl/index.html groups/views/users/index.html groups/views/users/view.html.php groups/views/users/tmpl/default.php groups/views/users/tmpl/index.html plugin.php plugins/controller.php plugins/extension.php plugins/index.html plugins/plugin.php plugins/views/access/index.html plugins/views/access/tmpl/default.php plugins/views/access/tmpl/index.html plugins/views/access/view.html.php plugins/views/index.html plugins/views/layout/index.html plugins/views/layout/tmpl/default.php plugins/views/layout/tmpl/index.html plugins/views/layout/view.html.php plugins/views/plugin/index.html plugins/views/plugin/tmpl/form.php plugins/views/plugin/tmpl/index.html plugins/views/plugin/view.html.php plugins/views/plugins/index.html plugins/views/plugins/tmpl/default.php plugins/views/plugins/tmpl/index.html plugins/views/plugins/view.html.php img/index.html img/add.png img/delete.png img/icons.png img/toolbar/icon-32-lock.png img/toolbar/icon-32-refresh.png img/toolbar/index.html installer.php installer/adapters/extension.php installer/adapters/index.html installer/adapters/language.php installer/adapters/plugin.php installer/controller.php installer/index.html installer/installer.php installer/models/extension.php installer/models/extensions.php installer/models/index.html installer/models/install.php installer/models/language.php installer/models/plugin.php installer/views/default/index.html installer/views/default/tmpl/default_ftp.php installer/views/default/tmpl/default_message.php installer/views/default/tmpl/index.html installer/views/default/view.php installer/views/extension/index.html installer/views/extension/tmpl/default.php installer/views/extension/tmpl/default_item.php installer/views/extension/tmpl/index.html installer/views/extension/view.php installer/views/index.html installer/views/install/index.html installer/views/install/tmpl/default.php installer/views/install/tmpl/default_form.php installer/views/install/tmpl/index.html installer/views/install/view.php installer/views/language/index.html installer/views/language/tmpl/default.php installer/views/language/tmpl/default_item.php installer/views/language/tmpl/index.html installer/views/language/view.php installer/views/plugin/index.html installer/views/plugin/tmpl/default.php installer/views/plugin/tmpl/default_item.php installer/views/plugin/tmpl/index.html installer/views/plugin/view.php js/index.html js/scripts.js js/sortables.js modules/mod_jcequickicon/index.html modules/mod_jcequickicon/mod_jcequickicon.php modules/mod_jcequickicon/mod_jcequickicon.xml sql/install.mysql.sql sql/uninstall.mysql.sql en-GB.com_jce.ini
    elracodelangela/administrator/components/com_jce/installer/0000755000176700017710000000000011074451460025064 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/adapters/0000755000176700017710000000000011074451460026667 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/adapters/extension.php0000644000176700017710000002405711074451460031424 0ustar essawireessawireparent =& $parent; } /** * Custom install method * * @access public * @return boolean True on success * @since 1.5 * Minor alteration - see below */ function install() { // Get a database connector object $db =& $this->parent->getDBO(); // Get the extension manifest object $manifest =& $this->parent->getManifest(); $this->manifest =& $manifest->document; /** * --------------------------------------------------------------------------------------------- * Manifest Document Setup Section * --------------------------------------------------------------------------------------------- */ // Set the component name $name =& $this->manifest->getElementByPath('name'); $this->set('name', $name->data()); // Get the component description $description = & $this->manifest->getElementByPath('description'); if (is_a($description, 'JSimpleXMLElement')) { $this->parent->set('message', $description->data()); } else { $this->parent->set('message', '' ); } $element =& $this->manifest->getElementByPath('files'); $ename = $this->manifest->attributes('extension'); $pname = $this->manifest->attributes('plugin'); $folder = $this->manifest->attributes('folder'); // - Removed group if (!empty ($pname)) { // ^ Use JCE_PLUGINS defined path $this->parent->setPath('extension_root', JCE_PLUGINS .DS. $pname .DS. 'extensions' .DS. $folder); } else { $this->parent->abort('Extension Install: '.JText::_('No JCE plugin file specified')); return false; } /** * --------------------------------------------------------------------------------------------- * Filesystem Processing Section * --------------------------------------------------------------------------------------------- */ // If the extension directory does not exist, lets create it $created = false; if (!file_exists($this->parent->getPath('extension_root'))) { if (!$created = JFolder::create($this->parent->getPath('extension_root'))) { $this->parent->abort('Extension Install: '.JText::_('Failed to create directory').': "'.$this->parent->getPath('extension_root').'"'); return false; } } /* * If we created the extension directory and will want to remove it if we * have to roll back the installation, lets add it to the installation * step stack */ if ($created) { $this->parent->pushStep(array ('type' => 'folder', 'path' => $this->parent->getPath('extension_root'))); } // Copy all necessary files if ($this->parent->parseFiles($element, -1) === false) { // Install failed, roll back changes $this->parent->abort(); return false; } // Parse optional tags -- language files for plugins $this->parent->parseLanguages($this->manifest->getElementByPath('languages'), 0); /** * --------------------------------------------------------------------------------------------- * Database Processing Section * --------------------------------------------------------------------------------------------- */ // Check to see if a plugin by the same name is already installed // ^ Altered db query for #__jce_extensions $query = 'SELECT `id`' . ' FROM `#__jce_extensions`' . ' WHERE extension = '.$db->Quote( $ename ); $db->setQuery($query); if (!$db->Query()) { // Install failed, roll back changes $this->parent->abort('Extension Install: '.$db->stderr(true)); return false; } $id = $db->loadResult(); // Was there a module already installed with the same name? if ($id) { if (!$this->parent->getOverwrite()) { // Install failed, roll back changes $this->parent->abort('Extension Install: '.JText::_('Extension').' "'.$ename.'" '.JText::_('already exists!')); return false; } } else { $query = 'SELECT `id`' . ' FROM `#__jce_plugins`' . ' WHERE name = '.$db->Quote( $pname ); $db->setQuery($query); if (!$db->Query()) { // Install failed, roll back changes $this->parent->abort('Plugin not installed: '.$db->stderr(true)); return false; } $pid = $db->loadResult(); // ^ Changes to plugin parameters. Use JCEPluginsTable class. $row =& JTable::getInstance('extension', 'JCETable'); $row->pid = $pid; $row->name = $this->get('name'); $row->extension = $this->manifest->attributes('extension'); $row->folder = $this->manifest->attributes('folder'); $row->published = 1; if (!$row->store()) { // Install failed, roll back changes $this->parent->abort('Extension Install: '.$db->stderr(true)); return false; } // Since we have created a plugin item, we add it to the installation step stack // so that if we have to rollback the changes we can undo it. $this->parent->pushStep(array ('type' => 'extension', 'id' => $row->id)); } /** * --------------------------------------------------------------------------------------------- * Finalization and Cleanup Section * --------------------------------------------------------------------------------------------- */ // Lastly, we will copy the manifest file to its appropriate place. if (!$this->parent->copyManifest(-1)) { // Install failed, rollback changes $this->parent->abort('Extension Install: '.JText::_('Could not copy setup file')); return false; } return true; } /** * Custom uninstall method * * @access public * @param int $cid The id of the plugin to uninstall * @param int $clientId The id of the client (unused) * @return boolean True on success * @since 1.5 */ function uninstall($id, $clientId ) { // Initialize variables $row = null; $retval = true; $db =& $this->parent->getDBO(); // First order of business will be to load the module object table from the database. // This should give us the necessary information to proceed. $row =& JTable::getInstance('extension', 'JCETable'); $row->load((int) $id); $query = 'SELECT name' . ' FROM #__jce_plugins' . ' WHERE id = '. $row->pid; $db->setQuery($query); if (!$db->Query()) { // Install failed, roll back changes $this->parent->abort('Plugin not installed: '.$db->stderr(true)); return false; } $file = $db->loadResult(); // Get the extension folder so we can properly build the plugin path if (trim($row->extension) == '') { JError::raiseWarning(100, 'Extension Uninstall: '.JText::_('Extension field empty, cannot remove files')); return false; } // Set the plugin root path $this->parent->setPath('extension_root', JCE_PLUGINS . DS . $file .DS. 'extensions' .DS. $row->folder); $manifestFile = $this->parent->getPath('extension_root') . DS . $row->extension . '.xml'; if (file_exists($manifestFile)) { $xml =& JFactory::getXMLParser('Simple'); // If we cannot load the xml file return null if (!$xml->loadFile($manifestFile)) { JError::raiseWarning(100, 'Extension Uninstall: '.JText::_('Could not load manifest file')); return false; } /* * Check for a valid XML root tag. */ $root =& $xml->document; if ($root->name() != 'install') { JError::raiseWarning(100, 'Extension Uninstall: '.JText::_('Invalid manifest file')); return false; } // Remove the extension files $this->parent->removeFiles($root->getElementByPath('files'), -1); // Remove all media and languages as well $this->parent->removeFiles($root->getElementByPath('languages'), 0); JFile::delete($manifestFile); } else { JError::raiseWarning(100, 'Extension Uninstall: Manifest File invalid or not found. Extension entry removed from database.'); $row->delete($row->id); unset ($row); return false; } // Now we will no longer need the plugin object, so lets delete it $row->delete($row->id); unset ($row); // If the folder is empty, let's delete it $files = JFolder::files($this->parent->getPath('extension_root')); if (!count($files)) { JFolder::delete($this->parent->getPath('extension_root')); } return $retval; } /** * Custom rollback method * - Roll back the plugin item * * @access public * @param array $arg Installation step to rollback * @return boolean True on success * @since 1.5 * Minor changes to the db query */ function _rollback_plugin($arg) { // Get database connector object $db =& $this->parent->getDBO(); // Remove the entry from the #__jce_extensions table $query = 'DELETE' . ' FROM `#__jce_extensions`' . ' WHERE id='.(int)$arg['id']; $db->setQuery($query); return ($db->query() !== false); } }elracodelangela/administrator/components/com_jce/installer/adapters/index.html0000644000176700017710000000005411074451460030663 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/adapters/plugin.php0000644000176700017710000004327211074451460030706 0ustar essawireessawireparent =& $parent; } /** * Custom install method * * @access public * @return boolean True on success * @since 1.5 * Minor alteration - see below */ function install() { // Get a database connector object $db =& $this->parent->getDBO(); // Get the extension manifest object $manifest =& $this->parent->getManifest(); $this->manifest =& $manifest->document; /** * --------------------------------------------------------------------------------------------- * Manifest Document Setup Section * --------------------------------------------------------------------------------------------- */ // Set the component name $name =& $this->manifest->getElementByPath('name'); $this->set('name', $name->data()); // Get the component description $description = & $this->manifest->getElementByPath('description'); if (is_a($description, 'JSimpleXMLElement')) { $this->parent->set('message', $description->data()); } else { $this->parent->set('message', '' ); } $element =& $this->manifest->getElementByPath('files'); // Plugin name is specified $pname = $this->manifest->attributes('plugin'); if (!empty ($pname)) { // ^ Use JCE_PLUGINS defined path $this->parent->setPath('extension_root', JCE_PLUGINS .DS. $pname); } else { $this->parent->abort('Extension Install: '.JText::_('No JCE plugin file specified')); return false; } /** * --------------------------------------------------------------------------------------------- * Filesystem Processing Section * --------------------------------------------------------------------------------------------- */ // If the extension directory does not exist, lets create it $created = false; if (!file_exists($this->parent->getPath('extension_root'))) { if (!$created = JFolder::create($this->parent->getPath('extension_root'))) { $this->parent->abort('Plugin Install: '.JText::_('Failed to create directory').': "'.$this->parent->getPath('extension_root').'"'); return false; } } /* * If we created the extension directory and will want to remove it if we * have to roll back the installation, lets add it to the installation * step stack */ if ($created) { $this->parent->pushStep(array ('type' => 'folder', 'path' => $this->parent->getPath('extension_root'))); } // Copy all necessary files if ($this->parent->parseFiles($element, -1) === false) { // Install failed, roll back changes $this->parent->abort(); return false; } // Parse optional tags -- language files for plugins $this->parent->parseLanguages($this->manifest->getElementByPath('languages'), 0); // If there is an install file, lets copy it. $installScriptElement =& $this->manifest->getElementByPath('installfile'); if (is_a($installScriptElement, 'JSimpleXMLElement')) { // Make sure it hasn't already been copied (this would be an error in the xml install file) if (!file_exists($this->parent->getPath('extension_root').DS.$installScriptElement->data())) { $path['src'] = $this->parent->getPath('source').DS.$installScriptElement->data(); $path['dest'] = $this->parent->getPath('extension_root').DS.$installScriptElement->data(); if (!$this->parent->copyFiles(array ($path))) { // Install failed, rollback changes $this->parent->abort(JText::_('Component').' '.JText::_('Install').': '.JText::_('Could not copy PHP install file.')); return false; } } $this->set('install.script', $installScriptElement->data()); } // If there is an uninstall file, lets copy it. $uninstallScriptElement =& $this->manifest->getElementByPath('uninstallfile'); if (is_a($uninstallScriptElement, 'JSimpleXMLElement')) { // Make sure it hasn't already been copied (this would be an error in the xml install file) if (!file_exists($this->parent->getPath('extension_root').DS.$uninstallScriptElement->data())) { $path['src'] = $this->parent->getPath('source').DS.$uninstallScriptElement->data(); $path['dest'] = $this->parent->getPath('extension_root').DS.$uninstallScriptElement->data(); if (!$this->parent->copyFiles(array ($path))) { // Install failed, rollback changes $this->parent->abort(JText::_('Component').' '.JText::_('Install').': '.JText::_('Could not copy PHP uninstall file.')); return false; } } } /** * --------------------------------------------------------------------------------------------- * Database Processing Section * --------------------------------------------------------------------------------------------- */ // Check to see if a plugin by the same name is already installed // ^ Altered db query for #__jce_plugins $query = 'SELECT `id`' . ' FROM `#__jce_plugins`' . ' WHERE name = '.$db->Quote($pname); $db->setQuery($query); if (!$db->Query()) { // Install failed, roll back changes $this->parent->abort('Plugin Install: '.$db->stderr(true)); return false; } $id = $db->loadResult(); // Was there a module already installed with the same name? if ($id) { if (!$this->parent->getOverwrite()) { // Install failed, roll back changes $this->parent->abort('Plugin Install: '.JText::_('Plugin').' "'.$pname.'" '.JText::_('already exists!')); return false; } } else { $icon = $this->manifest->getElementByPath('icon'); $layout = $this->manifest->getElementByPath('layout'); $elements = $this->manifest->getElementByPath('elements'); // ^ Changes to plugin parameters. Use JCEPluginsTable class. $row =& JTable::getInstance('plugin', 'JCETable'); $row->title = $this->get('name'); $row->name = $this->manifest->attributes('plugin'); $row->type = 'plugin'; $row->row = 4; $row->ordering = 1; $row->published = 1; $row->editable = 1; $row->elements = $elements->data(); $row->icon = $icon->data(); $row->layout = $layout->data(); $row->iscore = 0; //$row->params = $this->parent->getParams(); //$row->variables = $this->parent->getVariables(); if (!$row->store()) { // Install failed, roll back changes $this->parent->abort('Plugin Install: '.$db->stderr(true)); return false; } // Process default extension installation (files are assumed to have been copied!) $element =& $this->manifest->getElementByPath('extensions'); if (is_a($element, 'JSimpleXMLElement') && count($element->children())) { $extensions =& $element->children(); foreach( $extensions as $extension ){ if( $extension->attributes('name') ){ $query = 'INSERT INTO `#__jce_extensions` ' . ' VALUES ("", '.(int) $row->id.', '.$db->Quote( $extension->attributes('title') ).', '.$db->Quote( $extension->attributes('name') ).', '.$db->Quote( $extension->attributes('folder') ).', 1 )'; $db->setQuery($query); if (!$db->query()) { // Install failed, raise error JError::raiseWarning(100, 'Plugin Install: Unable to install default extension '. $extension->attributes('title')); return false; } } } } // Since we have created a plugin item, we add it to the installation step stack // so that if we have to rollback the changes we can undo it. $this->parent->pushStep(array ('type' => 'plugin', 'id' => $row->id)); } /** * --------------------------------------------------------------------------------------------- * Custom Installation Script Section * --------------------------------------------------------------------------------------------- */ /* * If we have an install script, lets include it, execute the custom * install method, and append the return value from the custom install * method to the installation message. */ if ($this->get('install.script')) { if (is_file($this->parent->getPath('extension_root').DS.$this->get('install.script'))) { ob_start(); ob_implicit_flush(false); require_once ($this->parent->getPath('extension_root').DS.$this->get('install.script')); if (function_exists('com_install')) { if (com_install() === false) { $this->parent->abort(JText::_('Plugin').' '.JText::_('Install').': '.JText::_('Custom install routine failure')); return false; } } $msg = ob_get_contents(); ob_end_clean(); if ($msg != '') { $this->parent->set('extension.message', $msg); } } } /** * --------------------------------------------------------------------------------------------- * Install plugin into Default Group * --------------------------------------------------------------------------------------------- */ // Add to Default Group if( $row->type == 'plugin' ){ JTable::addIncludePath( JPATH_ADMINISTRATOR .DS. 'components' .DS. 'com_jce' .DS. 'groups' ); $grow =& JTable::getInstance('groups', 'JCETable'); $query = 'SELECT id' . ' FROM #__jce_groups' . ' WHERE name = '. $db->Quote('Default') ; $db->setQuery( $query ); $gid = $db->loadResult(); $grow->load( $gid ); // Add to plugins list $grow->plugins = $grow->plugins . ',' . $row->id; // Add to last row if plugin has a layout icon if( $row->layout ){ $grow->rows = $grow->rows . ',' . $row->id; } if (!$grow->store()) { JError::raiseWarning(100, 'Plugin Install: Unable to add plugin to Default group' ); } } /** * --------------------------------------------------------------------------------------------- * Finalization and Cleanup Section * --------------------------------------------------------------------------------------------- */ // Lastly, we will copy the manifest file to its appropriate place. if (!$this->parent->copyManifest(-1)) { // Install failed, rollback changes $this->parent->abort('Plugin Install: '.JText::_('Could not copy setup file')); return false; } return true; } /** * Custom uninstall method * * @access public * @param int $cid The id of the plugin to uninstall * @param int $clientId The id of the client (unused) * @return boolean True on success * @since 1.5 */ function uninstall($id, $clientId ) { // Initialize variables $row = null; $retval = true; $db =& $this->parent->getDBO(); // First order of business will be to load the module object table from the database. // This should give us the necessary information to proceed. // ^ Changes to plugin parameters. Use JCEPluginsTable class. $row =& JTable::getInstance('plugin', 'JCETable'); $row->load((int) $id); // Is the plugin we are trying to uninstall a core one? // Because that is not a good idea... if ($row->iscore) { JError::raiseWarning(100, 'Plugin Uninstall: '.JText::sprintf('WARNCOREPLUGIN', $row->title)."
    ".JText::_('WARNCOREPLUGIN2')); return false; } // Get the plugin folder so we can properly build the plugin path if (trim($row->name) == '') { JError::raiseWarning(100, 'Plugin Uninstall: '.JText::_('Plugin field empty, cannot remove files')); return false; } // Set the plugin root path $this->parent->setPath('extension_root', JCE_PLUGINS . DS . $row->name); $manifestFile = $this->parent->getPath('extension_root') . DS . $row->name . '.xml'; if (file_exists($manifestFile)) { $xml =& JFactory::getXMLParser('Simple'); // If we cannot load the xml file return null if (!$xml->loadFile($manifestFile)) { JError::raiseWarning(100, 'Plugin Uninstall: '.JText::_('Could not load manifest file')); return false; } /* * Check for a valid XML root tag. * @todo: Remove backwards compatability in a future version * Should be 'install', but for backward compatability we will accept 'mosinstall'. */ $root =& $xml->document; if ($root->name() != 'install' && $root->name() != 'mosinstall') { JError::raiseWarning(100, 'Plugin Uninstall: '.JText::_('Invalid manifest file')); return false; } // Remove the plugin files $this->parent->removeFiles($root->getElementByPath('files'), -1); JFile::delete($manifestFile); // Remove all media and languages as well $this->parent->removeFiles($root->getElementByPath('languages'), 0); /** * --------------------------------------------------------------------------------------------- * Custom Uninstallation Script Section * --------------------------------------------------------------------------------------------- */ // Now lets load the uninstall file if there is one and execute the uninstall function if it exists. $uninstallfileElement =& $root->getElementByPath('uninstallfile'); if (is_a($uninstallfileElement, 'JSimpleXMLElement')) { // Element exists, does the file exist? if (is_file($this->parent->getPath('extension_root').DS.$uninstallfileElement->data())) { ob_start(); ob_implicit_flush(false); require_once ($this->parent->getPath('extension_root').DS.$uninstallfileElement->data()); if (function_exists('com_uninstall')) { if (com_uninstall() === false) { JError::raiseWarning(100, JText::_('Plugin').' '.JText::_('Uninstall').': '.JText::_('Custom Uninstall script unsuccessful')); $retval = false; } } $msg = ob_get_contents(); ob_end_clean(); if ($msg != '') { $this->parent->set('extension.message', $msg); } } } // Remove extension installations from #__jce_extensions $query = 'DELETE' . ' FROM `#__jce_extensions`' . ' WHERE pid='.(int)$id; $db->setQuery($query); if( !$db->query() ){ JError::raiseWarning(100, 'Plugin Uninstall: Unable to remove extension records.'); } // Remove from Groups if( $row->type == 'plugin' ){ JTable::addIncludePath( JPATH_ADMINISTRATOR .DS. 'components' .DS. 'com_jce' .DS. 'groups' ); $grow =& JTable::getInstance('groups', 'JCETable'); $query = 'SELECT id, name, plugins, rows' . ' FROM #__jce_groups' ; $db->setQuery( $query ); $groups = $db->loadObjectList(); foreach( $groups as $group ){ $plugins = explode( ',', $group->plugins ); // Existence check if( in_array( $row->id, $plugins ) ){ // Load tables $grow->load( $group->id ); // Remove from plugins list foreach( $plugins as $k => $v ){ if( $row->id == $v ){ unset( $plugins[$k] ); } } $grow->plugins = implode( ',', $plugins ); // Remove from rows if( $row->layout ){ $lists = array(); foreach( explode( ';', $group->rows ) as $list ){ $icons = explode( ',', $list ); foreach( $icons as $k => $v ){ if( $row->id == $v ){ unset( $icons[$k] ); } } $lists[] = implode( ',', $icons ); } $grow->rows = implode( ';', $lists ); } if (!$grow->store()) { JError::raiseWarning(100, 'Plugin Install: Unable to remove plugin from Group: '. $grow->name ); } } } } // Now we will no longer need the plugin object, so lets delete it $row->delete($row->id); unset ($row); } else { JError::raiseWarning(100, 'Plugin Uninstall: Manifest File invalid or not found. Plugin entry removed from database.'); $row->delete($row->id); unset ($row); $retval = false; } // If the folder is empty, let's delete it $files = JFolder::files($this->parent->getPath('extension_root')); if (!count($files)) { JFolder::delete($this->parent->getPath('extension_root')); } return $retval; } /** * Custom rollback method * - Roll back the plugin item * * @access public * @param array $arg Installation step to rollback * @return boolean True on success * @since 1.5 * Minor changes to the db query */ function _rollback_plugin($arg) { // Get database connector object $db =& $this->parent->getDBO(); // Remove the entry from the #__jce_plugins table $query = 'DELETE' . ' FROM `#__jce_plugins`' . ' WHERE id='.(int)$arg['id']; $db->setQuery($query); return ($db->query() !== false); } }elracodelangela/administrator/components/com_jce/installer/adapters/language.php0000644000176700017710000001566511074451460031200 0ustar essawireessawire * @package Joomla.Framework * @subpackage Installer * @since 1.5 */ class JCEInstallerLanguage extends JObject { /** * Constructor * * @access protected * @param object $parent Parent object [JInstaller instance] * @return void * @since 1.5 */ function __construct(&$parent) { $this->parent =& $parent; } /** * Custom install method * * @access public * @return boolean True on success * @since 1.5 */ function install() { // Get database connector object $manifest =& $this->parent->getManifest(); $this->manifest =& $manifest->document; // Get the language name // Set the extensions name $name =& $this->manifest->getElementByPath('name'); $name = JFilterInput::clean($name->data(), 'cmd'); $this->set('name', $name); // Get the Language tag [ISO tag, eg. en-GB] $tag =& $this->manifest->getElementByPath('tag'); // Check if we found the tag - if we didn't, we may be trying to install from an older language package if ( ! $tag ) { $this->parent->abort(JText::_('Language').' '.JText::_('Install').': '.JText::_('NO LANGUAGE TAG?')); return false; } $this->set('tag', $tag->data()); $folder = $tag->data(); $sitePath = JPATH_SITE .DS. "language" .DS. $folder; $adminPath = JPATH_ADMINISTRATOR .DS. "language" .DS. $folder; $tinyPath = JPATH_PLUGINS .DS. "editors" .DS. "jce" .DS. "tiny_mce"; // Set the installation target paths $this->parent->setPath('extension_site', $sitePath); $this->parent->setPath('extension_administrator', $adminPath); $this->adminElement =& $this->manifest->getElementByPath('administration'); $this->siteElement =& $this->manifest->getElementByPath('site'); $this->tinyElement =& $this->manifest->getElementByPath('tinymce'); // Copy site files foreach ($this->siteElement->children() as $child) { if (is_a($child, 'JSimpleXMLElement') && $child->name() == 'files') { if ($this->parent->parseFiles($child) === false) { // Install failed, rollback any changes $this->parent->abort(); return false; } } } // Copy admin files foreach ($this->adminElement->children() as $child) { if (is_a($child, 'JSimpleXMLElement') && $child->name() == 'files') { if ($this->parent->parseFiles($child, 1) === false) { // Install failed, rollback any changes $this->parent->abort(); return false; } } } // Copy tinymce files $this->parent->setPath('extension_site', $tinyPath); foreach ($this->tinyElement->children() as $child) { if (is_a($child, 'JSimpleXMLElement') && $child->name() == 'files') { if ($this->parent->parseFiles($child) === false) { // Install failed, rollback any changes $this->parent->abort(); return false; } } } // Set path back to site for manifest $this->parent->setPath('extension_site', $sitePath); // Lastly, we will copy the manifest file to its appropriate place. if (!$this->parent->copyManifest(0)) { // Install failed, rollback changes $this->parent->abort(JText::_('Component').' '.JText::_('Install').': '.JText::_('Could not copy setup file')); return false; } // Get the language description $description = & $this->manifest->getElementByPath('description'); if (is_a($description, 'JSimpleXMLElement')) { $this->parent->set('message', $description->data()); } else { $this->parent->set('message', '' ); } return true; } /** * Custom uninstall method * * @access public * @param string $tag The tag of the language to uninstall * @param int $clientId The id of the client (unused) * @return mixed Return value for uninstall method in component uninstall file * @since 1.5 */ function uninstall($tag, $clientId) { $path = trim($tag); if (!JFolder::exists($path)) { JError::raiseWarning(100, 'Language Uninstall: '.JText::_('Language path is empty, cannot uninstall files')); return false; } $tag = basename( $path ); // Because JCE languages don't have their own folders we cannot use the standard method of finding an installation manifest $manifestFile = JPATH_ROOT .DS. 'language' .DS. $tag .DS. $tag .'.com_jce.xml'; if (file_exists($manifestFile)) { $xml =& JFactory::getXMLParser('Simple'); // If we cannot load the xml file return null if (!$xml->loadFile($manifestFile)) { JError::raiseWarning(100, JText::_('Language').' '.JText::_('Uninstall').': '.JText::_('Could not load manifest file')); return false; } /* * Check for a valid XML root tag. */ $root =& $xml->document; if ($root->name() != 'install' && $root->attributes('type') != 'language') { JError::raiseWarning(100, JText::_('Language').' '.JText::_('Uninstall').': '.JText::_('Invalid manifest file')); return false; } // Get the admin and site paths for the component $sitePath = JPATH_SITE .DS. "language" .DS. $tag; $adminPath = JPATH_ADMINISTRATOR .DS. "language" .DS. $tag; $tinyPath = JPATH_PLUGINS .DS. "editors" .DS. "jce" .DS. "tiny_mce"; // Set the installation target paths $this->parent->setPath('extension_site', $sitePath); $this->parent->setPath('extension_administrator', $adminPath); if( !$this->parent->removeFiles($root->getElementByPath('site/files')) ){ JError::raiseWarning(100, JText::_('Language').' '.JText::_('Uninstall').': '.JText::_('Unable to delete files')); return false; } if( !$this->parent->removeFiles($root->getElementByPath('administration/files'), 1) ){ JError::raiseWarning(100, JText::_('Language').' '.JText::_('Uninstall').': '.JText::_('Unable to delete files')); return false; } $this->parent->setPath('extension_site', $tinyPath); if( !$this->parent->removeFiles($root->getElementByPath('tinymce/files')) ){ JError::raiseWarning(100, JText::_('Language').' '.JText::_('Uninstall').': '.JText::_('Unable to delete files')); return false; } JFile::delete($manifestFile); } else { JError::raiseWarning(100, 'Language Uninstall: Manifest File invalid or not found'); return false; } return true; } }elracodelangela/administrator/components/com_jce/installer/models/0000755000176700017710000000000011074451460026347 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/models/extension.php0000644000176700017710000000471511074451460031103 0ustar essawireessawiresetQuery($query); $rows = $db->loadObjectList(); $numRows = count($rows); for ($i = 0; $i < $numRows; $i ++) { $row = & $rows[$i]; $plugin = $row->plugin; $name = $row->name; $folder = $row->folder; // Get the plugin base path $baseDir = JPATH_PLUGINS.DS.'editors'.DS.'jce'.DS.'tiny_mce'.DS.'plugins'; // Get the plugin xml file $xmlfile = $baseDir .DS. $row->file .DS. 'extensions' .DS. $row->folder .DS. $row->extension .".xml"; if (file_exists($xmlfile)) { if ($data = JApplicationHelper::parseXMLInstallFile($xmlfile)) { foreach($data as $key => $value) { $row->$key = $value; } } } $row->name = $name; $row->plugin = $plugin; } $this->setState('pagination.total', $numRows); if($this->_state->get('pagination.limit') > 0) { $this->_items = array_slice( $rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit') ); } else { $this->_items = $rows; } } }elracodelangela/administrator/components/com_jce/installer/models/index.html0000644000176700017710000000005411074451460030343 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/models/extensions.php0000644000176700017710000001012511074451460031256 0ustar essawireessawiresetState('pagination.limit', $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int')); $this->setState('pagination.offset',$mainframe->getUserStateFromRequest('$option.$type.$task.$client.limitstart.'.$this->_type, 'limitstart', 0, 'int')); $this->setState('pagination.total', 0); } function &getItems() { if (empty($this->_items)) { // Load the items $this->_loadItems(); } return $this->_items; } function &getPagination() { if (empty($this->_pagination)) { // Make sure items are loaded for a proper total if (empty($this->_items)) { // Load the items $this->_loadItems(); } // Load the pagination object jimport('joomla.html.pagination'); $this->_pagination = new JPagination($this->_state->get('pagination.total'), $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit')); } return $this->_pagination; } /** * Remove (uninstall) an extension * * @static * @param array An array of identifiers * @return boolean True on success * @since 1.0 */ function remove($eid=array()) { global $mainframe; // Initialize variables $failed = array (); /* * Ensure eid is an array of extension ids in the form id => client_id * TODO: If it isn't an array do we want to set an error and fail? */ if (!is_array($eid)) { $eid = array($eid => 0); } // Get a database connector $db =& JFactory::getDBO(); // Get an installer object for the extension type //jimport('joomla.installer.installer'); require_once( JPATH_COMPONENT .DS. 'installer' .DS. 'installer.php' ); $installer = & JCEInstaller::getInstance(); // Uninstall the chosen extensions foreach ($eid as $id => $clientId) { $id = trim( $id ); $result = $installer->uninstall($this->_type, $id, $clientId ); // Build an array of extensions that failed to uninstall if ($result === false) { $failed[] = $id; } } if (count($failed)) { // There was an error in uninstalling the package $msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Error')); $result = false; } else { // Package uninstalled sucessfully $msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Success')); $result = true; } $mainframe->enqueueMessage($msg); $this->setState('action', 'remove'); $this->setState('name', $installer->get('name')); $this->setState('message', $installer->message); $this->setState('extension.message', $installer->get('extension.message')); return $result; } function _loadItems() { return JError::raiseError( 500, JText::_('Method Not Implemented')); } }elracodelangela/administrator/components/com_jce/installer/models/install.php0000644000176700017710000001451211074451460030531 0ustar essawireessawiresetRedirect( JRoute::_( 'index.php?option=com_jce&client='. $client, false ) ); } function install() { global $mainframe; $this->setState('action', 'install'); switch(JRequest::getWord('installtype')) { case 'folder': $package = $this->_getPackageFromFolder(); break; case 'upload': $package = $this->_getPackageFromUpload(); break; case 'url': $package = $this->_getPackageFromUrl(); break; default: $this->setState('message', 'No Install Type Found'); return false; break; } // Was the package unpacked? if (!$package) { $this->setState('message', 'Unable to find install package'); return false; } // Get a database connector //$db = & JFactory::getDBO(); // Get an installer instance require_once( JPATH_COMPONENT .DS. 'installer' .DS. 'installer.php' ); $installer =& JCEInstaller::getInstance(); // Install the package if (!$installer->install($package['dir'])) { // There was an error installing the package $msg = JText::sprintf('INSTALLEXT', JText::_($package['type']), JText::_('Error')); $result = false; } else { // Package installed sucessfully $msg = JText::sprintf('INSTALLEXT', JText::_($package['type']), JText::_('Success')); $result = true; } // Set some model state values $mainframe->enqueueMessage($msg); $this->setState('name', $installer->get('name')); $this->setState('result', $result); $this->setState('message', $installer->message); $this->setState('extension.message', $installer->get('extension.message')); // Cleanup the install files if (!is_file($package['packagefile'])) { $config =& JFactory::getConfig(); $package['packagefile'] = $config->getValue('config.tmp_path').DS.$package['packagefile']; } JInstallerHelper::cleanupInstall($package['packagefile'], $package['extractdir']); return $result; } /** * @param string The class name for the installer */ function _getPackageFromUpload() { // Get the uploaded file information $userfile = JRequest::getVar('install_package', null, 'files', 'array' ); // Make sure that file uploads are enabled in php if (!(bool) ini_get('file_uploads')) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('WARNINSTALLFILE')); return false; } // Make sure that zlib is loaded so that the package can be unpacked if (!extension_loaded('zlib')) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('WARNINSTALLZLIB')); return false; } // If there is no uploaded file, we have a problem... if (!is_array($userfile) ) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('No file selected')); return false; } // Check if there was a problem uploading the file. if ( $userfile['error'] || $userfile['size'] < 1 ) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('WARNINSTALLUPLOADERROR')); return false; } // Build the appropriate paths $config =& JFactory::getConfig(); $tmp_dest = $config->getValue('config.tmp_path').DS.$userfile['name']; $tmp_src = $userfile['tmp_name']; // Move uploaded file jimport('joomla.filesystem.file'); $uploaded = JFile::upload($tmp_src, $tmp_dest); // Unpack the downloaded package file $package = JInstallerHelper::unpack($tmp_dest); return $package; } /** * Install an extension from a directory * * @static * @return boolean True on success * @since 1.0 */ function _getPackageFromFolder() { // Get the path to the package to install $p_dir = JRequest::getString('install_directory'); $p_dir = JPath::clean( $p_dir ); // Did you give us a valid directory? if (!is_dir($p_dir)) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('Please enter a package directory')); return false; } // Detect the package type $type = JInstallerHelper::detectType($p_dir); // Did you give us a valid package? if (!$type) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('Path does not have a valid package')); return false; } $package['packagefile'] = null; $package['extractdir'] = null; $package['dir'] = $p_dir; $package['type'] = $type; return $package; } /** * Install an extension from a URL * * @static * @return boolean True on success * @since 1.5 */ function _getPackageFromUrl() { // Get a database connector $db = & JFactory::getDBO(); // Get the URL of the package to install $url = JRequest::getString('install_url'); // Did you give us a URL? if (!$url) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('Please enter a URL')); return false; } // Download the package at the URL given $p_file = JInstallerHelper::downloadPackage($url); // Was the package downloaded? if (!$p_file) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('Invalid URL')); return false; } $config =& JFactory::getConfig(); $tmp_dest = $config->getValue('config.tmp_path'); // Unpack the downloaded package file $package = JInstallerHelper::unpack($tmp_dest.DS.$p_file); return $package; } }elracodelangela/administrator/components/com_jce/installer/models/plugin.php0000644000176700017710000000502211074451460030355 0ustar essawireessawiresetState('filter.string', $mainframe->getUserStateFromRequest( "com_jce.plugin.string", 'filter', '', 'string' )); } function _loadItems() { global $mainframe, $option; // Get a database connector $db = & JFactory::getDBO(); $where = null; if ($search = $this->_state->get('filter.string')) { $where .= ' AND title LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } $query = 'SELECT id, title, type, name' . ' FROM #__jce_plugins' . ' WHERE type="plugin"' . ' AND iscore=0' . $where . ' ORDER BY name'; $db->setQuery($query); $rows = $db->loadObjectList(); // Get the plugin base path $baseDir = JPATH_PLUGINS .DS. 'editors' .DS. 'jce' .DS. 'tiny_mce' .DS. 'plugins'; $numRows = count($rows); for ($i = 0; $i < $numRows; $i ++) { $row = & $rows[$i]; // Get the plugin xml file $xmlfile = $baseDir .DS. $row->name .DS. $row->name .".xml"; if (file_exists($xmlfile)) { if ($data = JApplicationHelper::parseXMLInstallFile($xmlfile)) { foreach($data as $key => $value) { $row->$key = $value; } } } } $this->setState('pagination.total', $numRows); if($this->_state->get('pagination.limit') > 0) { $this->_items = array_slice( $rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit') ); } else { $this->_items = $rows; } } }elracodelangela/administrator/components/com_jce/installer/models/language.php0000644000176700017710000001032211074451460030641 0ustar essawireessawirefolder = $langDirs[$i]; $lang->baseDir = $langBDir; $languages[] = $lang; } $rows = array(); $rowid = 0; foreach ($languages as $language) { $files = JFolder::files( $language->baseDir.DS.$language->folder, '\.(com_jce)\.xml$' ); foreach ($files as $file) { $data = JApplicationHelper::parseXMLInstallFile($language->baseDir.DS.$language->folder.DS.$file); $row = new StdClass(); $row->id = $rowid; $row->language = $language->baseDir.DS.$language->folder; // If we didn't get valid data from the xml file, move on... if (!is_array($data)) { continue; } // Populate the row from the xml meta file foreach($data as $key => $value) { $row->$key = $value; } $row->jname = JString::strtolower( str_replace( " ", "_", $row->name ) ); $rows[] = $row; $rowid++; } } $this->setState('pagination.total', count($rows)); if($this->_state->get('pagination.limit') > 0) { $this->_items = array_slice( $rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit') ); } else { $this->_items = $rows; } } /** * Remove (uninstall) an extension * * @static * @return boolean True on success * @since 1.0 */ function remove($eid=array()) { global $mainframe; $lang =& JFactory::getLanguage(); $lang->load('com_jce'); // Initialize variables $failed = array (); /* * Ensure eid is an array of extension ids * TODO: If it isn't an array do we want to set an error and fail? */ if (!is_array($eid)) { $eid = array ($eid); } // construct the list of all language $this->_loadItems(); // Get a database connector $db =& JFactory::getDBO(); // Get an installer object for the extension type //jimport('joomla.installer.installer'); require_once( JPATH_COMPONENT .DS. 'installer' .DS. 'installer.php' ); $installer =& JCEInstaller::getInstance($db, $this->_type); // Uninstall the chosen extensions foreach ($eid as $id) { $item = $this->_items[$id]; $result = $installer->uninstall( 'language', $item->language ); // Build an array of extensions that failed to uninstall if ($result === false) { $failed[] = $id; } } if (count($failed)) { // There was an error in uninstalling the package $msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Error')); $result = false; } else { // Package uninstalled sucessfully $msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Success')); $result = true; } $mainframe->enqueueMessage($msg); $this->setState('action', 'remove'); $this->setState('message', $installer->message); // re-construct the list of all language $this->_loadItems(); return $result; } }elracodelangela/administrator/components/com_jce/installer/installer.php0000644000176700017710000000626411074451460027602 0ustar essawireessawire * @package Joomla.Framework * @subpackage Installer * @since 1.5 */ class JCEInstaller extends JInstaller { /** * Returns a reference to the global Installer object, only creating it * if it doesn't already exist. * * @static * @return object An installer object * @since 1.5 */ function &getInstance() { static $instance; if (!isset ($instance)) { $instance = new JCEInstaller(); } return $instance; } /** * Set an installer adapter by name * * @access public * @param string $name Adapter name * @param object $adapter Installer adapter object * @return boolean True if successful * @since 1.5 */ function setAdapter($name, $adapter = null) { // Check if valid extension type if( $name == 'plugin' || $name == 'language' || $name == 'extension' ){ if (!is_object($adapter)) { // Try to load the adapter object require_once(dirname(__FILE__).DS.'adapters'.DS.strtolower($name).'.php'); $class = 'JCEInstaller'.ucfirst($name); if (!class_exists($class)) { return false; } $adapter = new $class($this); $adapter->parent =& $this; } $this->_adapters[$name] =& $adapter; return true; }else{ $this->abort(JText::_('Incorrect version!')); } } /** * Method to parse the variables of a plugin, build the INI * string for it's default variables, and return the INI string. * * @access public * @return string INI string of parameter values * @since 1.5 */ function getVariables() { // Get the manifest document root element $root = & $this->_manifest->document; // Get the element of the tag names $element =& $root->getElementByPath('variables'); if (!is_a($element, 'JSimpleXMLElement') || !count($element->children())) { // Either the tag does not exist or has no children therefore we return zero files processed. return null; } // Get the array of variable nodes to process $vars = $element->children(); if (count($vars) == 0) { // No variables to process return null; } // Process each variable in the $vars array. $ini = null; foreach ($vars as $var) { if (!$name = $var->attributes('name')) { continue; } if (!$value = $var->attributes('default')) { continue; } $ini .= $name."=".$value."\n"; } return $ini; } }elracodelangela/administrator/components/com_jce/installer/index.html0000644000176700017710000000005411074451460027060 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/0000755000176700017710000000000011074451460026221 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/install/0000755000176700017710000000000011074451460027667 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/install/index.html0000644000176700017710000000005411074451460031663 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/install/tmpl/0000755000176700017710000000000011074451460030643 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/install/tmpl/index.html0000644000176700017710000000005411074451460032637 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/install/tmpl/default.php0000644000176700017710000000022011074451460032772 0ustar essawireessawireshowMessage) : ?> loadTemplate('message'); ?> loadTemplate('form'); ?> elracodelangela/administrator/components/com_jce/installer/views/install/tmpl/default_form.php0000644000176700017710000000526411074451460034032 0ustar essawireessawire
    ftp) : ?> loadTemplate('ftp'); ?>
    elracodelangela/administrator/components/com_jce/installer/views/install/view.php0000644000176700017710000000232411074451460031353 0ustar essawireessawirefirst = ''; $this->assignRef('paths', $paths); $this->assignRef('state', $this->get('state')); parent::display($tpl); } }elracodelangela/administrator/components/com_jce/installer/views/default/0000755000176700017710000000000011074451460027645 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/default/index.html0000644000176700017710000000005411074451460031641 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/default/tmpl/0000755000176700017710000000000011074451460030621 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/default/tmpl/index.html0000644000176700017710000000005411074451460032615 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/default/tmpl/default_message.php0000644000176700017710000000062511074451460034465 0ustar essawireessawireget('state'); $message1 = $state->get('message'); $message2 = $state->get('extension.message'); ?>
    elracodelangela/administrator/components/com_jce/installer/views/default/tmpl/default_ftp.php0000644000176700017710000000152011074451460033625 0ustar essawireessawire
    ftp)): ?>

    ftp->message); ?>

    elracodelangela/administrator/components/com_jce/installer/views/default/view.php0000644000176700017710000000363611074451460031340 0ustar essawireessawire JPATH_COMPONENT .DS. 'installer' ) ); $this->_addPath('template', dirname(__FILE__).DS.'tmpl'); } function display($tpl=null) { /* * Set toolbar items for the page */ JToolBarHelper::title( JText::_( 'JCE Installer'), 'install.png' ); // Document $document = & JFactory::getDocument(); $document->setTitle(JText::_('JCE Installer').' : '.JText::_( $this->getName() )); // Get data from the model $state = &$this->get('State'); // Are there messages to display ? $showMessage = false; if ( is_object($state) ) { $message1 = $state->get('message'); $message2 = $state->get('extension.message'); $showMessage = ( $message1 || $message2 ); } $this->assign('showMessage', $showMessage); $this->assignRef('state', $state); JHTML::_('behavior.tooltip'); parent::display($tpl); } /** * Should be overloaded by extending view * * @param int $index */ function loadItem($index=0) { } }elracodelangela/administrator/components/com_jce/installer/views/index.html0000644000176700017710000000005411074451460030215 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/extension/0000755000176700017710000000000011074451460030235 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/extension/index.html0000644000176700017710000000005411074451460032231 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/extension/tmpl/0000755000176700017710000000000011074451460031211 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/extension/tmpl/index.html0000644000176700017710000000005411074451460033205 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/extension/tmpl/default_item.php0000644000176700017710000000170211074451460034364 0ustar essawireessawireitem->index % 2; ?>" item->style; ?>> pagination->getRowOffset( $this->item->index ); ?> item->cbd; ?> /> item->name; ?> item->plugin; ?> item->version != '' ? $this->item->version : ' '; ?> item->creationdate != '' ? $this->item->creationdate : ' '; ?> item->author != '' ? $this->item->author : ' '; ?> elracodelangela/administrator/components/com_jce/installer/views/extension/tmpl/default.php0000644000176700017710000000272411074451460033353 0ustar essawireessawire
    ftp) : ?> loadTemplate('ftp'); ?> items)) : ?> items), $rc=0; $i < $n; $i++, $rc = 1 - $rc) : ?> loadItem($i); echo $this->loadTemplate('item'); ?>
     
    pagination->getListFooter(); ?>
    elracodelangela/administrator/components/com_jce/installer/views/extension/view.php0000644000176700017710000000314611074451460031724 0ustar essawireessawireget('Items'); $pagination = &$this->get('Pagination'); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); parent::display($tpl); } function loadItem($index=0) { $item =& $this->items[$index]; $item->index = $index; $item->cbd = null; $item->style = null; $item->author_info = @$item->authorEmail .'
    '. @$item->authorUrl; $this->assignRef('item', $item); } }elracodelangela/administrator/components/com_jce/installer/views/language/0000755000176700017710000000000011074451460030004 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/language/index.html0000644000176700017710000000005411074451460032000 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/language/tmpl/0000755000176700017710000000000011074451460030760 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/language/tmpl/index.html0000644000176700017710000000005411074451460032754 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/language/tmpl/default_item.php0000644000176700017710000000162511074451460034137 0ustar essawireessawireitem->index % 2; ?>" item->style; ?>> pagination->getRowOffset( $this->item->index ); ?> item->cbd; ?> /> item->name; ?> item->version != '' ? $this->item->version : ' '; ?> item->creationdate != '' ? $this->item->creationdate : ' '; ?> item->author != '' ? $this->item->author : ' '; ?> elracodelangela/administrator/components/com_jce/installer/views/language/tmpl/default.php0000644000176700017710000000304011074451460033112 0ustar essawireessawire
    ftp) : ?> loadTemplate('ftp'); ?>
    items)) : ?> items), $rc=0; $i < $n; $i++, $rc = 1 - $rc) : ?> loadItem($i); echo $this->loadTemplate('item'); ?>
     
    pagination->getListFooter(); ?>
    elracodelangela/administrator/components/com_jce/installer/views/language/view.php0000644000176700017710000000336711074451460031500 0ustar essawireessawireget('Items'); $pagination = &$this->get('Pagination'); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); parent::display($tpl); } function loadItem($index=0) { $item =& $this->items[$index]; $item->index = $index; if ( basename( $item->language ) == 'en-GB') { $item->cbd = 'disabled'; $item->style = 'style="color:#999999;"'; } else { $item->cbd = null; $item->style = null; } $item->author_info = @$item->authorEmail .'
    '. @$item->authorUrl; $this->assignRef('item', $item); } }elracodelangela/administrator/components/com_jce/installer/views/plugin/0000755000176700017710000000000011074451460027517 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/plugin/index.html0000644000176700017710000000005411074451460031513 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/plugin/tmpl/0000755000176700017710000000000011074451460030473 5ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/plugin/tmpl/index.html0000644000176700017710000000005411074451460032467 0ustar essawireessawireelracodelangela/administrator/components/com_jce/installer/views/plugin/tmpl/default_item.php0000644000176700017710000000163411074451460033652 0ustar essawireessawireitem->index % 2; ?>" item->style; ?>> pagination->getRowOffset( $this->item->index ); ?> item->cbd; ?> /> item->name; ?> item->version != '' ? $this->item->version : ' '; ?> item->creationdate != '' ? $this->item->creationdate : ' '; ?> item->author != '' ? $this->item->author : ' '; ?> elracodelangela/administrator/components/com_jce/installer/views/plugin/tmpl/default.php0000644000176700017710000000257711074451460032643 0ustar essawireessawire
    ftp) : ?> loadTemplate('ftp'); ?> items)) : ?> items), $rc=0; $i < $n; $i++, $rc = 1 - $rc) : ?> loadItem($i); echo $this->loadTemplate('item'); ?>
     
    pagination->getListFooter(); ?>
    elracodelangela/administrator/components/com_jce/installer/views/plugin/view.php0000644000176700017710000000314311074451460031203 0ustar essawireessawireget('Items'); $pagination = &$this->get('Pagination'); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); parent::display($tpl); } function loadItem($index=0) { $item =& $this->items[$index]; $item->index = $index; $item->cbd = null; $item->style = null; $item->author_info = @$item->authorEmail .'
    '. @$item->authorUrl; $this->assignRef('item', $item); } }elracodelangela/administrator/components/com_jce/installer/controller.php0000644000176700017710000000162111074451460027760 0ustar essawireessawireload( 'com_installer', JPATH_ADMINISTRATOR ); require_once( JPATH_ADMINISTRATOR .DS. 'components' .DS. 'com_installer' .DS. 'controller.php' ); ?>elracodelangela/administrator/components/com_templates/0000755000176700017710000000000011061563557024333 5ustar essawireessawireelracodelangela/administrator/components/com_templates/templates.xml0000755000176700017710000000101111061563414027037 0ustar essawireessawire Template Manager Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Template Manager elracodelangela/administrator/components/com_templates/toolbar.templates.php0000755000176700017710000000232211061563414030475 0ustar essawireessawiresetQuery($query); $defaultemplate = $db->loadResult(); return $defaultemplate == $template ? 1 : 0; } function isTemplateAssigned($template) { $db =& JFactory::getDBO(); // check if template is assigned $query = 'SELECT COUNT(*)' . ' FROM #__templates_menu' . ' WHERE client_id = 0' . ' AND template = '.$db->Quote($template) . ' AND menuid <> 0'; $db->setQuery($query); return $db->loadResult() ? 1 : 0; } function parseXMLTemplateFiles($templateBaseDir) { // Read the template folder to find templates jimport('joomla.filesystem.folder'); $templateDirs = JFolder::folders($templateBaseDir); $rows = array(); // Check that the directory contains an xml file foreach ($templateDirs as $templateDir) { if(!$data = TemplatesHelper::parseXMLTemplateFile($templateBaseDir, $templateDir)){ continue; } else { $rows[] = $data; } } return $rows; } function parseXMLTemplateFile($templateBaseDir, $templateDir) { // Check of the xml file exists if(!is_file($templateBaseDir.DS.$templateDir.DS.'templateDetails.xml')) { return false; } $xml = JApplicationHelper::parseXMLInstallFile($templateBaseDir.DS.$templateDir.DS.'templateDetails.xml'); if ($xml['type'] != 'template') { return false; } $data = new StdClass(); $data->directory = $templateDir; foreach($xml as $key => $value) { $data->$key = $value; } $data->checked_out = 0; $data->mosname = JString::strtolower(str_replace(' ', '_', $data->name)); return $data; } function createMenuList($template) { $db =& JFactory::getDBO(); // get selected pages for $menulist $query = 'SELECT menuid AS value' . ' FROM #__templates_menu' . ' WHERE client_id = 0' . ' AND template = '.$db->Quote($template); $db->setQuery($query); $lookup = $db->loadObjectList(); if (empty( $lookup )) { $lookup = array( JHTML::_('select.option', '-1' ) ); } // build the html select list $options = JHTML::_('menu.linkoptions'); $result = JHTML::_('select.genericlist', $options, 'selections[]', 'class="inputbox" size="15" multiple="multiple"', 'value', 'text', $lookup, 'selections' ); return $result; } }elracodelangela/administrator/components/com_templates/helpers/index.html0000755000176700017710000000005411061563414027764 0ustar essawireessawireelracodelangela/administrator/components/com_templates/index.html0000755000176700017710000000005411061563414026322 0ustar essawireessawireelracodelangela/administrator/components/com_templates/admin.templates.php0000755000176700017710000000534011061563414030126 0ustar essawireessawireauthorize('com_templates', 'manage')) { $mainframe->redirect('index.php', JText::_('ALERTNOTAUTH')); } // Set the table directory JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_templates'.DS.'tables'); // Import file dependencies require_once (JPATH_COMPONENT.DS.'helpers'.DS.'template.php'); require_once (JPATH_COMPONENT.DS.'controller.php'); $task = JRequest::getCmd('task'); $client = JRequest::getVar('client', 0, '', 'int'); if ($client == 1) { JSubMenuHelper::addEntry(JText::_('Site'), 'index.php?option=com_templates&client=0'); JSubMenuHelper::addEntry(JText::_('Administrator'), 'index.php?option=com_templates&client=1', true); } elseif ($client == 0 && !$task) { JSubMenuHelper::addEntry(JText::_('Site'), 'index.php?option=com_templates&client=0', true); JSubMenuHelper::addEntry(JText::_('Administrator'), 'index.php?option=com_templates&client=1'); } else { JSubMenuHelper::addEntry(JText::_('Site'), 'index.php?option=com_templates&client=0'); JSubMenuHelper::addEntry(JText::_('Administrator'), 'index.php?option=com_templates&client=1'); } switch ($task) { case 'edit' : TemplatesController::editTemplate(); break; case 'save' : case 'apply' : TemplatesController::saveTemplate(); break; case 'edit_source' : TemplatesController::editTemplateSource(); break; case 'save_source' : case 'apply_source' : TemplatesController::saveTemplateSource(); break; case 'choose_css' : TemplatesController::chooseTemplateCSS(); break; case 'edit_css' : TemplatesController::editTemplateCSS(); break; case 'save_css' : case 'apply_css' : TemplatesController::saveTemplateCSS(); break; case 'publish' : case 'default' : TemplatesController::publishTemplate(); break; case 'cancel' : TemplatesController::cancelTemplate(); break; case 'save_positions' : TemplatesController::savePositions(); break; case 'preview' : TemplatesController::previewTemplate(); break; default : TemplatesController::viewTemplates(); break; }elracodelangela/administrator/components/com_templates/controller.php0000755000176700017710000004115211061563414027225 0ustar essawireessawiregetUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest($option.'.'.$client->id.'.limitstart', 'limitstart', 0, 'int'); $select[] = JHTML::_('select.option', '0', JText::_('Site')); $select[] = JHTML::_('select.option', '1', JText::_('Administrator')); $lists['client'] = JHTML::_('select.genericlist', $select, 'client', 'class="inputbox" size="1" onchange="document.adminForm.submit();"', 'value', 'text', $client->id); $tBaseDir = $client->path.DS.'templates'; //get template xml file info $rows = array(); $rows = TemplatesHelper::parseXMLTemplateFiles($tBaseDir); // set dynamic template information for($i = 0; $i < count($rows); $i++) { $rows[$i]->assigned = TemplatesHelper::isTemplateAssigned($rows[$i]->directory); $rows[$i]->published = TemplatesHelper::isTemplateDefault($rows[$i]->directory, $client->id); } jimport('joomla.html.pagination'); $page = new JPagination(count($rows), $limitstart, $limit); $rows = array_slice($rows, $page->limitstart, $page->limit); require_once (JPATH_COMPONENT.DS.'admin.templates.html.php'); TemplatesView::showTemplates($rows, $lists, $page, $option, $client); } /** * Show the template with module position in an iframe */ function previewTemplate() { $template = JRequest::getVar('id', '', 'method', 'cmd'); $option = JRequest::getCmd('option'); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); if (!$template) { return JError::raiseWarning( 500, JText::_('Template not specified') ); } // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); require_once (JPATH_COMPONENT.DS.'admin.templates.html.php'); TemplatesView::previewTemplate($template, true, $client, $option); } /** * Publish, or make current, the selected template */ function publishTemplate() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $db = & JFactory::getDBO(); $cid = JRequest::getVar('cid', array(), 'method', 'array'); $cid = array(JFilterInput::clean(@$cid[0], 'cmd')); $option = JRequest::getCmd('option'); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); if ($cid[0]) { $query = 'DELETE FROM #__templates_menu' . ' WHERE client_id = '.(int) $client->id . ' AND (menuid = 0 OR template = '.$db->Quote($cid[0]).')'; $db->setQuery($query); $db->query(); $query = 'INSERT INTO #__templates_menu' . ' SET client_id = '.(int) $client->id .', template = '.$db->Quote($cid[0]).', menuid = 0'; $db->setQuery($query); $db->query(); } $mainframe->redirect('index.php?option='.$option.'&client='.$client->id); } function editTemplate() { jimport('joomla.filesystem.path'); // Initialize some variables $db = & JFactory::getDBO(); $cid = JRequest::getVar('cid', array(), 'method', 'array'); $cid = array(JFilterInput::clean(@$cid[0], 'cmd')); $template = $cid[0]; $option = JRequest::getCmd('option'); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); if (!$cid[0]) { return JError::raiseWarning( 500, JText::_('Template not specified') ); } $tBaseDir = JPath::clean($client->path.DS.'templates'); if (!is_dir( $tBaseDir . DS . $template )) { return JError::raiseWarning( 500, JText::_('Template not found') ); } $lang =& JFactory::getLanguage(); $lang->load( 'tpl_'.$template, JPATH_ADMINISTRATOR ); $ini = $client->path.DS.'templates'.DS.$template.DS.'params.ini'; $xml = $client->path.DS.'templates'.DS.$template.DS.'templateDetails.xml'; $row = TemplatesHelper::parseXMLTemplateFile($tBaseDir, $template); jimport('joomla.filesystem.file'); // Read the ini file if (JFile::exists($ini)) { $content = JFile::read($ini); } else { $content = null; } $params = new JParameter($content, $xml, 'template'); $assigned = TemplatesHelper::isTemplateAssigned($row->directory); $default = TemplatesHelper::isTemplateDefault($row->directory, $client->id); if($client->id == '1') { $lists['selections'] = JText::_('Cannot assign an administrator template'); } else { $lists['selections'] = TemplatesHelper::createMenuList($template); } if ($default) { $row->pages = 'all'; } elseif (!$assigned) { $row->pages = 'none'; } else { $row->pages = null; } // Set FTP credentials, if given jimport('joomla.client.helper'); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); require_once (JPATH_COMPONENT.DS.'admin.templates.html.php'); TemplatesView::editTemplate($row, $lists, $params, $option, $client, $ftp, $template); } function saveTemplate() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $db = & JFactory::getDBO(); $template = JRequest::getVar('id', '', 'method', 'cmd'); $option = JRequest::getVar('option', '', '', 'cmd'); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $menus = JRequest::getVar('selections', array(), 'post', 'array'); $params = JRequest::getVar('params', array(), 'post', 'array'); $default = JRequest::getBool('default'); JArrayHelper::toInteger($menus); if (!$template) { $mainframe->redirect('index.php?option='.$option.'&client='.$client->id, JText::_('Operation Failed').': '.JText::_('No template specified.')); } // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); $ftp = JClientHelper::getCredentials('ftp'); $file = $client->path.DS.'templates'.DS.$template.DS.'params.ini'; jimport('joomla.filesystem.file'); if (JFile::exists($file) && count($params)) { $registry = new JRegistry(); $registry->loadArray($params); $txt = $registry->toString(); // Try to make the params file writeable if (!$ftp['enabled'] && JPath::isOwner($file) && !JPath::setPermissions($file, '0755')) { JError::raiseNotice('SOME_ERROR_CODE', JText::_('Could not make the template parameter file writable')); } $return = JFile::write($file, $txt); // Try to make the params file unwriteable if (!$ftp['enabled'] && JPath::isOwner($file) && !JPath::setPermissions($file, '0555')) { JError::raiseNotice('SOME_ERROR_CODE', JText::_('Could not make the template parameter file unwritable')); } if (!$return) { $mainframe->redirect('index.php?option='.$option.'&client='.$client->id, JText::_('Operation Failed').': '.JText::sprintf('Failed to open file for writing.', $file)); } } // Reset all existing assignments $query = 'DELETE FROM #__templates_menu' . ' WHERE client_id = 0' . ' AND template = '.$db->Quote( $template ); $db->setQuery($query); $db->query(); if ($default) { $menus = array( 0 ); } foreach ($menus as $menuid) { // If 'None' is not in array if ((int) $menuid >= 0) { // check if there is already a template assigned to this menu item $query = 'DELETE FROM #__templates_menu' . ' WHERE client_id = 0' . ' AND menuid = '.(int) $menuid; $db->setQuery($query); $db->query(); $query = 'INSERT INTO #__templates_menu' . ' SET client_id = 0, template = '. $db->Quote( $template ) .', menuid = '.(int) $menuid; $db->setQuery($query); $db->query(); } } $task = JRequest::getCmd('task'); if($task == 'apply') { $mainframe->redirect('index.php?option='.$option.'&task=edit&cid[]='.$template.'&client='.$client->id); } else { $mainframe->redirect('index.php?option='.$option.'&client='.$client->id); } } function cancelTemplate() { global $mainframe; // Initialize some variables $option = JRequest::getCmd('option'); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); $mainframe->redirect('index.php?option='.$option.'&client='.$client->id); } function editTemplateSource() { global $mainframe; // Initialize some variables $option = JRequest::getCmd('option'); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $template = JRequest::getVar('id', '', 'method', 'cmd'); $file = $client->path.DS.'templates'.DS.$template.DS.'index.php'; // Read the source file jimport('joomla.filesystem.file'); $content = JFile::read($file); if ($content !== false) { // Set FTP credentials, if given jimport('joomla.client.helper'); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); $content = htmlspecialchars($content, ENT_COMPAT, 'UTF-8'); require_once (JPATH_COMPONENT.DS.'admin.templates.html.php'); TemplatesView::editTemplateSource($template, $content, $option, $client, $ftp); } else { $msg = JText::sprintf('Operation Failed Could not open', $file); $mainframe->redirect('index.php?option='.$option.'&client='.$client->id, $msg); } } function saveTemplateSource() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $option = JRequest::getCmd('option'); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $template = JRequest::getVar('id', '', 'method', 'cmd'); $filecontent = JRequest::getVar('filecontent', '', 'post', 'string', JREQUEST_ALLOWRAW); if (!$template) { $mainframe->redirect('index.php?option='.$option.'&client='.$client->id, JText::_('Operation Failed').': '.JText::_('No template specified.')); } if (!$filecontent) { $mainframe->redirect('index.php?option='.$option.'&client='.$client->id, JText::_('Operation Failed').': '.JText::_('Content empty.')); } // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); $ftp = JClientHelper::getCredentials('ftp'); $file = $client->path.DS.'templates'.DS.$template.DS.'index.php'; // Try to make the template file writeable if (!$ftp['enabled'] && !JPath::setPermissions($file, '0755')) { JError::raiseNotice('SOME_ERROR_CODE', JText::_('Could not make the template file writable')); } jimport('joomla.filesystem.file'); $return = JFile::write($file, $filecontent); // Try to make the template file unwriteable if (!$ftp['enabled'] && !JPath::setPermissions($file, '0555')) { JError::raiseNotice('SOME_ERROR_CODE', JText::_('Could not make the template file unwritable')); } if ($return) { $task = JRequest::getCmd('task'); switch($task) { case 'apply_source': $mainframe->redirect('index.php?option='.$option.'&client='.$client->id.'&task=edit_source&id='.$template, JText::_('Template source saved')); break; case 'save_source': default: $mainframe->redirect('index.php?option='.$option.'&client='.$client->id.'&task=edit&cid[]='.$template, JText::_('Template source saved')); break; } } else { $mainframe->redirect('index.php?option='.$option.'&client='.$client->id, JText::_('Operation Failed').': '.JText::sprintf('Failed to open file for writing.', $file)); } } function chooseTemplateCSS() { global $mainframe; // Initialize some variables $option = JRequest::getCmd('option'); $template = JRequest::getVar('id', '', 'method', 'cmd'); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); // Determine template CSS directory $dir = $client->path.DS.'templates'.DS.$template.DS.'css'; // List template .css files jimport('joomla.filesystem.folder'); $files = JFolder::files($dir, '\.css$', false, false); // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); require_once (JPATH_COMPONENT.DS.'admin.templates.html.php'); TemplatesView::chooseCSSFiles($template, $dir, $files, $option, $client); } function editTemplateCSS() { global $mainframe; // Initialize some variables $option = JRequest::getCmd('option'); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $template = JRequest::getVar('id', '', 'method', 'cmd'); $filename = JRequest::getVar('filename', '', 'method', 'cmd'); jimport('joomla.filesystem.file'); if (JFile::getExt($filename) !== 'css') { $msg = JText::_('Wrong file type given, only CSS files can be edited.'); $mainframe->redirect('index.php?option='.$option.'&client='.$client->id.'&task=choose_css&id='.$template, $msg, 'error'); } $content = JFile::read($client->path.DS.'templates'.DS.$template.DS.'css'.DS.$filename); if ($content !== false) { // Set FTP credentials, if given jimport('joomla.client.helper'); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); $content = htmlspecialchars($content, ENT_COMPAT, 'UTF-8'); require_once (JPATH_COMPONENT.DS.'admin.templates.html.php'); TemplatesView::editCSSSource($template, $filename, $content, $option, $client, $ftp); } else { $msg = JText::sprintf('Operation Failed Could not open', $client->path.$filename); $mainframe->redirect('index.php?option='.$option.'&client='.$client->id, $msg); } } function saveTemplateCSS() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $option = JRequest::getCmd('option'); $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int')); $template = JRequest::getVar('id', '', 'post', 'cmd'); $filename = JRequest::getVar('filename', '', 'post', 'cmd'); $filecontent = JRequest::getVar('filecontent', '', 'post', 'string', JREQUEST_ALLOWRAW); if (!$template) { $mainframe->redirect('index.php?option='.$option.'&client='.$client->id, JText::_('Operation Failed').': '.JText::_('No template specified.')); } if (!$filecontent) { $mainframe->redirect('index.php?option='.$option.'&client='.$client->id, JText::_('Operation Failed').': '.JText::_('Content empty.')); } // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); $ftp = JClientHelper::getCredentials('ftp'); $file = $client->path.DS.'templates'.DS.$template.DS.'css'.DS.$filename; // Try to make the css file writeable if (!$ftp['enabled'] && JPath::isOwner($file) && !JPath::setPermissions($file, '0755')) { JError::raiseNotice('SOME_ERROR_CODE', JText::_('Could not make the css file writable')); } jimport('joomla.filesystem.file'); $return = JFile::write($file, $filecontent); // Try to make the css file unwriteable if (!$ftp['enabled'] && JPath::isOwner($file) && !JPath::setPermissions($file, '0555')) { JError::raiseNotice('SOME_ERROR_CODE', JText::_('Could not make the css file unwritable')); } if ($return) { $task = JRequest::getCmd('task'); switch($task) { case 'apply_css': $mainframe->redirect('index.php?option='.$option.'&client='.$client->id.'&task=edit_css&id='.$template.'&filename='.$filename, JText::_('File Saved')); break; case 'save_css': default: $mainframe->redirect('index.php?option='.$option.'&client='.$client->id.'&task=edit&cid[]='.$template, JText::_('File Saved')); break; } } else { $mainframe->redirect('index.php?option='.$option.'&client='.$client->id.'&id='.$template.'&task=choose_css', JText::_('Operation Failed').': '.JText::sprintf('Failed to open file for writing.', $file)); } } } elracodelangela/administrator/components/com_templates/admin.templates.html.php0000755000176700017710000004075511061563414031102 0ustar essawireessawireauthorUrl) && $row->authorUrl != '') { $row->authorUrl = str_replace('http://', '', $row->authorUrl); } JHTML::_('behavior.tooltip'); ?>
    id == 1) { ?> authorEmail . '
    ' . @ $row->authorUrl; ?> id == 1) { ?>
    getListFooter(); ?>
    getRowOffset( $i ); ?> get ('id'), $row->checked_out )) { ?>   id == 1 ? JURI::root().'administrator' : $mainframe->getSiteURL() ).'/templates/'.$row->directory.'/template_thumbnail.png'; ?> name;?> published == 1) { ?> <?php echo JText::_( 'Published' ); ?>   published == 1) { ?> <?php echo JText::_( 'Default' ); ?>   assigned == 1) { ?> <?php echo JText::_( 'Assigned' ); ?>   version; ?> creationdate; ?> author != '' ? $row->author : ' '; ?>
    id ? JURI::base() : $mainframe->getSiteURL(); ?>
    '_blank')); ?>
    'previewFrame')) ?>

    message); ?>

    : name); ?>
    : description); ?>
    pages != 'all' && $client->id != 1) : ?>
    : id == 1) { echo JText::_('Cannot assign administrator template'); } elseif ($row->pages == 'all') { echo JText::_('Cannot assign default template'); echo ''; } elseif ($row->pages == 'none') { ?>
    : pages == 'none') { ?>
    path.$templatefile) ? JText::sprintf('PARAMSWRITABLE', $templatefile):JText::sprintf('PARAMSUNWRITABLE', $templatefile); ?>
    render(); } else { echo '' . JText :: _('No Parameters') . ''; } ?>
    path .DS. 'templates' .DS. $template .DS. 'index.php'; ?>

    message); ?>

     
    /
    '. JText::_( 'Writable' ) .'' : ' '. JText::_( 'Unwritable' ) .'' ?>
    path . $filename; ?>

    message); ?>

    id == '1') { JToolBarHelper::makeDefault('publish'); } else { JToolBarHelper::makeDefault(); } JToolBarHelper::editListX( 'edit', 'Edit' ); //JToolBarHelper::addNew(); JToolBarHelper::help( 'screen.templates' ); } function _VIEW(&$client){ JToolBarHelper::title( JText::_( 'Template Manager' ), 'thememanager' ); JToolBarHelper::back(); } function _EDIT_SOURCE(&$client){ JToolBarHelper::title( JText::_( 'Template HTML Editor' ), 'thememanager' ); JToolBarHelper::save( 'save_source' ); JToolBarHelper::apply( 'apply_source' ); JToolBarHelper::cancel('edit'); JToolBarHelper::help( 'screen.templates' ); } function _EDIT(&$client){ JToolBarHelper::title( JText::_( 'Template' ) . ': [ '. JText::_( 'Edit' ) .' ]', 'thememanager' ); JToolBarHelper::custom('preview', 'preview.png', 'preview_f2.png', 'Preview', false, false); JToolBarHelper::custom( 'edit_source', 'html.png', 'html_f2.png', 'Edit HTML', false, false ); JToolBarHelper::custom( 'choose_css', 'css.png', 'css_f2.png', 'Edit CSS', false, false ); JToolBarHelper::save( 'save' ); JToolBarHelper::apply(); JToolBarHelper::cancel( 'cancel', 'Close' ); JToolBarHelper::help( 'screen.templates' ); } function _CHOOSE_CSS(&$client){ JToolBarHelper::title( JText::_( 'Template CSS Editor' ), 'thememanager' ); JToolBarHelper::custom( 'edit_css', 'edit.png', 'edit_f2.png', 'Edit', true ); JToolBarHelper::cancel('edit'); JToolBarHelper::help( 'screen.templates' ); } function _EDIT_CSS(&$client){ JToolBarHelper::title( JText::_( 'Template Manager' ), 'thememanager' ); JToolBarHelper::save( 'save_css' ); JToolBarHelper::apply( 'apply_css'); JToolBarHelper::cancel('choose_css'); JToolBarHelper::help( 'screen.templates' ); } }elracodelangela/administrator/components/com_installer/0000755000176700017710000000000011061563564024330 5ustar essawireessawireelracodelangela/administrator/components/com_installer/helper.php0000755000176700017710000000204511061563430026314 0ustar essawireessawire'.JText::_( 'Writable' ).'' : ''.JText::_( 'Unwritable' ).''; } }elracodelangela/administrator/components/com_installer/installer.xml0000755000176700017710000000102111061563430027034 0ustar essawireessawire Installation Manager Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Installation Manager elracodelangela/administrator/components/com_installer/models/0000755000176700017710000000000011061563565025614 5ustar essawireessawireelracodelangela/administrator/components/com_installer/models/extension.php0000755000176700017710000000742211061563431030341 0ustar essawireessawiresetState('pagination.limit', $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int')); $this->setState('pagination.offset',$mainframe->getUserStateFromRequest('com_installer.limitstart.'.$this->_type, 'limitstart', 0, 'int')); $this->setState('pagination.total', 0); } function &getItems() { if (empty($this->_items)) { // Load the items $this->_loadItems(); } return $this->_items; } function &getPagination() { if (empty($this->_pagination)) { // Make sure items are loaded for a proper total if (empty($this->_items)) { // Load the items $this->_loadItems(); } // Load the pagination object jimport('joomla.html.pagination'); $this->_pagination = new JPagination($this->_state->get('pagination.total'), $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit')); } return $this->_pagination; } /** * Remove (uninstall) an extension * * @static * @param array An array of identifiers * @return boolean True on success * @since 1.0 */ function remove($eid=array()) { global $mainframe; // Initialize variables $failed = array (); /* * Ensure eid is an array of extension ids in the form id => client_id * TODO: If it isn't an array do we want to set an error and fail? */ if (!is_array($eid)) { $eid = array($eid => 0); } // Get a database connector $db =& JFactory::getDBO(); // Get an installer object for the extension type jimport('joomla.installer.installer'); $installer = & JInstaller::getInstance(); // Uninstall the chosen extensions foreach ($eid as $id => $clientId) { $id = trim( $id ); $result = $installer->uninstall($this->_type, $id, $clientId ); // Build an array of extensions that failed to uninstall if ($result === false) { $failed[] = $id; } } if (count($failed)) { // There was an error in uninstalling the package $msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Error')); $result = false; } else { // Package uninstalled sucessfully $msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Success')); $result = true; } $mainframe->enqueueMessage($msg); $this->setState('action', 'remove'); $this->setState('name', $installer->get('name')); $this->setState('message', $installer->message); $this->setState('extension.message', $installer->get('extension.message')); return $result; } function _loadItems() { return JError::raiseError( 500, JText::_('Method Not Implemented')); } }elracodelangela/administrator/components/com_installer/models/languages.php0000755000176700017710000001451411061563431030273 0ustar essawireessawiresetState('filter.string', $mainframe->getUserStateFromRequest( "com_installer.languages.string", 'filter', '', 'string' )); $this->setState('filter.client', $mainframe->getUserStateFromRequest( "com_installer.languages.client", 'client', -1, 'int' )); } function _loadItems() { global $mainframe, $option; $db = &JFactory::getDBO(); if ($this->_state->get('filter.client') < 0) { $client = 'all'; // Get the site languages $langBDir = JLanguage::getLanguagePath(JPATH_SITE); $langDirs = JFolder::folders($langBDir); for ($i=0; $i < count($langDirs); $i++) { $lang = new stdClass(); $lang->folder = $langDirs[$i]; $lang->client = 0; $lang->baseDir = $langBDir; $languages[] = $lang; } // Get the admin languages $langBDir = JLanguage::getLanguagePath(JPATH_ADMINISTRATOR); $langDirs = JFolder::folders($langBDir); for ($i=0; $i < count($langDirs); $i++) { $lang = new stdClass(); $lang->folder = $langDirs[$i]; $lang->client = 1; $lang->baseDir = $langBDir; $languages[] = $lang; } } else { $clientInfo =& JApplicationHelper::getClientInfo($this->_state->get('filter.client')); $client = $clientInfo->name; $langBDir = JLanguage::getLanguagePath($clientInfo->path); $langDirs = JFolder::folders($langBDir); for ($i=0, $n=count($langDirs); $i < $n; $i++) { $lang = new stdClass(); $lang->folder = $langDirs[$i]; $lang->client = $clientInfo->id; $lang->baseDir = $langBDir; if ($this->_state->get('filter.string')) { if (strpos($lang->folder, $this->_state->get('filter.string')) !== false) { $languages[] = $lang; } } else { $languages[] = $lang; } } } $rows = array(); $rowid = 0; foreach ($languages as $language) { $files = JFolder::files( $language->baseDir.DS.$language->folder, '^([-_A-Za-z]*)\.xml$' ); foreach ($files as $file) { $data = JApplicationHelper::parseXMLLangMetaFile($language->baseDir.DS.$language->folder.DS.$file); $row = new StdClass(); $row->id = $rowid; $row->client_id = $language->client; $row->language = $language->baseDir.DS.$language->folder; // If we didn't get valid data from the xml file, move on... if (!is_array($data)) { continue; } // Populate the row from the xml meta file foreach($data as $key => $value) { $row->$key = $value; } // if current than set published $clientVals =& JApplicationHelper::getClientInfo($row->client_id); $lang = 'lang_'.$clientVals->name; if ( $mainframe->getCfg($lang) == basename( $row->language ) ) { $row->published = 1; } else { $row->published = 0; } $row->checked_out = 0; $row->jname = JString::strtolower( str_replace( " ", "_", $row->name ) ); $rows[] = $row; $rowid++; } } $this->setState('pagination.total', count($rows)); // if the offset is greater than the total, then can the offset if($this->_state->get('pagination.offset') > $this->_state->get('pagination.total')) { $this->setState('pagination.offset',0); } if($this->_state->get('pagination.limit') > 0) { $this->_items = array_slice( $rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit') ); } else { $this->_items = $rows; } } /** * Remove (uninstall) an extension * * @static * @return boolean True on success * @since 1.0 */ function remove($eid=array()) { global $mainframe; $lang =& JFactory::getLanguage(); $lang->load('com_installer'); // Initialize variables $failed = array (); /* * Ensure eid is an array of extension ids * TODO: If it isn't an array do we want to set an error and fail? */ if (!is_array($eid)) { $eid = array ($eid); } // construct the list of all language $this->_loadItems(); // Get a database connector $db =& JFactory::getDBO(); // Get an installer object for the extension type jimport('joomla.installer.installer'); $installer =& JInstaller::getInstance($db, $this->_type); // Uninstall the chosen extensions foreach ($eid as $id) { $item = $this->_items[$id]; // Get client information $client =& JApplicationHelper::getClientInfo($item->client_id); // Don't delete a default ( published language ) $params = JComponentHelper::getParams('com_languages'); $tag = basename($item->language); if ( $params->get($client->name, 'en-GB') == $tag ) { $failed[] = $id; JError::raiseWarning('', JText::_('UNINSTALLLANGPUBLISHEDALREADY')); return; } $result = $installer->uninstall( 'language', $item->language ); // Build an array of extensions that failed to uninstall if ($result === false) { $failed[] = $id; } } if (count($failed)) { // There was an error in uninstalling the package $msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Error')); $result = false; } else { // Package uninstalled sucessfully $msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Success')); $result = true; } $mainframe->enqueueMessage($msg); $this->setState('action', 'remove'); $this->setState('message', $installer->message); // re-construct the list of all language $this->_loadItems(); return $result; } }elracodelangela/administrator/components/com_installer/models/plugins.php0000755000176700017710000000703211061563431030003 0ustar essawireessawiresetState('filter.group', $mainframe->getUserStateFromRequest( "com_installer.plugins.group", 'group', '', 'cmd' )); $this->setState('filter.string', $mainframe->getUserStateFromRequest( "com_installer.plugins.string", 'filter', '', 'string' )); } function &getGroups() { // Get a database connector object $db = &$this->getDBO(); // get list of Positions for dropdown filter $query = 'SELECT folder AS value, folder AS text' . ' FROM #__plugins' . ' GROUP BY folder' . ' ORDER BY folder'; $db->setQuery( $query ); $types[] = JHTML::_('select.option', '', JText::_( 'All' ) ); $types = array_merge( $types, $db->loadObjectList() ); return $types; } function _loadItems() { global $mainframe, $option; // Get a database connector $db = & JFactory::getDBO(); $where = null; if ($this->_state->get('filter.group')) { if ($search = $this->_state->get('filter.string')) { $where = ' WHERE folder = "'.$db->getEscaped($this->_state->get('filter.group')).'"'; $where .= ' AND name LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } else { $where = ' WHERE folder = "'.$db->getEscaped($this->_state->get('filter.group')).'"'; } } else { if ($search = $this->_state->get('filter.string')) { $where .= ' WHERE name LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } } $query = 'SELECT id, name, folder, element, client_id, iscore' . ' FROM #__plugins' . $where . ' ORDER BY iscore, folder, name'; $db->setQuery($query); $rows = $db->loadObjectList(); // Get the plugin base path $baseDir = JPATH_ROOT.DS.'plugins'; $numRows = count($rows); for ($i = 0; $i < $numRows; $i ++) { $row = & $rows[$i]; // Get the plugin xml file $xmlfile = $baseDir.DS.$row->folder.DS.$row->element.".xml"; if (file_exists($xmlfile)) { if ($data = JApplicationHelper::parseXMLInstallFile($xmlfile)) { foreach($data as $key => $value) { $row->$key = $value; } } } } $this->setState('pagination.total', $numRows); // if the offset is greater than the total, then can the offset if($this->_state->get('pagination.offset') > $this->_state->get('pagination.total')) { $this->setState('pagination.offset',0); } if($this->_state->get('pagination.limit') > 0) { $this->_items = array_slice( $rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit') ); } else { $this->_items = $rows; } } }elracodelangela/administrator/components/com_installer/models/index.html0000755000176700017710000000005411061563431027603 0ustar essawireessawireelracodelangela/administrator/components/com_installer/models/install.php0000755000176700017710000001365411061563431027777 0ustar essawireessawiresetState('action', 'install'); switch(JRequest::getWord('installtype')) { case 'folder': $package = $this->_getPackageFromFolder(); break; case 'upload': $package = $this->_getPackageFromUpload(); break; case 'url': $package = $this->_getPackageFromUrl(); break; default: $this->setState('message', 'No Install Type Found'); return false; break; } // Was the package unpacked? if (!$package) { $this->setState('message', 'Unable to find install package'); return false; } // Get a database connector //$db = & JFactory::getDBO(); // Get an installer instance $installer =& JInstaller::getInstance(); // Install the package if (!$installer->install($package['dir'])) { // There was an error installing the package $msg = JText::sprintf('INSTALLEXT', JText::_($package['type']), JText::_('Error')); $result = false; } else { // Package installed sucessfully $msg = JText::sprintf('INSTALLEXT', JText::_($package['type']), JText::_('Success')); $result = true; } // Set some model state values $mainframe->enqueueMessage($msg); $this->setState('name', $installer->get('name')); $this->setState('result', $result); $this->setState('message', $installer->message); $this->setState('extension.message', $installer->get('extension.message')); // Cleanup the install files if (!is_file($package['packagefile'])) { $config =& JFactory::getConfig(); $package['packagefile'] = $config->getValue('config.tmp_path').DS.$package['packagefile']; } JInstallerHelper::cleanupInstall($package['packagefile'], $package['extractdir']); return $result; } /** * @param string The class name for the installer */ function _getPackageFromUpload() { // Get the uploaded file information $userfile = JRequest::getVar('install_package', null, 'files', 'array' ); // Make sure that file uploads are enabled in php if (!(bool) ini_get('file_uploads')) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('WARNINSTALLFILE')); return false; } // Make sure that zlib is loaded so that the package can be unpacked if (!extension_loaded('zlib')) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('WARNINSTALLZLIB')); return false; } // If there is no uploaded file, we have a problem... if (!is_array($userfile) ) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('No file selected')); return false; } // Check if there was a problem uploading the file. if ( $userfile['error'] || $userfile['size'] < 1 ) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('WARNINSTALLUPLOADERROR')); return false; } // Build the appropriate paths $config =& JFactory::getConfig(); $tmp_dest = $config->getValue('config.tmp_path').DS.$userfile['name']; $tmp_src = $userfile['tmp_name']; // Move uploaded file jimport('joomla.filesystem.file'); $uploaded = JFile::upload($tmp_src, $tmp_dest); // Unpack the downloaded package file $package = JInstallerHelper::unpack($tmp_dest); return $package; } /** * Install an extension from a directory * * @static * @return boolean True on success * @since 1.0 */ function _getPackageFromFolder() { // Get the path to the package to install $p_dir = JRequest::getString('install_directory'); $p_dir = JPath::clean( $p_dir ); // Did you give us a valid directory? if (!is_dir($p_dir)) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('Please enter a package directory')); return false; } // Detect the package type $type = JInstallerHelper::detectType($p_dir); // Did you give us a valid package? if (!$type) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('Path does not have a valid package')); return false; } $package['packagefile'] = null; $package['extractdir'] = null; $package['dir'] = $p_dir; $package['type'] = $type; return $package; } /** * Install an extension from a URL * * @static * @return boolean True on success * @since 1.5 */ function _getPackageFromUrl() { // Get a database connector $db = & JFactory::getDBO(); // Get the URL of the package to install $url = JRequest::getString('install_url'); // Did you give us a URL? if (!$url) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('Please enter a URL')); return false; } // Download the package at the URL given $p_file = JInstallerHelper::downloadPackage($url); // Was the package downloaded? if (!$p_file) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('Invalid URL')); return false; } $config =& JFactory::getConfig(); $tmp_dest = $config->getValue('config.tmp_path'); // Unpack the downloaded package file $package = JInstallerHelper::unpack($tmp_dest.DS.$p_file); return $package; } }elracodelangela/administrator/components/com_installer/models/templates.php0000755000176700017710000001143511061563431030322 0ustar essawireessawiresetState('filter.string', $mainframe->getUserStateFromRequest( "com_installer.templates.string", 'filter', '', 'string' )); $this->setState('filter.client', $mainframe->getUserStateFromRequest( "com_installer.templates.client", 'client', -1, 'int' )); } function _loadItems() { global $mainframe, $option; $db = &JFactory::getDBO(); if ($this->_state->get('filter.client') < 0) { $client = 'all'; // Get the site templates $templateDirs = JFolder::folders(JPATH_SITE.DS.'templates'); for ($i=0; $i < count($templateDirs); $i++) { $template = new stdClass(); $template->folder = $templateDirs[$i]; $template->client = 0; $template->baseDir = JPATH_SITE.DS.'templates'; if ($this->_state->get('filter.string')) { if (strpos($template->folder, $this->_state->get('filter.string')) !== false) { $templates[] = $template; } } else { $templates[] = $template; } } // Get the admin templates $templateDirs = JFolder::folders(JPATH_ADMINISTRATOR.DS.'templates'); for ($i=0; $i < count($templateDirs); $i++) { $template = new stdClass(); $template->folder = $templateDirs[$i]; $template->client = 1; $template->baseDir = JPATH_ADMINISTRATOR.DS.'templates'; if ($this->_state->get('filter.string')) { if (strpos($template->folder, $this->_state->get('filter.string')) !== false) { $templates[] = $template; } } else { $templates[] = $template; } } } else { $clientInfo =& JApplicationHelper::getClientInfo($this->_state->get('filter.client')); $client = $clientInfo->name; $templateDirs = JFolder::folders($clientInfo->path.DS.'templates'); for ($i=0; $i < count($templateDirs); $i++) { $template = new stdClass(); $template->folder = $templateDirs[$i]; $template->client = $clientInfo->id; $template->baseDir = $clientInfo->path.DS.'templates'; if ($this->_state->get('filter.string')) { if (strpos($template->folder, $this->_state->get('filter.string')) !== false) { $templates[] = $template; } } else { $templates[] = $template; } } } // Get a list of the currently active templates $query = 'SELECT template' . ' FROM #__templates_menu' . ' WHERE 1'; $db->setQuery($query); $activeList = $db->loadResultArray(); $rows = array(); $rowid = 0; // Check that the directory contains an xml file foreach($templates as $template) { $dirName = $template->baseDir .DS. $template->folder; $xmlFilesInDir = JFolder::files($dirName,'.xml$'); foreach($xmlFilesInDir as $xmlfile) { $data = JApplicationHelper::parseXMLInstallFile($dirName . DS. $xmlfile); $row = new StdClass(); $row->id = $rowid; $row->client_id = $template->client; $row->directory = $template->folder; $row->baseDir = $template->baseDir; // Is the template active? if (in_array($row->directory, $activeList)) { $row->active = true; } else { $row->active = false; } if ($data) { foreach($data as $key => $value) { $row->$key = $value; } } $row->checked_out = 0; $row->jname = JString::strtolower( str_replace( ' ', '_', $row->name ) ); $rows[] = $row; $rowid++; } } $this->setState('pagination.total', count($rows)); // if the offset is greater than the total, then can the offset if($this->_state->get('pagination.offset') > $this->_state->get('pagination.total')) { $this->setState('pagination.offset',0); } if($this->_state->get('pagination.limit') > 0) { $this->_items = array_slice( $rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit') ); } else { $this->_items = $rows; } } }elracodelangela/administrator/components/com_installer/models/modules.php0000755000176700017710000000632411061563431027775 0ustar essawireessawiresetState('filter.string', $mainframe->getUserStateFromRequest( 'com_installer.modules.string', 'filter', '', 'string' )); $this->setState('filter.client', $mainframe->getUserStateFromRequest( 'com_installer.modules.client', 'client', -1, 'int' )); } function _loadItems() { global $mainframe, $option; $db = &JFactory::getDBO(); $and = null; if ($this->_state->get('filter.client') < 0) { if ($search = $this->_state->get('filter.string')) { $and = ' AND title LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } } else { if ($search = $this->_state->get('filter.string')) { $and = ' AND client_id = '.(int)$this->_state->get('filter.client'); $and .= ' AND title LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } else { $and = ' AND client_id = '.(int)$this->_state->get('filter.client'); } } $query = 'SELECT id, module, client_id, title, iscore' . ' FROM #__modules' . ' WHERE module LIKE "mod_%" ' . $and . ' GROUP BY module, client_id' . ' ORDER BY iscore, client_id, module'; $db->setQuery($query); $rows = $db->loadObjectList(); $n = count($rows); for ($i = 0; $i < $n; $i ++) { $row = & $rows[$i]; // path to module directory if ($row->client_id == "1") { $moduleBaseDir = JPATH_ADMINISTRATOR.DS."modules"; } else { $moduleBaseDir = JPATH_SITE.DS."modules"; } // xml file for module $xmlfile = $moduleBaseDir . DS . $row->module .DS. $row->module.".xml"; if (file_exists($xmlfile)) { if ($data = JApplicationHelper::parseXMLInstallFile($xmlfile)) { foreach($data as $key => $value) { $row->$key = $value; } } } } $this->setState('pagination.total', $n); // if the offset is greater than the total, then can the offset if($this->_state->get('pagination.offset') > $this->_state->get('pagination.total')) { $this->setState('pagination.offset',0); } if($this->_state->get('pagination.limit') > 0) { $this->_items = array_slice( $rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit') ); } else { $this->_items = $rows; } } }elracodelangela/administrator/components/com_installer/models/components.php0000755000176700017710000000774211061563431030517 0ustar essawireessawire_type); // Enable the extension in the table and store it in the database foreach ($eid as $id) { $table->load($id); $table->enabled = '1'; $result |= $table->store(); } return $result; } /** * Disable a component * * @return boolean True on success * @since 1.5 */ function disable($eid=array()) { // Initialize variables $result = false; /* * Ensure eid is an array of extension ids * TODO: If it isn't an array do we want to set an error and fail? */ if (!is_array($eid)) { $eid = array ($eid); } // Get a database connector $db =& JFactory::getDBO(); // Get a table object for the extension type $table = & JTable::getInstance($this->_type); // Disable the extension in the table and store it in the database foreach ($eid as $id) { $table->load($id); $table->enabled = '0'; $result |= $table->store(); } return $result; } function _loadItems() { global $mainframe, $option; jimport('joomla.filesystem.folder'); /* Get a database connector */ $db =& JFactory::getDBO(); $query = 'SELECT *' . ' FROM #__components' . ' WHERE parent = 0' . ' ORDER BY iscore, name'; $db->setQuery($query); $rows = $db->loadObjectList(); /* Get the component base directory */ $adminDir = JPATH_ADMINISTRATOR .DS. 'components'; $siteDir = JPATH_SITE .DS. 'components'; $numRows = count($rows); for($i=0;$i < $numRows; $i++) { $row =& $rows[$i]; /* Get the component folder and list of xml files in folder */ $folder = $adminDir.DS.$row->option; if (JFolder::exists($folder)) { $xmlFilesInDir = JFolder::files($folder, '.xml$'); } else { $folder = $siteDir.DS.$row->option; if (JFolder::exists($folder)) { $xmlFilesInDir = JFolder::files($folder, '.xml$'); } else { $xmlFilesInDir = null; } } if (count($xmlFilesInDir)) { foreach ($xmlFilesInDir as $xmlfile) { if ($data = JApplicationHelper::parseXMLInstallFile($folder.DS.$xmlfile)) { foreach($data as $key => $value) { $row->$key = $value; } } $row->jname = JString::strtolower(str_replace(" ", "_", $row->name)); } } } $this->setState('pagination.total', $numRows); // if the offset is greater than the total, then can the offset if($this->_state->get('pagination.offset') > $this->_state->get('pagination.total')) { $this->setState('pagination.offset',0); } if($this->_state->get('pagination.limit') > 0) { $this->_items = array_slice( $rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit') ); } else { $this->_items = $rows; } } }elracodelangela/administrator/components/com_installer/index.html0000755000176700017710000000005411061563430026317 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/0000755000176700017710000000000011061563564025465 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/install/0000755000176700017710000000000011061563564027133 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/install/index.html0000755000176700017710000000005411061563430031122 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/install/tmpl/0000755000176700017710000000000011061563564030107 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/install/tmpl/index.html0000755000176700017710000000005411061563430032076 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/install/tmpl/default.php0000755000176700017710000000021411061563430032234 0ustar essawireessawireshowMessage) : ?> loadTemplate('message'); ?> loadTemplate('form'); ?> elracodelangela/administrator/components/com_installer/views/install/tmpl/default_form.php0000755000176700017710000000515011061563430033263 0ustar essawireessawire
    ftp) : ?> loadTemplate('ftp'); ?>
    elracodelangela/administrator/components/com_installer/views/install/view.php0000755000176700017710000000221411061563430030610 0ustar essawireessawirefirst = ''; $this->assignRef('paths', $paths); $this->assignRef('state', $this->get('state')); parent::display($tpl); } }elracodelangela/administrator/components/com_installer/views/languages/0000755000176700017710000000000011061563564027433 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/languages/index.html0000755000176700017710000000005411061563430031422 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/languages/tmpl/0000755000176700017710000000000011061563564030407 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/languages/tmpl/index.html0000755000176700017710000000005411061563430032376 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/languages/tmpl/default_item.php0000755000176700017710000000177411061563430033566 0ustar essawireessawireitem->index % 2; ?>" item->style; ?>> pagination->getRowOffset( $this->item->index ); ?> item->cbd; ?> /> item->name; ?> item->client_id == "0" ? JText::_( 'Site' ) : JText::_( 'Admin' ); ?> item->version != '' ? $this->item->version : ' '; ?> item->creationdate != '' ? $this->item->creationdate : ' '; ?> item->author != '' ? $this->item->author : ' '; ?> elracodelangela/administrator/components/com_installer/views/languages/tmpl/default.php0000755000176700017710000000314711061563430032544 0ustar essawireessawire
    ftp) : ?> loadTemplate('ftp'); ?>
    lists->client; ?>
    items)) : ?> items), $rc=0; $i < $n; $i++, $rc = 1 - $rc) : ?> loadItem($i); echo $this->loadTemplate('item'); ?>
    pagination->getListFooter(); ?>
    elracodelangela/administrator/components/com_installer/views/languages/view.php0000755000176700017710000000425711061563430031121 0ustar essawireessawireget('State'); $items = &$this->get('Items'); $pagination = &$this->get('Pagination'); $lists = new stdClass(); $select[] = JHTML::_('select.option', '-1', JText::_('All')); $select[] = JHTML::_('select.option', '0', JText::_('Site Languages')); $select[] = JHTML::_('select.option', '1', JText::_('Admin Languages')); $lists->client = JHTML::_('select.genericlist', $select, 'client', 'class="inputbox" size="1" onchange="document.adminForm.submit();"', 'value', 'text', $state->get('filter.client')); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); $this->assignRef('lists', $lists); parent::display($tpl); } function loadItem($index=0) { $item =& $this->items[$index]; $item->index = $index; if ($item->published) { $item->cbd = 'disabled'; $item->style = 'style="color:#999999;"'; } else { $item->cbd = null; $item->style = null; } $item->author_info = @$item->authorEmail .'
    '. @$item->authorUrl; $this->assignRef('item', $item); } } elracodelangela/administrator/components/com_installer/views/default/0000755000176700017710000000000011061563564027111 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/default/index.html0000755000176700017710000000005411061563431031101 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/default/tmpl/0000755000176700017710000000000011061563564030065 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/default/tmpl/index.html0000755000176700017710000000005411061563431032055 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/default/tmpl/default_message.php0000755000176700017710000000060211061563431033720 0ustar essawireessawireget('State'); $message1 = $state->get('message'); $message2 = $state->get('extension.message'); ?>
    elracodelangela/administrator/components/com_installer/views/default/tmpl/default_ftp.php0000755000176700017710000000146211061563431033072 0ustar essawireessawire
    ftp)): ?>

    ftp->message); ?>

    elracodelangela/administrator/components/com_installer/views/default/view.php0000755000176700017710000000347111061563431030575 0ustar essawireessawire_addPath('template', $this->_basePath.DS.'views'.DS.'default'.DS.'tmpl'); } function display($tpl=null) { /* * Set toolbar items for the page */ JToolBarHelper::title( JText::_( 'Extension Manager'), 'install.png' ); // Document $document = & JFactory::getDocument(); $document->setTitle(JText::_('Extension Manager').' : '.JText::_( $this->getName() )); // Get data from the model $state = &$this->get('State'); // Are there messages to display ? $showMessage = false; if ( is_object($state) ) { $message1 = $state->get('message'); $message2 = $state->get('extension.message'); $showMessage = ( $message1 || $message2 ); } $this->assign('showMessage', $showMessage); $this->assignRef('state', $state); JHTML::_('behavior.tooltip'); parent::display($tpl); } /** * Should be overloaded by extending view * * @param int $index */ function loadItem($index=0) { } }elracodelangela/administrator/components/com_installer/views/modules/0000755000176700017710000000000011061563564027135 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/modules/index.html0000755000176700017710000000005411061563431031125 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/modules/tmpl/0000755000176700017710000000000011061563565030112 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/modules/tmpl/index.html0000755000176700017710000000005411061563431032101 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/modules/tmpl/default_item.php0000755000176700017710000000243711061563431033266 0ustar essawireessawireitem->index % 2; ?>" item->style; ?>> pagination->getRowOffset( $this->item->index ); ?> item->cbd; ?> /> item->module; ?> item->client_id == "0" ? JText::_( 'Site' ) : JText::_( 'Admin' ); ?> item->version != '' ? $this->item->version : ' '; ?> item->creationdate != '' ? $this->item->creationdate : ' '; ?> item->author != '' ? $this->item->author : ' '; ?> elracodelangela/administrator/components/com_installer/views/modules/tmpl/default.php0000755000176700017710000000326511061563431032250 0ustar essawireessawire
    ftp) : ?> loadTemplate('ftp'); ?>
    lists->client; ?>
    items)) : ?> items), $rc=0; $i < $n; $i++, $rc = 1 - $rc) : ?> loadItem($i); echo $this->loadTemplate('item'); ?>
    pagination->getListFooter(); ?>
    elracodelangela/administrator/components/com_installer/views/modules/view.php0000755000176700017710000000425111061563431030616 0ustar essawireessawireget('State'); $items = &$this->get('Items'); $pagination = &$this->get('Pagination'); $lists = new stdClass(); $select[] = JHTML::_('select.option', '-1', JText::_('All')); $select[] = JHTML::_('select.option', '0', JText::_('Site Modules')); $select[] = JHTML::_('select.option', '1', JText::_('Admin Modules')); $lists->client = JHTML::_('select.genericlist', $select, 'client', 'class="inputbox" size="1" onchange="document.adminForm.submit();"', 'value', 'text', $state->get('filter.client')); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); $this->assignRef('lists', $lists); JHTML::_('behavior.tooltip'); parent::display($tpl); } function loadItem($index=0) { $item =& $this->items[$index]; $item->index = $index; if ($item->iscore) { $item->cbd = 'disabled'; $item->style = 'style="color:#999999;"'; } else { $item->cbd = null; $item->style = null; } $item->author_info = @$item->authorEmail .'
    '. @$item->authorUrl; $this->assignRef('item', $item); } } elracodelangela/administrator/components/com_installer/views/components/0000755000176700017710000000000011061563564027652 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/components/index.html0000755000176700017710000000005411061563431031642 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/components/tmpl/0000755000176700017710000000000011061563564030626 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/components/tmpl/index.html0000755000176700017710000000005411061563431032616 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/components/tmpl/default_item.php0000755000176700017710000000320511061563431033775 0ustar essawireessawireitem->index % 2; ?>" item->style; ?>> pagination->getRowOffset( $this->item->index ); ?> item->cbd; ?> /> item->name; ?> item->option) : ?> X <?php echo $this->item->alt; ?> item->version != '' ? $this->item->version : ' '; ?> item->creationdate != '' ? $this->item->creationdate : ' '; ?> item->author != '' ? $this->item->author : ' '; ?> elracodelangela/administrator/components/com_installer/views/components/tmpl/default.php0000755000176700017710000000315411061563431032762 0ustar essawireessawire
    showMessage) : ?> loadTemplate('message'); ?> ftp) : ?> loadTemplate('ftp'); ?> items)) : ?> items), $rc=0; $i < $n; $i++, $rc = 1 - $rc) : ?> loadItem($i); echo $this->loadTemplate('item'); ?>
    pagination->getListFooter(); ?>
    elracodelangela/administrator/components/com_installer/views/components/view.php0000755000176700017710000000365411061563431031341 0ustar essawireessawireget('State'); $items = &$this->get('Items'); $pagination = &$this->get('Pagination'); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); parent::display($tpl); } function loadItem($index=0) { $item =& $this->items[$index]; $item->index = $index; $item->img = $item->enabled ? 'tick.png' : 'publish_x.png'; $item->task = $item->enabled ? 'disable' : 'enable'; $item->alt = $item->enabled ? JText::_( 'Enabled' ) : JText::_( 'Disabled' ); $item->action = $item->enabled ? JText::_( 'disable' ) : JText::_( 'enable' ); if ($item->iscore) { $item->cbd = 'disabled'; $item->style = 'style="color:#999999;"'; } else { $item->cbd = null; $item->style = null; } $item->author_info = @$item->authorEmail .'
    '. @$item->authorUrl; $this->assignRef('item', $item); } } elracodelangela/administrator/components/com_installer/views/index.html0000755000176700017710000000005411061563430027454 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/plugins/0000755000176700017710000000000011061563564027146 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/plugins/index.html0000755000176700017710000000005411061563430031135 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/plugins/tmpl/0000755000176700017710000000000011061563564030122 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/plugins/tmpl/index.html0000755000176700017710000000005411061563430032111 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/plugins/tmpl/default_item.php0000755000176700017710000000242211061563430033270 0ustar essawireessawireitem->index % 2; ?>" item->style; ?>> pagination->getRowOffset( $this->item->index ); ?> item->cbd; ?> /> item->name; ?> item->folder; ?> item->legacy) echo 'class="legacy-mode"'; ?>>item->version != '' ? $this->item->version : ' '; ?> item->creationdate != '' ? $this->item->creationdate : ' '; ?> item->author != '' ? $this->item->author : ' '; ?> elracodelangela/administrator/components/com_installer/views/plugins/tmpl/default.php0000755000176700017710000000324211061563430032253 0ustar essawireessawire
    ftp) : ?> loadTemplate('ftp'); ?>
    fields->groups; ?>
    items)) : ?> items), $rc=0; $i < $n; $i++, $rc = 1 - $rc) : ?> loadItem($i); echo $this->loadTemplate('item'); ?>
    pagination->getListFooter(); ?>
    elracodelangela/administrator/components/com_installer/views/plugins/view.php0000755000176700017710000000374011061563430030630 0ustar essawireessawireget('State'); $items = &$this->get('Items'); $pagination = &$this->get('Pagination'); $groups = &$this->get('Groups'); $fields = new stdClass(); $fields->groups = JHTML::_('select.genericlist', $groups, 'group', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'value', 'text', $state->get('filter.group') ); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); $this->assignRef('fields', $fields); parent::display($tpl); } function loadItem($index=0) { $item =& $this->items[$index]; $item->index = $index; if ($item->iscore) { $item->cbd = 'disabled'; $item->style = 'style="color:#999999;"'; } else { $item->cbd = null; $item->style = null; } $item->author_info = @$item->authorEmail .'
    '. @$item->authorUrl; $this->assignRef('item', $item); } } elracodelangela/administrator/components/com_installer/views/templates/0000755000176700017710000000000011061563564027463 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/templates/index.html0000755000176700017710000000005411061563431031453 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/templates/tmpl/0000755000176700017710000000000011061563564030437 5ustar essawireessawireelracodelangela/administrator/components/com_installer/views/templates/tmpl/index.html0000755000176700017710000000005411061563431032427 0ustar essawireessawireelracodelangela/administrator/components/com_installer/views/templates/tmpl/default_item.php0000755000176700017710000000254211061563431033611 0ustar essawireessawireitem->index % 2; ?>" item->style; ?>> pagination->getRowOffset( $this->item->index ); ?> item->cbd; ?> /> item->name; ?> item->client_id == "0" ? JText::_( 'Site' ) : JText::_( 'Admin' ); ?> item->legacy) echo 'class="legacy-mode"'; ?>>item->version != '' ? $this->item->version : ' '; ?> item->creationdate != '' ? $this->item->creationdate : ' '; ?> item->author != '' ? $this->item->author : ' '; ?> elracodelangela/administrator/components/com_installer/views/templates/tmpl/default.php0000755000176700017710000000327011061563431032572 0ustar essawireessawire
    ftp) : ?> loadTemplate('ftp'); ?>
    lists->client; ?>
    items)) : ?> items), $rc=0; $i < $n; $i++, $rc = 1 - $rc) : ?> loadItem($i); echo $this->loadTemplate('item'); ?>
    pagination->getListFooter(); ?>
    elracodelangela/administrator/components/com_installer/views/templates/view.php0000755000176700017710000000421211061563431031141 0ustar essawireessawireget('State'); $items = &$this->get('Items'); $pagination = &$this->get('Pagination'); $lists = new stdClass(); $select[] = JHTML::_('select.option', '-1', JText::_('All')); $select[] = JHTML::_('select.option', '0', JText::_('Site Templates')); $select[] = JHTML::_('select.option', '1', JText::_('Admin Templates')); $lists->client = JHTML::_('select.genericlist', $select, 'client', 'class="inputbox" size="1" onchange="document.adminForm.submit();"', 'value', 'text', $state->get('filter.client')); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); $this->assignRef('lists', $lists); parent::display($tpl); } function loadItem($index=0) { $item =& $this->items[$index]; $item->id = $item->directory; $item->index = $index; if ($item->active) { $item->cbd = 'disabled'; $item->style = 'style="color:#999999;"'; } else { $item->cbd = null; $item->style = null; } $item->author_information = @$item->authorEmail .'
    '. @$item->authorUrl; $this->assignRef('item', $item); } } elracodelangela/administrator/components/com_installer/controller.php0000755000176700017710000001105711061563430027223 0ustar essawireessawiregetModel( 'Install' ); $model->setState( 'install.directory', $mainframe->getCfg( 'config.tmp_path' )); $view = &$this->getView( 'Install'); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); $view->assignRef('ftp', $ftp); $view->setModel( $model, true ); $view->display(); } /** * Install an extension * * @access public * @return void * @since 1.5 */ function doInstall() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $model = &$this->getModel( 'Install' ); $view = &$this->getView( 'Install' ); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); $view->assignRef('ftp', $ftp); if ($model->install()) { $cache = &JFactory::getCache('mod_menu'); $cache->clean(); } $view->setModel( $model, true ); $view->display(); } /** * Manage an extension type (List extensions of a given type) * * @access public * @return void * @since 1.5 */ function manage() { $type = JRequest::getWord('type', 'components'); $model = &$this->getModel( $type ); $view = &$this->getView( $type ); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); $view->assignRef('ftp', $ftp); $view->setModel( $model, true ); $view->display(); } /** * Enable an extension (If supported) * * @access public * @return void * @since 1.5 */ function enable() { // Check for request forgeries JRequest::checkToken( 'request' ) or jexit( 'Invalid Token' ); $type = JRequest::getWord('type', 'components'); $model = &$this->getModel( $type ); $view = &$this->getView( $type ); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); $view->assignRef('ftp', $ftp); if (method_exists($model, 'enable')) { $eid = JRequest::getVar('eid', array(), '', 'array'); JArrayHelper::toInteger($eid, array()); $model->enable($eid); } $view->setModel( $model, true ); $view->display(); } /** * Disable an extension (If supported) * * @access public * @return void * @since 1.5 */ function disable() { // Check for request forgeries JRequest::checkToken( 'request' ) or jexit( 'Invalid Token' ); $type = JRequest::getWord('type', 'components'); $model = &$this->getModel( $type ); $view = &$this->getView( $type ); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); $view->assignRef('ftp', $ftp); if (method_exists($model, 'disable')) { $eid = JRequest::getVar('eid', array(), '', 'array'); JArrayHelper::toInteger($eid, array()); $model->disable($eid); } $view->setModel( $model, true ); $view->display(); } /** * Remove an extension (Uninstall) * * @access public * @return void * @since 1.5 */ function remove() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $type = JRequest::getWord('type', 'components'); $model = &$this->getModel( $type ); $view = &$this->getView( $type ); $ftp =& JClientHelper::setCredentialsFromRequest('ftp'); $view->assignRef('ftp', $ftp); $eid = JRequest::getVar('eid', array(), '', 'array'); // Update to handle components radio box // Checks there is only one extensions, we're uninstalling components // and then checks that the zero numbered item is set (shouldn't be a zero // if the eid is set to the proper format) if((count($eid) == 1) && ($type == 'components') && (isset($eid[0]))) $eid = array($eid[0] => 0); JArrayHelper::toInteger($eid, array()); $result = $model->remove($eid); $view->setModel( $model, true ); $view->display(); } }elracodelangela/administrator/components/com_installer/admin.installer.php0000755000176700017710000000321011061563430030114 0ustar essawireessawireauthorize('com_installer', 'installer')) { $mainframe->redirect('index.php', JText::_('ALERTNOTAUTH')); } $ext = JRequest::getWord('type'); $subMenus = array( 'Components' => 'components', 'Modules' => 'modules', 'Plugins' => 'plugins', 'Languages' => 'languages', 'Templates' => 'templates'); JSubMenuHelper::addEntry(JText::_( 'Install' ), '#" onclick="javascript:document.adminForm.type.value=\'\';submitbutton(\'installer\');', !in_array( $ext, $subMenus)); foreach ($subMenus as $name => $extension) { JSubMenuHelper::addEntry(JText::_( $name ), '#" onclick="javascript:document.adminForm.type.value=\''.$extension.'\';submitbutton(\'manage\');', ($extension == $ext)); } require_once( JPATH_COMPONENT.DS.'controller.php' ); $controller = new InstallerController( array('default_task' => 'installform') ); //die(JRequest::getCmd('task')); $controller->execute( JRequest::getCmd('task') ); $controller->redirect(); elracodelangela/administrator/components/index.html0000755000176700017710000000005411061563414023466 0ustar essawireessawireelracodelangela/administrator/components/com_sections/0000755000176700017710000000000011061563557024164 5ustar essawireessawireelracodelangela/administrator/components/com_sections/toolbar.sections.html.php0000755000176700017710000000425111061563414031125 0ustar essawireessawire[ '. $text.' ]', 'sections.png' ); JToolBarHelper::save(); JToolBarHelper::apply(); if ( $edit ) { // for existing items the button is renamed `close` JToolBarHelper::cancel( 'cancel', 'Close' ); } else { JToolBarHelper::cancel(); } JToolBarHelper::help( 'screen.sections.edit' ); } /** * Draws the menu for Copying existing sections * @param int The published state (to display the inverse button) */ function _COPY() { JToolBarHelper::title( JText::_( 'Section' ) .': [ '. JText::_( 'Copy' ).' ]', 'section.png' ); //JToolBarHelper::title( JText::_( 'Copy Section' ), 'sections.png' ); JToolBarHelper::save( 'copysave' ); JToolBarHelper::cancel(); } /** * Draws the menu for Editing an existing category */ function _DEFAULT(){ JToolBarHelper::title( JText::_( 'Section Manager' ), 'sections.png' ); JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::customX( 'copyselect', 'copy.png', 'copy_f2.png', 'Copy', true ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); JToolBarHelper::help( 'screen.sections' ); } }elracodelangela/administrator/components/com_sections/toolbar.sections.php0000755000176700017710000000173011061563414030161 0ustar essawireessawiregetUserStateFromRequest( $option.'.filter_order', 'filter_order', 's.ordering', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $option.'.filter_order_Dir', 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( $option.'.filter_state', 'filter_state', '', 'word' ); $search = $mainframe->getUserStateFromRequest( $option.'.search', 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); $where[] = 's.scope = '.$db->Quote($scope); if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 's.published = 1'; } else if ($filter_state == 'U' ) { $where[] = 's.published = 0'; } } if ($search) { $where[] = 'LOWER(s.title) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '.$filter_order.' '. $filter_order_Dir .', s.ordering'; // get the total number of records $query = 'SELECT COUNT(*)' . ' FROM #__sections AS s' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); $query = 'SELECT s.*, g.name AS groupname, u.name AS editor' . ' FROM #__sections AS s' . ' LEFT JOIN #__content AS cc ON s.id = cc.sectionid' . ' LEFT JOIN #__users AS u ON u.id = s.checked_out' . ' LEFT JOIN #__groups AS g ON g.id = s.access' . $where . ' GROUP BY s.id' . $orderby ; $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } $count = count( $rows ); // number of Active Categories for ( $i = 0; $i < $count; $i++ ) { $query = 'SELECT COUNT( a.id )' . ' FROM #__categories AS a' . ' WHERE a.section = '.$db->Quote($rows[$i]->id) . ' AND a.published <> -2' ; $db->setQuery( $query ); $active = $db->loadResult(); $rows[$i]->categories = $active; } // number of Active Items for ( $i = 0; $i < $count; $i++ ) { $query = 'SELECT COUNT( a.id )' . ' FROM #__content AS a' . ' WHERE a.sectionid = '.(int) $rows[$i]->id . ' AND a.state <> -2' ; $db->setQuery( $query ); $active = $db->loadResult(); $rows[$i]->active = $active; } // number of Trashed Items for ( $i = 0; $i < $count; $i++ ) { $query = 'SELECT COUNT( a.id )' . ' FROM #__content AS a' . ' WHERE a.sectionid = '.(int) $rows[$i]->id . ' AND a.state = -2' ; $db->setQuery( $query ); $trash = $db->loadResult(); $rows[$i]->trash = $trash; } // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; sections_html::show( $rows, $scope, $user->get('id'), $pageNav, $option, $lists ); } /** * Compiles information to add or edit a section * @param database A database connector object * @param string The name of the category section * @param integer The unique id of the category to edit (0 if new) * @param string The name of the current user */ function editSection( $edit) { global $mainframe; $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $option = JRequest::getCmd( 'option'); $scope = JRequest::getCmd( 'scope' ); $cid = JRequest::getVar( 'cid', array(0), '', 'array' ); JArrayHelper::toInteger($cid, array(0)); $row =& JTable::getInstance('section'); // load the row from the db table if ($edit) $row->load( $cid[0] ); // fail if checked out not by 'me' if ($row->isCheckedOut( $user->get('id') )) { $msg = JText::sprintf( 'DESCBEINGEDITTED', JText::_( 'The section' ), $row->title ); $mainframe->redirect( 'index.php?option='. $option .'&scope='. $row->scope, $msg ); } if ( $edit ) { $row->checkout( $user->get('id') ); } else { $row->scope = $scope; $row->published = 1; } // build the html select list for ordering $query = 'SELECT ordering AS value, title AS text' . ' FROM #__sections' . ' WHERE scope='.$db->Quote($row->scope).' ORDER BY ordering' ; if($edit) $lists['ordering'] = JHTML::_('list.specificordering', $row, $cid[0], $query ); else $lists['ordering'] = JHTML::_('list.specificordering', $row, '', $query ); // build the select list for the image positions $active = ( $row->image_position ? $row->image_position : 'left' ); $lists['image_position'] = JHTML::_('list.positions', 'image_position', $active, NULL, 0 ); // build the html select list for images $lists['image'] = JHTML::_('list.images', 'image', $row->image ); // build the html select list for the group access $lists['access'] = JHTML::_('list.accesslevel', $row ); // build the html radio buttons for published $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published ); sections_html::edit( $row, $option, $lists ); } /** * Saves the catefory after an edit form submit * @param database A database connector object * @param string The name of the category section */ function saveSection( $option, $scope, $task ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $menu = JRequest::getVar( 'menu', 'mainmenu', 'post', 'string' ); $menuid = JRequest::getVar( 'menuid', 0, 'post', 'int' ); $oldtitle = JRequest::getVar( 'oldtitle', '', '', 'post', 'string' ); $post = JRequest::get('post'); // fix up special html fields $post['description'] = JRequest::getVar( 'description', '', 'post', 'string', JREQUEST_ALLOWRAW ); $row =& JTable::getInstance('section'); if (!$row->bind($post)) { JError::raiseError(500, $row->getError() ); } if (!$row->check()) { JError::raiseError(500, $row->getError() ); } if ( $oldtitle ) { if ( $oldtitle <> $row->title ) { $query = 'UPDATE #__menu' . ' SET name = '.$db->Quote($row->title) . ' WHERE name = '.$db->Quote($oldtitle) . ' AND type = "content_section"' ; $db->setQuery( $query ); $db->query(); } } // if new item order last in appropriate group if (!$row->id) { $row->ordering = $row->getNextOrder(); } if (!$row->store()) { JError::raiseError(500, $row->getError() ); } $row->checkin(); switch ( $task ) { case 'go2menu': $mainframe->redirect( 'index.php?option=com_menus&menutype='. $menu ); break; case 'go2menuitem': $mainframe->redirect( 'index.php?option=com_menus&menutype='. $menu .'&task=edit&id='. $menuid ); break; case 'apply': $msg = JText::_( 'Changes to Section saved' ); $mainframe->redirect( 'index.php?option='. $option .'&scope='. $scope .'&task=edit&cid[]='. $row->id, $msg ); break; case 'save': default: $msg = JText::_( 'Section saved' ); $mainframe->redirect( 'index.php?option='. $option .'&scope='. $scope, $msg ); break; } } /** * Deletes one or more categories from the categories table * @param database A database connector object * @param string The name of the category section * @param array An array of unique category id numbers */ function removeSections( $cid, $scope, $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select a section to delete', true ) ); } JArrayHelper::toInteger( $cid ); $cids = implode( ',', $cid ); $query = 'SELECT s.id, s.title, COUNT(c.id) AS numcat' . ' FROM #__sections AS s' . ' LEFT JOIN #__categories AS c ON c.section=s.id' . ' WHERE s.id IN ( '.$cids.' )' . ' GROUP BY s.id' ; $db->setQuery( $query ); if (!($rows = $db->loadObjectList())) { echo "\n"; } $name = array(); $err = array(); $cid = array(); foreach ($rows as $row) { if ($row->numcat == 0) { $cid[] = (int) $row->id; $name[] = $row->title; } else { $err[] = $row->title; } } if (count( $cid )) { $cids = implode( ',', $cid ); $query = 'DELETE FROM #__sections' . ' WHERE id IN ( '.$cids.' )' ; $db->setQuery( $query ); if (!$db->query()) { echo "\n"; } } if (count( $err )) { $cids = implode( ', ', $err ); $msg = JText::sprintf( 'DESCCANNOTBEREMOVED', $cids ); $mainframe->redirect( 'index.php?option='. $option .'&scope='. $scope, $msg ); } $names = implode( ', ', $name ); $msg = JText::sprintf( 'Sections successfully deleted', $names ); $mainframe->redirect( 'index.php?option='. $option .'&scope='. $scope, $msg ); } /** * Publishes or Unpublishes one or more categories * @param database A database connector object * @param string The name of the category section * @param integer A unique category id (passed from an edit form) * @param array An array of unique category id numbers * @param integer 0 if unpublishing, 1 if publishing * @param string The name of the current user */ function publishSections( $scope, $cid=null, $publish=1, $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); JArrayHelper::toInteger($cid); if ( count( $cid ) < 1 ) { $action = $publish ? 'publish' : 'unpublish'; JError::raiseError(500, JText::_( 'Select a section to '.$action, true ) ); } $cids = implode( ',', $cid ); $count = count( $cid ); $query = 'UPDATE #__sections' . ' SET published = '.(int) $publish . ' WHERE id IN ( '.$cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id').' ) )' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } if ( $count == 1 ) { $row =& JTable::getInstance('section'); $row->checkin( $cid[0] ); } // check if section linked to menu items if unpublishing if ( $publish == 0 ) { $query = 'SELECT id' . ' FROM #__menu' . ' WHERE type = "content_section"' . ' AND componentid IN ( '.$cids.' )' ; $db->setQuery( $query ); $menus = $db->loadObjectList(); if ($menus) { foreach ($menus as $menu) { $query = 'UPDATE #__menu' . ' SET published = '.(int) $publish . ' WHERE id = '.(int) $menu->id ; $db->setQuery( $query ); $db->query(); } } } $mainframe->redirect( 'index.php?option='. $option .'&scope='. $scope ); } /** * Cancels an edit operation * @param database A database connector object * @param string The name of the category section * @param integer A unique category id */ function cancelSection( $option, $scope ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('section'); $row->bind(JRequest::get('post')); $row->checkin(); $mainframe->redirect( 'index.php?option='. $option .'&scope='. $scope ); } /** * Moves the order of a record * @param integer The increment to reorder by */ function orderSection( $uid, $inc, $option, $scope ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('section'); $row->load( $uid ); $row->move( $inc, 'scope = '.$db->Quote($row->scope) ); $mainframe->redirect( 'index.php?option='. $option .'&scope='. $scope ); } /** * Form for copying item(s) to a specific menu */ function copySectionSelect( $option, $cid, $section ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); JArrayHelper::toInteger($cid); if ( count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select an item to move', true ) ); } ## query to list selected categories $cids = implode( ',', $cid ); $query = 'SELECT a.title, a.id' . ' FROM #__categories AS a' . ' WHERE a.section IN ( '.$cids.' )' ; $db->setQuery( $query ); $categories = $db->loadObjectList(); ## query to list items from categories $query = 'SELECT a.title, a.id' . ' FROM #__content AS a' . ' WHERE a.sectionid IN ( '.$cids.' )' . ' ORDER BY a.sectionid, a.catid, a.title' ; $db->setQuery( $query ); $contents = $db->loadObjectList(); sections_html::copySectionSelect( $option, $cid, $categories, $contents, $section ); } /** * Save the item(s) to the menu selected */ function copySectionSave( $sectionid, $scope ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $title = JRequest::getString( 'title' ); $contentid = JRequest::getVar( 'content' ); $categoryid = JRequest::getVar( 'category' ); JArrayHelper::toInteger($contentid); JArrayHelper::toInteger($categoryid); // copy section $section =& JTable::getInstance('section'); foreach( $sectionid as $id ) { $section->load( $id ); $section->id = NULL; $section->title = $title; $section->name = $title; if ( !$section->check() ) { copySectionSelect('com_sections', $sectionid, $scope ); JError::raiseWarning(500, $section->getError() ); return; } if ( !$section->store() ) { JError::raiseError(500, $section->getError() ); } $section->checkin(); $section->reorder( 'scope = '.$db->Quote($section->scope) ); // stores original catid $newsectids[]["old"] = $id; // pulls new catid $newsectids[]["new"] = $section->id; } $sectionMove = $section->id; // copy categories $category =& JTable::getInstance('category'); foreach( $categoryid as $id ) { $category->load( $id ); $category->id = NULL; $category->section = $sectionMove; foreach( $newsectids as $newsectid ) { if ( $category->section == $newsectid["old"] ) { $category->section = $newsectid["new"]; } } if (!$category->check()) { JError::raiseError(500, $category->getError() ); } if (!$category->store()) { JError::raiseError(500, $category->getError() ); } $category->checkin(); $category->reorder( 'section = '.$db->Quote($category->section) ); // stores original catid $newcatids[]["old"] = $id; // pulls new catid $newcatids[]["new"] = $category->id; } $content =& JTable::getInstance('content'); foreach( $contentid as $id) { $content->load( $id ); $content->id = NULL; $content->hits = 0; foreach( $newsectids as $newsectid ) { if ( $content->sectionid == $newsectid["old"] ) { $content->sectionid = $newsectid["new"]; } } foreach( $newcatids as $newcatid ) { if ( $content->catid == $newcatid["old"] ) { $content->catid = $newcatid["new"]; } } if (!$content->check()) { JError::raiseError(500, $content->getError() ); } if (!$content->store()) { JError::raiseError(500, $content->getError() ); } $content->checkin(); } $sectionOld =& JTable::getInstance('section'); $sectionOld->load( $sectionMove ); $msg = JText::sprintf( 'DESCCATANDITEMSCOPIED', $sectionOld-> name, $title ); $mainframe->redirect( 'index.php?option=com_sections&scope=content', $msg ); } /** * changes the access level of a record * @param integer The increment to reorder by */ function accessMenu( $uid, $access, $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('section'); $row->load( $uid ); $row->access = $access; if ( !$row->check() ) { return $row->getError(); } if ( !$row->store() ) { return $row->getError(); } $mainframe->redirect( 'index.php?option='. $option .'&scope='. $row->scope ); } function saveOrder( &$cid ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $row =& JTable::getInstance('section'); $total = count( $cid ); $order = JRequest::getVar( 'order', array(0), 'post', 'array' ); JArrayHelper::toInteger($order, array(0)); // update ordering values for( $i=0; $i < $total; $i++ ) { $row->load( (int) $cid[$i] ); if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { JError::raiseError(500, $db->getErrorMsg() ); } } } $row->reorder( ); $msg = JText::_( 'New ordering saved' ); $mainframe->redirect( 'index.php?option=com_sections&scope=content', $msg ); }elracodelangela/administrator/components/com_sections/index.html0000755000176700017710000000005411061563414026153 0ustar essawireessawireelracodelangela/administrator/components/com_sections/admin.sections.html.php0000755000176700017710000003101011061563414030544 0ustar essawireessawire
    :
    id; $access = JHTML::_('grid.access', $row, $i ); $checked = JHTML::_('grid.checkedout', $row, $i ); $published = JHTML::_('grid.published', $row, $i ); ?> ">
    getListFooter(); ?>
    getRowOffset( $i ); ?> get ('id'), $row->checked_out ) ) { echo $row->title; } else { ?> title; ?> orderUpIcon( $i, true, 'orderup', 'Move Up', $ordering ); ?> orderDownIcon( $i, $n, true, 'orderdown', 'Move Down', $ordering ); ?> class="text_area" style="text-align: center" /> categories; ?> active; ?> trash; ?> id; ?>
    $row is passed with the id * property set to 0. Note that the section property must be defined * even for a new record. * @param JTableCategory The category object * @param string The html for the image list select list * @param string The html for the image position select list * @param string The html for the ordering list * @param string The html for the groups select list */ function edit( &$row, $option, &$lists ) { JRequest::setVar( 'hidemainmenu', 1 ); global $mainframe; $editor =& JFactory::getEditor(); if ( $row->name != '' ) { $name = $row->name; } else { $name = JText::_( 'New Section' ); } if ($row->image == '') { $row->image = 'blank.png'; } JFilterOutput::objectHTMLSafe( $row, ENT_QUOTES, 'description' ); ?>
    : scope; ?>
    :
    image != 'blank.png') { $path.= 'stories/'; } ?> <?php echo JText::_( 'Preview' ); ?>
    display( 'description', $row->description, '550', '300', '60', '20', array('pagebreak', 'readmore') ) ; ?>
    .
    :


    :
    "; foreach ( $categories as $category ) { echo "
  • ". $category->title ."
  • "; echo "\n id\" />"; } echo ""; ?>
    :
    "; foreach ( $contents as $content ) { echo "
  • ". $content->title ."
  • "; echo "\n id\" />"; } echo ""; ?>




    "; } ?>
    elracodelangela/administrator/components/com_checkin/toolbar.checkin.php0000755000176700017710000000141511061563420027510 0ustar essawireessawireauthorize( 'com_checkin', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } $db =& JFactory::getDBO(); $nullDate = $db->getNullDate(); ?>
    getTableList(); $k = 0; foreach ($tables as $tn) { // make sure we get the right tables based on prefix if (!preg_match( "/^".$mainframe->getCfg('dbprefix')."/i", $tn )) { continue; } $fields = $db->getTableFields( array( $tn ) ); $foundCO = false; $foundCOT = false; $foundE = false; $foundCO = isset( $fields[$tn]['checked_out'] ); $foundCOT = isset( $fields[$tn]['checked_out_time'] ); $foundE = isset( $fields[$tn]['editor'] ); if ($foundCO && $foundCOT) { if ($foundE) { $query = 'SELECT checked_out, editor FROM '.$tn.' WHERE checked_out > 0'; } else { $query = 'SELECT checked_out FROM '.$tn.' WHERE checked_out > 0'; } $db->setQuery( $query ); $res = $db->query(); $num = $db->getNumRows( $res ); if ($foundE) { $query = 'UPDATE '.$tn.' SET checked_out = 0, checked_out_time = '.$db->Quote($nullDate).', editor = NULL WHERE checked_out > 0'; } else { $query = 'UPDATE '.$tn.' SET checked_out = 0, checked_out_time = '.$db->Quote($nullDate).' WHERE checked_out > 0'; } $db->setQuery( $query ); $res = $db->query(); if ($res == 1) { if ($num > 0) { echo ""; echo "\n "; echo "\n "; echo "\n "; echo "\n "; echo "\n"; } else { echo ""; echo "\n "; echo "\n "; echo "\n "; echo "\n "; echo "\n"; } $k = 1 - $k; } } } ?>
    ". JText::_( 'Checking table' ) ." - ". $tn ."". JText::_( 'Checked-In' ) ." ". $num ." ". JText::_( 'items' ) ."\"". 
    ". JText::_( 'Checking table' ) ." - ". $tn ."". JText::_( 'Checked-In' ) ." ". $num ." ". JText::_( 'items' ) ."  
    elracodelangela/administrator/components/com_search/0000755000176700017710000000000011061563561023575 5ustar essawireessawireelracodelangela/administrator/components/com_search/models/0000755000176700017710000000000011061563561025060 5ustar essawireessawireelracodelangela/administrator/components/com_search/models/index.html0000755000176700017710000000005411061563420027051 0ustar essawireessawireelracodelangela/administrator/components/com_search/models/search.php0000755000176700017710000000704011061563420027034 0ustar essawireessawiresetQuery( 'DELETE FROM #__core_log_searches' ); $db->query(); } function getItems( ) { global $mainframe, $option; $db =& JFactory::getDBO(); $filter_order = $mainframe->getUserStateFromRequest( 'com_search.filter_order', 'filter_order', 'hits', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( 'com_search.filter_order_Dir', 'filter_order_Dir', '', 'word' ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( 'com_search.limitstart', 'limitstart', 0, 'int' ); $search = $mainframe->getUserStateFromRequest( 'com_search.search', 'search', '', 'string' ); $search = JString::strtolower( $search ); $showResults = JRequest::getInt('search_results'); // table ordering if ( $filter_order_Dir == 'ASC' ) { $this->lists['order_Dir'] = 'ASC'; } else { $this->lists['order_Dir'] = 'DESC'; } $this->lists['order'] = $filter_order; // search filter $this->lists['search']= $search; $where = array(); if ($search) { $where[] = 'LOWER( search_term ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', hits DESC'; // get the total number of records $query = 'SELECT COUNT(*)' . ' FROM #__core_log_searches' . $where; $db->setQuery( $query ); $total = $db->loadResult(); jimport( 'joomla.html.pagination' ); $pageNav = new JPagination( $total, $limitstart, $limit ); $query = ' SELECT * ' . ' FROM #__core_log_searches ' . $where . $orderby; $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $rows = $db->loadObjectList(); JPluginHelper::importPlugin( 'search' ); if (!class_exists( 'JSite' )) { // This fools the routers in the search plugins into thinking it's in the frontend require_once( JPATH_COMPONENT.DS.'helpers'.DS.'site.php' ); } for ($i=0, $n = count($rows); $i < $n; $i++) { // determine if number of results for search item should be calculated // by default it is `off` as it is highly query intensive if ( $showResults ) { $results = $mainframe->triggerEvent( 'onSearch', array( $rows[$i]->search_term ) ); $count = 0; for ($j = 0, $n2 = count( $results ); $j < $n2; $j++) { $count += count( $results[$j] ); } $rows[$i]->returns = $count; } else { $rows[$i]->returns = null; } } return $rows; } }elracodelangela/administrator/components/com_search/search.xml0000755000176700017710000000072511061563420025565 0ustar essawireessawire Search Joomla! Project Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCSEARCH elracodelangela/administrator/components/com_search/helpers/0000755000176700017710000000000011061563561025237 5ustar essawireessawireelracodelangela/administrator/components/com_search/helpers/site.php0000755000176700017710000000164611061563421026721 0ustar essawireessawireelracodelangela/administrator/components/com_search/helpers/search.php0000755000176700017710000001314411061563421027216 0ustar essawireessawiregetTag(); $ignoreFile = $lang->getLanguagePath().DS.$tag.DS.$tag.'.ignore.php'; if (file_exists($ignoreFile)) { include $ignoreFile; } // check for words to ignore $aterms = explode( ' ', JString::strtolower( $searchword ) ); // first case is single ignored word if ( count( $aterms ) == 1 && in_array( JString::strtolower( $searchword ), $search_ignore ) ) { $ignored = true; } // filter out search terms that are too small foreach( $aterms AS $aterm ) { if (JString::strlen( $aterm ) < 3) { $search_ignore[] = $aterm; } } // next is to remove ignored words from type 'all' or 'any' (not exact) searches with multiple words if ( count( $aterms ) > 1 && $searchphrase != 'exact' ) { $pruned = array_diff( $aterms, $search_ignore ); $searchword = implode( ' ', $pruned ); } return $ignored; } function limitSearchWord(&$searchword) { $restriction = false; // limit searchword to 20 characters if ( JString::strlen( $searchword ) > 20 ) { $searchword = JString::substr( $searchword, 0, 19 ); $restriction = true; } // searchword must contain a minimum of 3 characters if ( $searchword && JString::strlen( $searchword ) < 3 ) { $searchword = ''; $restriction = true; } return $restriction; } function logSearch( $search_term ) { global $mainframe; $db =& JFactory::getDBO(); $params = &JComponentHelper::getParams( 'com_search' ); $enable_log_searches = $params->get('enabled'); $search_term = $db->getEscaped( trim( $search_term) ); if ( @$enable_log_searches ) { $db =& JFactory::getDBO(); $query = 'SELECT hits' . ' FROM #__core_log_searches' . ' WHERE LOWER( search_term ) = "'.$search_term.'"' ; $db->setQuery( $query ); $hits = intval( $db->loadResult() ); if ( $hits ) { $query = 'UPDATE #__core_log_searches' . ' SET hits = ( hits + 1 )' . ' WHERE LOWER( search_term ) = "'.$search_term.'"' ; $db->setQuery( $query ); $db->query(); } else { $query = 'INSERT INTO #__core_log_searches VALUES ( "'.$search_term.'", 1 )'; $db->setQuery( $query ); $db->query(); } } } /** * Prepares results from search for display * * @param string The source string * @param int Number of chars to trim * @param string The searchword to select around * @return string */ function prepareSearchContent( $text, $length = 200, $searchword ) { // strips tags won't remove the actual jscript $text = preg_replace( "']*>.*?'si", "", $text ); $text = preg_replace( '/{.+?}/', '', $text); //$text = preg_replace( '/]*>([^<]+)<\/a>/is','\2', $text ); // replace line breaking tags with whitespace $text = preg_replace( "'<(br[^/>]*?/|hr[^/>]*?/|/(div|h[1-6]|li|p|td))>'si", ' ', $text ); return SearchHelper::_smartSubstr( strip_tags( $text ), $length, $searchword ); } /** * Checks an object for search terms (after stripping fields of HTML) * * @param object The object to check * @param string Search words to check for * @param array List of object variables to check against * @returns boolean True if searchTerm is in object, false otherwise */ function checkNoHtml($object, $searchTerm, $fields) { $searchRegex = array( '#]*>.*?#si', '#]*>.*?#si', '##si', '#<[^>]*>#i' ); $terms = explode(' ', $searchTerm); if(empty($fields)) return false; foreach($fields AS $field) { if(!isset($object->$field)) continue; $text = $object->$field; foreach($searchRegex As $regex) { $text = preg_replace($regex, '', $text); } foreach($terms AS $term) { if(JString::stristr($text, $term) !== false) { return true; } } } return false; } /** * returns substring of characters around a searchword * * @param string The source string * @param int Number of chars to return * @param string The searchword to select around * @return string */ function _smartSubstr($text, $length = 200, $searchword) { $textlen = JString::strlen($text); $lsearchword = JString::strtolower($searchword); $wordfound = false; $pos = 0; while ($wordfound === false && $pos < $textlen) { if (($wordpos = @JString::strpos($text, ' ', $pos + $length)) !== false) { $chunk_size = $wordpos - $pos; } else { $chunk_size = $length; } $chunk = JString::substr($text, $pos, $chunk_size); $wordfound = JString::strpos(JString::strtolower($chunk), $lsearchword); if ($wordfound === false) { $pos += $chunk_size + 1; } } if ($wordfound !== false) { return (($pos > 0) ? '... ' : '') . $chunk . ' ...'; } else { if (($wordpos = @JString::strpos($text, ' ', $length)) !== false) { return JString::substr($text, 0, $wordpos) . ' ...'; } else { return JString::substr($text, 0, $length); } } } } elracodelangela/administrator/components/com_search/index.html0000755000176700017710000000005411061563420025566 0ustar essawireessawireelracodelangela/administrator/components/com_search/views/0000755000176700017710000000000011061563561024732 5ustar essawireessawireelracodelangela/administrator/components/com_search/views/index.html0000755000176700017710000000005411061563420026723 0ustar essawireessawireelracodelangela/administrator/components/com_search/views/search/0000755000176700017710000000000011061563561026177 5ustar essawireessawireelracodelangela/administrator/components/com_search/views/search/index.html0000755000176700017710000000005411061563420030170 0ustar essawireessawireelracodelangela/administrator/components/com_search/views/search/tmpl/0000755000176700017710000000000011061563561027153 5ustar essawireessawireelracodelangela/administrator/components/com_search/views/search/tmpl/index.html0000755000176700017710000000005411061563420031144 0ustar essawireessawireelracodelangela/administrator/components/com_search/views/search/tmpl/default.php0000755000176700017710000000556111061563420031314 0ustar essawireessawire
    : : enabled ? ''. JText::_( 'Enabled' ) .'' : ''. JText::_( 'Disabled' ) .'' ?> showResults ) : ?>
    showResults ) : ?> items); $i < $n; $i++) { $row =& $this->items[$i]; ?> showResults ) : ?>
    lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?>
    pageNav->getListFooter(); ?>
    pageNav->limitstart; ?> search_term;?> hits; ?> returns; ?>
    elracodelangela/administrator/components/com_search/views/search/view.php0000755000176700017710000000415511061563420027664 0ustar essawireessawiresetTitle(JText::_('Search Statistics')); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( 'com_search.limitstart', 'limitstart', 0, 'int' ); $model = $this->getModel(); $items = $model->getItems(); $params = &JComponentHelper::getParams( 'com_search' ); $enabled = $params->get('enabled'); JHTML::_('behavior.tooltip'); jimport('joomla.html.pagination'); $pageNav = new JPagination( count($items), $limitstart, $limit ); $showResults = JRequest::getInt('search_results'); $search = $mainframe->getUserStateFromRequest( 'com_search.search', 'search', '', 'string' ); $this->assignRef('items', $items); $this->assignRef('enabled', $enabled); $this->assignRef('pageNav', $pageNav); $this->assignRef('search', $search ); $this->assignRef('lists', $model->lists ); $this->assignRef('showResults', $showResults); parent::display($tpl); } }elracodelangela/administrator/components/com_search/search.php0000755000176700017710000000143511061563420025553 0ustar essawireessawireexecute( JRequest::getCmd( 'task' ) ); $controller->redirect();elracodelangela/administrator/components/com_search/controller.php0000755000176700017710000000225011061563420026465 0ustar essawireessawiregetModel( 'Search' ); $view =& $this->getView( 'Search' ); $view->setModel( $model, true ); $view->display(); } /** * Reset Statistics */ function reset() { $model =& $this->getModel( 'Search' ); $model->reset(); $this->setRedirect('index.php?option=com_search'); } }elracodelangela/administrator/components/com_search/config.xml0000755000176700017710000000073511061563420025566 0ustar essawireessawire elracodelangela/administrator/components/com_media/0000755000176700017710000000000011061563562023410 5ustar essawireessawireelracodelangela/administrator/components/com_media/media.php0000755000176700017710000000471211061563425025205 0ustar essawireessawireauthorize( 'com_media', 'manage' )) { $mainframe->redirect('index.php', JText::_('ALERTNOTAUTH')); } $params =& JComponentHelper::getParams('com_media'); // Load the admin HTML view require_once( JPATH_COMPONENT.DS.'helpers'.DS.'media.php' ); // Set the path definitions $view = JRequest::getCmd('view',null); $popup_upload = JRequest::getCmd('pop_up',null); $path = "file_path"; if(substr(strtolower($view),0,6) == "images" || $popup_upload == 1) $path = "image_path"; define('COM_MEDIA_BASE', JPATH_ROOT.DS.$params->get($path, 'images/stories')); define('COM_MEDIA_BASEURL', JURI::root().$params->get($path, 'images/stories')); // Require the base controller require_once (JPATH_COMPONENT.DS.'controller.php'); $cmd = JRequest::getCmd('task', null); if (strpos($cmd, '.') != false) { // We have a defined controller/task pair -- lets split them out list($controllerName, $task) = explode('.', $cmd); // Define the controller name and path $controllerName = strtolower($controllerName); $controllerPath = JPATH_COMPONENT.DS.'controllers'.DS.$controllerName.'.php'; // If the controller file path exists, include it ... else lets die with a 500 error if (file_exists($controllerPath)) { require_once($controllerPath); } else { JError::raiseError(500, 'Invalid Controller'); } } else { // Base controller, just set the task :) $controllerName = null; $task = $cmd; } // Set the name for the controller and instantiate it $controllerClass = 'MediaController'.ucfirst($controllerName); if (class_exists($controllerClass)) { $controller = new $controllerClass(); } else { JError::raiseError(500, 'Invalid Controller Class'); } // Perform the Request task $controller->execute($task); // Redirect if set by the controller $controller->redirect(); elracodelangela/administrator/components/com_media/controllers/0000755000176700017710000000000011061563563025757 5ustar essawireessawireelracodelangela/administrator/components/com_media/controllers/folder.php0000755000176700017710000000724711061563425027755 0ustar essawireessawireredirect('index.php?option=com_media&view=mediaList&folder='.$folder.'&tmpl=component'); } else { $mainframe->redirect('index.php?option=com_media&folder='.$folder); } } /** * Create a folder * * @param string $path Path of the folder to create * @since 1.5 */ function create() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); $folder = JRequest::getCmd( 'foldername', ''); $folderCheck = JRequest::getVar( 'foldername', null, '', 'string', JREQUEST_ALLOWRAW); $parent = JRequest::getVar( 'folderbase', '', '', 'path' ); JRequest::setVar('folder', $parent); if (($folderCheck !== null) && ($folder !== $folderCheck)) { $mainframe->redirect('index.php?option=com_media&folder='.$parent, JText::_('WARNDIRNAME')); } if (strlen($folder) > 0) { $path = JPath::clean(COM_MEDIA_BASE.DS.$parent.DS.$folder); if (!is_dir($path) && !is_file($path)) { jimport('joomla.filesystem.*'); JFolder::create($path); JFile::write($path.DS."index.html", "\n\n\n"); } JRequest::setVar('folder', ($parent) ? $parent.'/'.$folder : $folder); } $mainframe->redirect('index.php?option=com_media&folder='.$parent); } } elracodelangela/administrator/components/com_media/controllers/index.html0000755000176700017710000000005411061563425027753 0ustar essawireessawireelracodelangela/administrator/components/com_media/controllers/file.php0000755000176700017710000001251111061563425027407 0ustar essawireessawireaddEntry(array('comment' => 'Invalid: '.$filepath.': '.$err)); header('HTTP/1.0 415 Unsupported Media Type'); jexit('Error. Unsupported Media Type!'); } else { JError::raiseNotice(100, JText::_($err)); // REDIRECT if ($return) { $mainframe->redirect(base64_decode($return).'&folder='.$folder); } return; } } if (JFile::exists($filepath)) { if ($format == 'json') { jimport('joomla.error.log'); $log = &JLog::getInstance('upload.error.php'); $log->addEntry(array('comment' => 'File already exists: '.$filepath)); header('HTTP/1.0 409 Conflict'); jexit('Error. File already exists'); } else { JError::raiseNotice(100, JText::_('Error. File already exists')); // REDIRECT if ($return) { $mainframe->redirect(base64_decode($return).'&folder='.$folder); } return; } } if (!JFile::upload($file['tmp_name'], $filepath)) { if ($format == 'json') { jimport('joomla.error.log'); $log = &JLog::getInstance('upload.error.php'); $log->addEntry(array('comment' => 'Cannot upload: '.$filepath)); header('HTTP/1.0 400 Bad Request'); jexit('Error. Unable to upload file'); } else { JError::raiseWarning(100, JText::_('Error. Unable to upload file')); // REDIRECT if ($return) { $mainframe->redirect(base64_decode($return).'&folder='.$folder); } return; } } else { if ($format == 'json') { jimport('joomla.error.log'); $log = &JLog::getInstance(); $log->addEntry(array('comment' => $folder)); jexit('Upload complete'); } else { $mainframe->enqueueMessage(JText::_('Upload complete')); // REDIRECT if ($return) { $mainframe->redirect(base64_decode($return).'&folder='.$folder); } return; } } } else { $mainframe->redirect('index.php', 'Invalid Request', 'error'); } } /** * Deletes paths from the current path * * @param string $listFolder The image directory to delete a file from * @since 1.5 */ function delete() { global $mainframe; // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); // Get some data from the request $tmpl = JRequest::getCmd( 'tmpl' ); $paths = JRequest::getVar( 'rm', array(), '', 'array' ); $folder = JRequest::getVar( 'folder', '', '', 'path'); // Initialize variables $msg = array(); $ret = true; if (count($paths)) { foreach ($paths as $path) { if ($path !== JFile::makeSafe($path)) { JError::raiseWarning(100, JText::_('Unable to delete:').htmlspecialchars($path, ENT_COMPAT, 'UTF-8').' '.JText::_('WARNFILENAME')); continue; } $fullPath = JPath::clean(COM_MEDIA_BASE.DS.$folder.DS.$path); if (is_file($fullPath)) { $ret |= !JFile::delete($fullPath); } else if (is_dir($fullPath)) { $files = JFolder::files($fullPath, '.', true); $canDelete = true; foreach ($files as $file) { if ($file != 'index.html') { $canDelete = false; } } if ($canDelete) { $ret |= !JFolder::delete($fullPath); } else { JError::raiseWarning(100, JText::_('Unable to delete:').$fullPath.' '.JText::_('Not Empty!')); } } } } if ($tmpl == 'component') { // We are inside the iframe $mainframe->redirect('index.php?option=com_media&view=mediaList&folder='.$folder.'&tmpl=component'); } else { $mainframe->redirect('index.php?option=com_media&folder='.$folder); } } } elracodelangela/administrator/components/com_media/media.xml0000755000176700017710000000104611061563425025213 0ustar essawireessawire Media Manager Joomla! Project April 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 This component manages site media elracodelangela/administrator/components/com_media/models/0000755000176700017710000000000011061563563024674 5ustar essawireessawireelracodelangela/administrator/components/com_media/models/manager.php0000755000176700017710000000737611061563426027035 0ustar essawireessawiresetState('folder', $folder); $parent = str_replace("\\", "/", dirname($folder)); $parent = ($parent == '.') ? null : $parent; $this->setState('parent', $parent); $set = true; } return parent::getState($property); } /** * Image Manager Popup * * @param string $listFolder The image directory to display * @since 1.5 */ function getFolderList($base = null) { global $mainframe; // Get some paths from the request if (empty($base)) { $base = COM_MEDIA_BASE; } // Get the list of folders jimport('joomla.filesystem.folder'); $folders = JFolder::folders($base, '.', true, true); // Load appropriate language files $lang = & JFactory::getLanguage(); $lang->load('', JPATH_ADMINISTRATOR); $lang->load(JRequest::getCmd( 'option' ), JPATH_ADMINISTRATOR); $document =& JFactory::getDocument(); $document->setTitle(JText::_('Insert Image')); // Build the array of select options for the folder list $options[] = JHTML::_('select.option', "","/"); foreach ($folders as $folder) { $folder = str_replace(COM_MEDIA_BASE, "", $folder); $value = substr($folder, 1); $text = str_replace(DS, "/", $folder); $options[] = JHTML::_('select.option', $value, $text); } // Sort the folder list array if (is_array($options)) { sort($options); } // Create the drop-down folder select list $list = JHTML::_('select.genericlist', $options, 'folderlist', "class=\"inputbox\" size=\"1\" onchange=\"ImageManager.setFolder(this.options[this.selectedIndex].value)\" ", 'value', 'text', $base); return $list; } function getFolderTree($base = null) { // Get some paths from the request if (empty($base)) { $base = COM_MEDIA_BASE; } $mediaBase = str_replace(DS, '/', COM_MEDIA_BASE.'/'); // Get the list of folders jimport('joomla.filesystem.folder'); $folders = JFolder::folders($base, '.', true, true); $tree = array(); foreach ($folders as $folder) { $folder = str_replace(DS, '/', $folder); $name = substr($folder, strrpos($folder, '/') + 1); $relative = str_replace($mediaBase, '', $folder); $absolute = $folder; $path = explode('/', $relative); $node = (object) array('name' => $name, 'relative' => $relative, 'absolute' => $absolute); $tmp = &$tree; for ($i=0,$n=count($path); $i<$n; $i++) { if (!isset($tmp['children'])) { $tmp['children'] = array(); } if ($i == $n-1) { // We need to place the node $tmp['children'][$relative] = array('data' =>$node, 'children' => array()); break; } if (array_key_exists($key = implode('/', array_slice($path, 0, $i+1)), $tmp['children'])) { $tmp = &$tmp['children'][$key]; } } } $tree['data'] = (object) array('name' => JText::_('Media'), 'relative' => '', 'absolute' => $base); return $tree; } }elracodelangela/administrator/components/com_media/models/list.php0000755000176700017710000001221111061563426026356 0ustar essawireessawiresetState('folder', $folder); $parent = str_replace("\\", "/", dirname($folder)); $parent = ($parent == '.') ? null : $parent; $this->setState('parent', $parent); $set = true; } return parent::getState($property); } function getImages() { $list = $this->getList(); return $list['images']; } function getFolders() { $list = $this->getList(); return $list['folders']; } function getDocuments() { $list = $this->getList(); return $list['docs']; } /** * Build imagelist * * @param string $listFolder The image directory to display * @since 1.5 */ function getList() { static $list; // Only process the list once per request if (is_array($list)) { return $list; } // Get current path from request $current = $this->getState('folder'); // If undefined, set to empty if ($current == 'undefined') { $current = ''; } // Initialize variables if (strlen($current) > 0) { $basePath = COM_MEDIA_BASE.DS.$current; } else { $basePath = COM_MEDIA_BASE; } $mediaBase = str_replace(DS, '/', COM_MEDIA_BASE.'/'); $images = array (); $folders = array (); $docs = array (); // Get the list of files and folders from the given folder $fileList = JFolder::files($basePath); $folderList = JFolder::folders($basePath); // Iterate over the files if they exist if ($fileList !== false) { foreach ($fileList as $file) { if (is_file($basePath.DS.$file) && substr($file, 0, 1) != '.' && strtolower($file) !== 'index.html') { $tmp = new JObject(); $tmp->name = $file; $tmp->path = str_replace(DS, '/', JPath::clean($basePath.DS.$file)); $tmp->path_relative = str_replace($mediaBase, '', $tmp->path); $tmp->size = filesize($tmp->path); $ext = strtolower(JFile::getExt($file)); switch ($ext) { // Image case 'jpg': case 'png': case 'gif': case 'xcf': case 'odg': case 'bmp': case 'jpeg': $info = @getimagesize($tmp->path); $tmp->width = @$info[0]; $tmp->height = @$info[1]; $tmp->type = @$info[2]; $tmp->mime = @$info['mime']; $filesize = MediaHelper::parseSize($tmp->size); if (($info[0] > 60) || ($info[1] > 60)) { $dimensions = MediaHelper::imageResize($info[0], $info[1], 60); $tmp->width_60 = $dimensions[0]; $tmp->height_60 = $dimensions[1]; } else { $tmp->width_60 = $tmp->width; $tmp->height_60 = $tmp->height; } if (($info[0] > 16) || ($info[1] > 16)) { $dimensions = MediaHelper::imageResize($info[0], $info[1], 16); $tmp->width_16 = $dimensions[0]; $tmp->height_16 = $dimensions[1]; } else { $tmp->width_16 = $tmp->width; $tmp->height_16 = $tmp->height; } $images[] = $tmp; break; // Non-image document default: $iconfile_32 = JPATH_ADMINISTRATOR.DS."components".DS."com_media".DS."images".DS."mime-icon-32".DS.$ext.".png"; if (file_exists($iconfile_32)) { $tmp->icon_32 = "components/com_media/images/mime-icon-32/".$ext.".png"; } else { $tmp->icon_32 = "components/com_media/images/con_info.png"; } $iconfile_16 = JPATH_ADMINISTRATOR.DS."components".DS."com_media".DS."images".DS."mime-icon-16".DS.$ext.".png"; if (file_exists($iconfile_16)) { $tmp->icon_16 = "components/com_media/images/mime-icon-16/".$ext.".png"; } else { $tmp->icon_16 = "components/com_media/images/con_info.png"; } $docs[] = $tmp; break; } } } } // Iterate over the folders if they exist if ($folderList !== false) { foreach ($folderList as $folder) { $tmp = new JObject(); $tmp->name = basename($folder); $tmp->path = str_replace(DS, '/', JPath::clean($basePath.DS.$folder)); $tmp->path_relative = str_replace($mediaBase, '', $tmp->path); $count = MediaHelper::countFiles($tmp->path); $tmp->files = $count[0]; $tmp->folders = $count[1]; $folders[] = $tmp; } } $list = array('folders' => $folders, 'docs' => $docs, 'images' => $images); return $list; } }elracodelangela/administrator/components/com_media/models/index.html0000755000176700017710000000005411061563426026671 0ustar essawireessawireelracodelangela/administrator/components/com_media/helpers/0000755000176700017710000000000011061563563025053 5ustar essawireessawireelracodelangela/administrator/components/com_media/helpers/media.php0000755000176700017710000001363611061563427026656 0ustar essawireessawireget( 'upload_extensions' )); $ignored = explode(',', $params->get( 'ignore_extensions' )); if (!in_array($format, $allowable) && !in_array($format,$ignored)) { $err = 'WARNFILETYPE'; return false; } $maxSize = (int) $params->get( 'upload_maxsize', 0 ); if ($maxSize > 0 && (int) $file['size'] > $maxSize) { $err = 'WARNFILETOOLARGE'; return false; } $user = JFactory::getUser(); $imginfo = null; if($params->get('restrict_uploads',1) ) { $images = explode( ',', $params->get( 'image_extensions' )); if(in_array($format, $images)) { // if its an image run it through getimagesize if(($imginfo = getimagesize($file['tmp_name'])) === FALSE) { $err = 'WARNINVALIDIMG'; return false; } } else if(!in_array($format, $ignored)) { // if its not an image...and we're not ignoring it $allowed_mime = explode(',', $params->get('upload_mime')); $illegal_mime = explode(',', $params->get('upload_mime_illegal')); if(function_exists('finfo_open') && $params->get('check_mime',1)) { // We have fileinfo $finfo = finfo_open(FILEINFO_MIME); $type = finfo_file($finfo, $file['tmp_name']); if(strlen($type) && !in_array($type, $allowed_mime) && in_array($type, $illegal_mime)) { $err = 'WARNINVALIDMIME'; return false; } finfo_close($finfo); } else if(function_exists('mime_content_type') && $params->get('check_mime',1)) { // we have mime magic $type = mime_content_type($file['tmp_name']); if(strlen($type) && !in_array($type, $allowed_mime) && in_array($type, $illegal_mime)) { $err = 'WARNINVALIDMIME'; return false; } } else if(!$user->authorize( 'login', 'administrator' )) { $err = 'WARNNOTADMIN'; return false; } } } $xss_check = JFile::read($file['tmp_name'],false,256); $html_tags = array('abbr','acronym','address','applet','area','audioscope','base','basefont','bdo','bgsound','big','blackface','blink','blockquote','body','bq','br','button','caption','center','cite','code','col','colgroup','comment','custom','dd','del','dfn','dir','div','dl','dt','em','embed','fieldset','fn','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','iframe','ilayer','img','input','ins','isindex','keygen','kbd','label','layer','legend','li','limittext','link','listing','map','marquee','menu','meta','multicol','nobr','noembed','noframes','noscript','nosmartquotes','object','ol','optgroup','option','param','plaintext','pre','rt','ruby','s','samp','script','select','server','shadow','sidebar','small','spacer','span','strike','strong','style','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','ul','var','wbr','xml','xmp','!DOCTYPE', '!--'); foreach($html_tags as $tag) { // A tag is '' if(stristr($xss_check, '<'.$tag.' ') || stristr($xss_check, '<'.$tag.'>')) { $err = 'WARNIEXSS'; return false; } } return true; } function parseSize($size) { if ($size < 1024) { return $size . ' bytes'; } else { if ($size >= 1024 && $size < 1024 * 1024) { return sprintf('%01.2f', $size / 1024.0) . ' Kb'; } else { return sprintf('%01.2f', $size / (1024.0 * 1024)) . ' Mb'; } } } function imageResize($width, $height, $target) { //takes the larger size of the width and height and applies the //formula accordingly...this is so this script will work //dynamically with any size image if ($width > $height) { $percentage = ($target / $width); } else { $percentage = ($target / $height); } //gets the new value and applies the percentage, then rounds the value $width = round($width * $percentage); $height = round($height * $percentage); return array($width, $height); } function countFiles( $dir ) { $total_file = 0; $total_dir = 0; if (is_dir($dir)) { $d = dir($dir); while (false !== ($entry = $d->read())) { if (substr($entry, 0, 1) != '.' && is_file($dir . DIRECTORY_SEPARATOR . $entry) && strpos($entry, '.html') === false && strpos($entry, '.php') === false) { $total_file++; } if (substr($entry, 0, 1) != '.' && is_dir($dir . DIRECTORY_SEPARATOR . $entry)) { $total_dir++; } } $d->close(); } return array ( $total_file, $total_dir ); } }elracodelangela/administrator/components/com_media/helpers/index.html0000755000176700017710000000005411061563427027051 0ustar essawireessawireelracodelangela/administrator/components/com_media/images/0000755000176700017710000000000011061563563024656 5ustar essawireessawireelracodelangela/administrator/components/com_media/images/folderup_16.png0000755000176700017710000000125211061563426027513 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEW «E.͍lz,}zLl)>ܮ݈jd+nGÇ.u:Fs~GK哴Ϟo]j5Yb:삭Qv)%@ɕߓPi/ϯHt:ӻبC|c)pjH}Oތsk7@ʕQ,QtRNS)G pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT]0`T\Tp8@ZJnPbb<0/LSL"q_Pɼ -@CC `!A1\S븮a)kC}ø-8NХP87cpeb7YVe갰bUՁI$2Qry~p>4+L:IENDB`elracodelangela/administrator/components/com_media/images/folderup.png0000755000176700017710000000125211061563426027205 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEW «E.͍lz,}zLl)>ܮ݈jd+nGÇ.u:Fs~GK哴Ϟo]j5Yb:삭Qv)%@ɕߓPi/ϯHt:ӻبC|c)pjH}Oތsk7@ʕQ,QtRNS)G pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT]0`T\Tp8@ZJnPbb<0/LSL"q_Pɼ -@CC `!A1\S븮a)kC}ø-8NХP87cpeb7YVe갰bUՁI$2Qry~p>4+L:IENDB`elracodelangela/administrator/components/com_media/images/terminal_16.png0000755000176700017710000000135411061563426027511 0ustar essawireessawirePNG  IHDRaIDAT8OY{o< 0vE (@+"OMJA.#jKK(Zpc)B Yk1#EZl+ܟ=h#c@y R B!ZC!B1j{zg@phJ%()%4c a¶mނsܩHRJXq!RR(e$AلR /i²,F#DQJ)lF& .fi"sx4!L 㻌sbu11!ǘp8c ZkH)Ql6 |)%8sdY,˰2[#PJFPJ!"FJ)ضNYBieFP(,T*H)QE@u>VWWhZ0Miq j5\__q$9<4 c`dR,RJs]W* I9dY`0x}ttP(/..B~nt]w|pphi9?+pssX," xggJ? E6vwwUwݿ ÈJғ"KшzurjjO BחIENDB`elracodelangela/administrator/components/com_media/images/folder.png0000755000176700017710000000422711061563426026645 0ustar essawireessawirePNG  IHDRPPsBITOPLTEhT,ÄȪmJmlg֤ԕp=dڹͤҰnĵ×yTϼTت _ʹasb>֔ݾRӥӽ}غ{Ɔ̔}ny­ŲQtOƺ̯uq]7ݿܝ᥿fŦl̎象RВgxwrϽoI׸zޭʹ|iCԶՙ{Dlвrݽ}zlRŸ[̪eKԿǦJr[1qJÛ˝ua:zkMzݣɫrϷ׻ťdϪZZ妌|WaִŌȋŴsRyd<μpì{Ͱx]ս蓌}[yyy~Nմs͍֪֬β}nZ1pBޭzf@Ǜtslﴦ~qRӸ_Κ̽Ɠ˯ޥŢ]¯ͭlʧb؜ħqvH欽Zs_5ЃqAТƵֽۻ|Lؾŵ{k{ÛU઒c`{{sεWޭʳ"tRNSFq pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATXWZeqd+r"QYƗژQZ`$$L6b:ptM8H36wi/NϽ׋ <~޿<܇K?H%mkpvvkq_O,9xp|Wlllt}?4;\rn݊bjUtoמ[] _*ST.U԰8]Ur \PS%3 4ZS!/](:U]LdD`ԐQ4[N<@dWк}FWi.Р~@ 4T p~*Y&<F Ir2`РӨ`m/ar T#+  \΂әΡ$3 2(> 6cAtpSBi`1 3AbAcѸ| 7i.Gk0xMMM H0B:7 =Hd:0 wl,Bo+iPFH~P?z;$b>|q$Oǂ-Ba.ԔC2| ,xGFwz#ţO!ӫPyhX]\ssLB1q$-]Kt4uS(&Rkmm>(&vPK60;6'۹pmV]*M&B3 ȣOGfSN:DuGoտ(bi o --JC~p#9n{<ᙇ`1sS %wvxЈis]nۛH$Dk͙`~X^n`ʻq;Arތ-sq୬@qBo:$#9]Rrf{O[eL KJȌvm(A BJ%8ސ6mX={vqswɰ\]fް^_գ3zr{'f&wStsD=WszhffO:;gb簘$'s 㘰=59yo-s>17`!zf #ŐGv>Vo3qσj۩G͗P/;ڦU HxzWxVUQSw_6G[T B>AtYwH#.d_byVgP}#="Q'tZ[-*HZeVq X@__`C#JB2Hdl hT. ͉tB@wU_"&*(裐F*餔Vj饘f馜v駠*ꨤR;elracodelangela/administrator/components/com_media/images/uploading.gif0000755000176700017710000000202611061563426027330 0ustar essawireessawireGIF89a0̵ޜޔތք{ff! NETSCAPE2.0!,0 "dihlp,@mx|pH,DƤrl:5$tJZ7)vzqگxLV:X3|N)PԖO;]5=[P2xb'#M/ a mWV_ }SgUؾˁ&0+/0F PU%`׭d` @N]1h5#cs%/{6ק; hKJk@ F/FcqNHiX썋QPa[=?b#絒^.jX$LՍ2Y4`PQ@w&OamWV<@x]I @xCd7A4@ $EEGj q  eAI)v9Jz~g %:I~Idh" !N*Hhw駠*ꨤ!,| I$4bzk! ,0$dihlp,tmx|pH,Ȥrl:ШtJZجvzxL.zn|N~7 $$ c#d!;elracodelangela/administrator/components/com_media/images/mime-icon-32/0000755000176700017710000000000011061563563026755 5ustar essawireessawireelracodelangela/administrator/components/com_media/images/mime-icon-32/mp3.png0000755000176700017710000000352711061563426030172 0ustar essawireessawirePNG  IHDR szzsBIT|d pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATXŖ_hT?;3w،Rb+*M;bM .,leićSO}Rw!b/"[Z(HjSh"kkbI'6sg=>LfrĥOa9s~ZkfgZ Q@k-B)mhPZi4QJhFpGS}DX7x%)ęI x^`uχu!,{y!Jd]#m5B 9^nmM1=?zaX>3.]5RMqf*#3W[ɯ.#} Z?S0 °>BT"s/M1^l|o1YyȒ0L ^hH _L R C HL ey]ߚ#P bE_qhNܼǫ5 ! Bz@d>۵;wH*k1-(E",Y]/8?;*fd/T@QX,ÙOO!1xX+yT*!Ztx`Y<,_8z#J5b͌뺤R)<\QXYYرcܹN8<||~C]Z fsZk0ύ7RL&qauu|&]]]b1N>M?mS,QJRcir9,l62㰶ضmH)B(BXuqD"A6%ϣ&<ϣJRU Ez}.$BD/1m0lٲ.={F6\JUKr[Ji'$ ;֜Q5}}}:t/_J)"L^?NTk .>v"A"ukQXd\|'NP*XZZX,r)m)Z&К@;$p֭L3VUj\t3gΐdhkkc޽IPjɤM< &{W1Mv)%X .y Vy ۷')d&Q!"W/W,򘦥\ |_ʅ_;wn6*bIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/sxd.png0000755000176700017710000000326711061563426030272 0ustar essawireessawirePNG  IHDR DsBITOPLTE"! ͡}{w|$Σ3IYbUIL%-{‡~mdbʸ{ޥCr`l뿿OMIH`ͰvstͳIvqikw333\hҘiЃ畓߯LH@y؋yy``fBĖѷ82,Y^]\4C6ڪw`JD=Ĭdkuy,,*£M~ЅťbtFS|pyjmPkpkcC=7sTY *7*ȺךƉ8=WSJˮdzƙל綒ƓWlcxմ˓Xiqmۭլԣɏ~zkkc~zsΝ̦T̴EBB/.,ʹe_Wlzл~oPLDŭqޑգݮ۞s:11Şpli̖֧ސÛTQH_קʡ_{uo{sksSW)\XNÉ~mmhε̺iz'xjtRNS pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxoIDAT8c$Xqzz9P!躂] 9{ȑ~mh&(A=s vƌ"( w #{Lj2G,θjm P7 )7튤^qI?iqLO`yo'nEǠ3A;1\iJ~9C" WE _2l}A( <.V,No۹n_~GоV]aq.]@ M CR ׷7-`T9^0蘍ꆠO ]ra|$_!"3(vݷ4ŵS BS0g"І e,bK.t(PT?y2X?ky <T=)cΆُ C6Gw*9-̶o(򾎦 H}H[\'*G(Q= g9_IeÇvCr&.o`0E"!v^PyOg ggGuW8EemlD3AxkrN$Qϧ\\" XyySK\S!@0u*t<ٝuv8 tvF3/4AZ# H#U!IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/pdf.png0000755000176700017710000000236311061563426030241 0ustar essawireessawirePNG  IHDR DsBITOPLTE؄VӀxgf᫥0#wЄ~11޿TPᙎdqnϩ!K<ⶰpdޑD>ޓ ؠ]T?3ڻxki\gݼxnZ擹^Wю,&孥tܢla؍ ÿvjۤkOD̼[Yp昋f[Ó߿ZޝڦֻkZ徹浯ۯL@D;1(xpvfUapg¼Нۄ؊h`ޔ]P{sf\ۙtRNS% pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT8O1cN뫨U ;ylRԹ1gaB\|Ɖ;NHS6!F3Fc?=r2C;Y<8QJ0L !ԃbVQoߌ*53ñخP9ynjvv` On$ P: :zÞ++)_pJ^!s@.D: >7)N >NTXOΔ H>~[ZMPF$SP L&n#`h${TNR{[@Fg!ٲ ƑڤK'}ci@(߽|ڙЄX+\_D^,2OX #eU$a^Ƒ}IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/svg.png0000755000176700017710000000225611061563426030270 0ustar essawireessawirePNG  IHDR DsBITOPLTEoyw˗V綶tԊvßu}ϴϯޅ΅Âmts[۪y͖owtwoεǗ䖷z敲^ty΀r|rx任xł~΁ߧ٭ꚧ}لYtǀ؊|̗ãxm~|c⣭rss~°Ơ_`m6tRNSL pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT8S0gHhա D#^s~ ̩'~L4Y2]{7o~mCHЂcJp) eYo7N(D O|^;rbrqAѓc;S?٪h$9;Wl<~bl3%~c*fW.T>e m+rHdrxw;4f/#?O%caY)Ƹ/P]FLi|`X Jk!=z2!jR8 Q _$>o E綯wVH@ QJYRq(']hgjЎ.4 8&#T 7ɂ8A8=E,(`RR(A :uAGfu _ZnmP3`0%fD-`Q O& SB3\oIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/odc.png0000755000176700017710000000271011061563426030231 0ustar essawireessawirePNG  IHDR DsBITO%PLTEQly+BYo2|qrv_g~EϜfgcő^hŻ\`Uv䪳բGs \W،qߜ;Ou/ͽu[o^w}?ϭjzkx+ǂHc^Ђցܞsö^aܒ_mq!dwxţz2ֹ=}Rdq]u'lXݤǽ|۫︻z{w㎘x.t,̴ۘ|}7edv*d_|gt}2hs{?bocl͠_ԟviؖÏ%`tRNS3* pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxLIDAT8S@[JZJTY֪`u;^xQotM:t:ތ6ih"?$3;۷J|8RP숀$I$[)G3fK FH68vsivaʱ7߽ǫsG-lFT>̕[- gN^띻w1`ԠhZfJfKA%x$m2S;~N{ &' JǦm/Fk·OuwbX\$kOc[.?`@n2- ,K`Xb [`,085Ȱ]*wuXPshA UqΌ< yc@< 4ʬ wj{y!cPsJ& eUU]nTUl6[P߿!^}޾JIS8XF[qBG`Svו50[/ jۦ M"섎_|4t 3ކt:ʍG edvz#>"` T $,I M•!8\C |ckYܓMVG$欿q؁K`!]IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/zip.png0000755000176700017710000000264011061563426030270 0ustar essawireessawirePNG  IHDR DsBITOPLTE~JÅY`Ҩv“ϲtYϸìݝ\sزJΤɫmμ[׹z洕ZŅdӖEϿkγ|ֵRoߣYЩ`ÿy̐ıˍذ流Q;låkٴo֛Kߢǭsøμ`]UŠ{ͱֵM~ГiV}شȋޝʨeֹYclż½iュJPʿֽ͸e˵`wcťdZյsָzח۽}έlGhؙXؾOɰ{õŌóȺYŭԪŵzxܻsŽ}atRNS pHYs  ~tEXtSoftwareMacromedia Fireworks 8hx1%qaJ]vuDC75*ECB""zjS3&$^ 䳳 b$ʛskbUXY獯ŋF-օUB*ofO;KJ333l$8c3n_P;87QRS};0B-YJ:d^X⤾Ώw1-]H)?Q2AHG֭H/.wts0>$Z.**q bQ>F! ϗm]Ki),fiiqpuu~YWVpcV!"RJJH:id_毷,"rlPN(:TF411:GM.WTTs19 B4&)5#Œظ갸4k]PF98̽mUZ[[}}~ JBBSD1<3dWJfS7((* 478HP2exsαhU7Ӛpfwo g_X4.(s))!u~skR'"!B9)lj aUtRNSj$3} pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxsIDAT8c#@ꞄH@ A^;{JAc1*TX9yF;ͰYX(˻$8&&f[` P"yA QNnڤEҫLL54j 0u0+xW޸QWW'uPoV@^d=JJ @VgZ%*[MHdpp(]^rj]n$e$eˬ޽ZF @R;#D\gEtZ$'ʣ( oܸ([+9 t(U@S]"!!a%t^BCCAzuׂvPnFPWTGcQ0c҉'IKo_X*m6^qUg^Ǣ}^ion|Y_E2@UۗynPRdL([""(T)VV#GLjqpLF2}T6 4>4~u/z"y{{o/++.tG=@Tx9z P{P\)7WUʕ= aJWw ]IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/rar.png0000755000176700017710000000264611061563426030260 0ustar essawireessawirePNG  IHDR DsBITOPLTE~JÅSɰ{`g“̠Yóÿwʨeݝw涘\J̐øhӖ׹zϲt˵䴕ZkdŅE¹ì޹zʶRμߣYYɫmָz½ˍҨؾQlٴox|cΤ֛装Kߢμ`ͱU~MåkГı֣ζyõέl;ȋŌޝǭsʿYƿֹciγ|᠃JԪPֽ͸vmcťdZյsֵח۽}GWhؙRXOϸȺżݺŭέcŽԪࠦtRNSgG} pHYs  ~tEXtSoftwareMacromedia Fireworks 8hx:IDAT8{oPu*"8M3*h Pn8-v:ႃia/[/1 ==^a! $y^si9g7y5(vHų=לwtNVRmo^6)?R?A$2 ]c^Aj)̪0؎2U +/t-> %: yyNjU*(<8.-ӕ$OA6)gbQm(-bLκ)L 1n_Nt M}V;zX\AJ8~O>o*di(˥41%92Z"gUd) YWqIc?K%AW*@Ҹ]}k BS$К}a ^&`".F}y8h]Fݒ +> -0 , /(7Jx̴xR OD'd0 IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/odd.png0000755000176700017710000000323111061563426030231 0ustar essawireessawirePNG  IHDR DsBITOPLTE! x~v}%]2|Ø֘w;K+UBniaõڞNj^hµHGH{z+Rdzt;o61.ϒOS,ɤqmBYdYUPɭjЂt懏ަߢ͝ҧa`i߅KG@o;O1.(πb[oʵB<6⡩̋Œ־f`Yspg唵ŀǖ͟ĨOޤ֜ŭ_muruѥ0>1̷ù=83P$3%YizҮƭܪ7I9zY]"؝ݭyumäǫՓǝHB=ȶؔ|xkӢPLA˴-+$|͖鎌RJJ˖廿˛ϥn997]XPݯЯ|֏Mqldcl|u̙ςC@mmPo)6Xu@rn>o9ApTye0 4W)hP=1[X Il3 (*o VܴA 1 LME ; JJJK7oVp:1x^ڠIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/avi.png0000755000176700017710000000325111061563426030244 0ustar essawireessawirePNG  IHDR DsBITOPLTElsxxEIIf׿{l%--JI`H'j7 架$5i)TzpeM@)fffސfQ3 zחᅈdVG>1%qaJvuDC75*ECB""zjS3&$^ 䳳 b$ʛskbUXYҋF-UB*ofO;KJ333$8c3n_P;87rQRS};0B-YJ:d^XZw1-]H)?Q2AHG֍ҭH/.wtx0>$.**q bQ>F! ؓ뗞m]Kis),fiiqpuuYWVpcV!"RJJH:id_~毷,"ߝrlPN(:TF411:GM.WTTus19 B4&)5#帉Tq懨4{k]PF98̽ŋm^Z[[}}~ JBBSD1݂<3dWJfS7((* 478HP2܁exsƱhU7ٚpfo g_X4.(s))!uskR'"!B9)씊 tRNSM pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxyIDAT8c$@M@ lm` l8@  m@ ` 6΁@U)G/0`J@V'׆gc(@MH^<}0iW܄` 0կXjgDr %&BHx7ݹ(Pon)#/o#"+klؤ dkl޼YrslMٛm%pqj(smjCR'EZR*X#[z-g6n@Q%{(JquHYr%<3GDw7 ER< zU%Pp(hJHHXtܐRP^jqd#GfZ*-EW[R]SEWi/_/#DQ.s8餤ϻuA'g(|]=Y>k|gÄs "`r`q80ݛpaFc֚ p5-sH&x`3X^ ;ի.oD(HRt8p@Fp ۷I-٧ UL QFܼq#0mԷiK-,wo [hæs!WIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/xls.png0000755000176700017710000000256711061563426030304 0ustar essawireessawirePNG  IHDR DsBITOPLTE]\tp"YT띲lɝu1yZ{޽ĞO}yjazؐn^hÂ9ɰv×qswǷnqګx5݁t'Ű?`y/يd]cZ[HġȃH𢭵{1w{娸de񂮳}u!v)ͺbxˢŁqſHpo~;Ğ{cb_x+呗覨utﭭSxs͚__έ~tRNS uq pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxcIDAT8s AzW$h#mHFq 0ŕ\Q5-Zv;.MM1c=%iLn2{ϳ|7cPx и0w g1#\V8ZuԀ/;*7D9Yim=wpVA*%J*lk](<\)+qb79Xٹa4k$O,yYkR0FrDTͦjc:/=U5$j身m`7 uAQmҵmso 2ɌPϽ7e d@L/TP˾!o,5[F,r; ˖ D,YmUQBhzr.;KK¶EsrnxEBeH,ǯ^.kD!& 蘩s6v~?37wsӳ\Ps6~ͥkk'T: q4vf,iT:sqX2f]$#DLqWTĈA,W* Ke]!e@бjgb 8^4%:VP5}rMţc匤PM63]6TqIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/mp4.png0000755000176700017710000000325111061563426030165 0ustar essawireessawirePNG  IHDR DsBITOPLTElsxxEIIf׿{l%--JI`H'j7 架$5i)TzpeM@)fffސfQ3 zחᅈdVG>1%qaJvuDC75*ECB""zjS3&$^ 䳳 b$ʛskbUXYҋF-UB*ofO;KJ333$8c3n_P;87rQRS};0B-YJ:d^XZw1-]H)?Q2AHG֍ҭH/.wtx0>$.**q bQ>F! ؓ뗞m]Kis),fiiqpuuYWVpcV!"RJJH:id_~毷,"ߝrlPN(:TF411:GM.WTTus19 B4&)5#帉Tq懨4{k]PF98̽ŋm^Z[[}}~ JBBSD1݂<3dWJfS7((* 478HP2܁exsƱhU7ٚpfo g_X4.(s))!uskR'"!B9)씊 tRNSM pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxyIDAT8c$@M@ lm` l8@  m@ ` 6΁@U)G/0`J@V'׆gc(@MH^<}0iW܄` 0կXjgDr %&BHx7ݹ(Pon)#/o#"+klؤ dkl޼YrslMٛm%pqj(smjCR'EZR*X#[z-g6n@Q%{(JquHYr%<3GDw7 ER< zU%Pp(hJHHXtܐRP^jqd#GfZ*-EW[R]SEWi/_/#DQ.s8餤ϻuA'g(|]=Y>k|gÄs "`r`q80ݛpaFc֚ p5-sH&x`3X^ ;ի.oD(HRt8p@Fp ۷I-٧ UL QFܼq#0mԷiK-,wo [hæs!WIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/index.html0000755000176700017710000000005411061563426030752 0ustar essawireessawireelracodelangela/administrator/components/com_media/images/mime-icon-32/ppt.png0000755000176700017710000000237311061563426030274 0ustar essawireessawirePNG  IHDR DsBITOPLTE333雺l>srrr𽽼aSVh}ٌ֋UHHH]u̅nĜ}]rsǬmmm꜄暤|ûCxAAAгǵ޹PPPaaao}y츛rwPt:::XʾʤZwwާbֆѝ{WWVɏ洵]JzʛѨֽ步`væ᠄̼pk)tRNSJW pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT8S0ǧ%j5ZQP *-hMTTN/Mp"S9Ϸ'[ו~~'ܷM{qTIt 41ssM ӷggӹm/XP0|zOtQuh sJb, W]=pkjoj&jApzyGF&'S+c{^,!=`b3`{ X9<|蛯xAd@f ]:R)*U(@h*[9mslEhhJ؊0\00TE8ea`5*@*aF,ajCSh AN =,=eYg]hJon RqBYȜ/91IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/tgz.png0000755000176700017710000000261711061563426030276 0ustar essawireessawirePNG  IHDR DsBITO PLTE~JÅUɰ{`ҨsÓYóìʨeoݝ趘\JøvΤ׹ztϲtZkŅdӖޯE¹R뚟ߣμYɫmָzÿ]½̐ˍgؾQlٴo齽̛֛Kvߢμ`U~_ŠͱMåkГıõέl;ȋWޝǭsʿֹYýciγ|򳠃JzPtֽ͸amcťdZյsֵח۽}YG}hؙXOŌϸȺżŭԪέcŽy>tRNSr pHYs  ~tEXtSoftwareMacromedia Fireworks 8hx7IDAT8o`q*sN<&rULGV۝@n"]cފAj- Ϫ谝XgWXg5:ڼ|K]Sgmd< v06z^+y; ɢa.P>@\.e(Wg ]"&]mQ qV%0v#"u|Q v] ˱[rRK !+- D(K|w .m 5uYtj6q 6Z=:00j`nz)@DE4ͲF 4D'*mE-kO~AfE/IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/rtf.png0000755000176700017710000000215711061563426030264 0ustar essawireessawirePNG  IHDR DsBITOYPLTEHlD˿gƘbГf̧}b𼼼Uơbµťv(揰jncb¿ȋLǺyԅݧcu3^ѵˮvkYuzĸΗwyfԭ|_cɓkŵλ{{2޳mrustRNSjo pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT8io1õ C W-r )0VK[N!f콄nc;3vJה%ykhA4kIN丷[L"`-gD?&WW?|Y{?~[: oewwn[po[y9MO,.ZZxqnb;8hIusSAn4ڌif6KIJA(#@1@Q,TFC 1$pc}IZ_ߏnj@MTF2PvB\D5*uTpB&n}~L?c ͊ZԮnWy /kK9qpxKP QvS4_\K,+|\;?nzx[|bn9?>x=ݟׯN'aZәL&~`Luf3!bL ȹǖy2#a'$[A!дHkgX8}j\mZtܱ2hJ;sqPwd)tf.m9"zcbS7DYie0r9:ص2Mi%*^t9J|B Ԁ+ GѾꉗh*BO(zrX< Ri @!({a Xߨ B ?oCYKic=oj%jIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/odt.png0000755000176700017710000000237611061563426030262 0ustar essawireessawirePNG  IHDR DsBITOPLTE/G˿ch~eƌSrз؞^uWj񞩒gwv(iŕς;擝眡[νmUl衩NjI̳гί~tP^􎦗ӬxyЅbu4z̧~_lާw޶改ѓvķͿxgΧt|=My]qftkՊz3px8tRNS{, pHYs  ~tEXtSoftwareMacromedia Fireworks 8hx2IDAT8S1ǩM[(OXA<vWTDQ$񙌙1ߙ~vghY"RJI 1PTLy>_C'cH)R=Z1n{Ǫ҇}h 5 ʽ ๸ˡoB<\YzjΙ-0ҩ=J9Rt'6)5S\BP,2NAaմ;Rm}O|Y$%F1 Q&ZcFC'HޡHt=w|>wQp~Z Tz.pjrnzZ)3mۅKM]ŷ`(@+ E$Bou`iCb:V OGNL<((@`ۧ\Ai "G]y˼{fWU%(ʊ޾ʋS XڦrZI3e5 @;er.W JSDͥ$xcȗAh;M@QQSZ,<%; T'Bs;w† xKB(NFp65(YF."ϻ ~qRvC mGrg$"Wu@Y4.ABbZP, &dM fG$"o5Xɣ=ηWS.%'V:Zg@ }FEDE -6PSTQiIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/doc.png0000755000176700017710000000212611061563426030232 0ustar essawireessawirePNG  IHDR DsBITOJPLTEHlD˿}ØUbŸĸjbߓfȋLḑ}z戹ھv(µ֙cbœًМmu3hߦˮŗ̼ۊuzuYq隧ŵߨyfԭ|Τ΂ɳck{2sǺ(2ntRNSK; pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT8s0Q#0reJ@qe7ӴSn:WJqlX5Iv%M]e@l:1)c}vl],mnnl,^D0FGbgFcf迹 Pv闫Kz2Fh]{sݟ?/- a MOؤ92/7li&,+C@ F,Q*GB© TE/D_n7 x^  (w9iF YwTj.1P˱@_OBh9? ! jn/_2[&SG~|#DRT_~.YdzLNɏ+'J:>ӉO/n9Em"֑l"M(ꥩ!2Z1@ɋy ((T G,$iT$dDok+d;\UA"7]$:LX³XXIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-32/wmv.png0000755000176700017710000000321511061563426030276 0ustar essawireessawirePNG  IHDR DsBITOPLTEwsxxEIIf׿{l%--JI`H'x7 $5i)zpeM@)TffffQ3 zdVG>1%жqaJvuDC75*ECBc""zjS3&$^ 䳳 b$ʛskbUXYߊF-օUB*ofO;õKJ333$8c3n_P;87QRS};0B-YJ:d^X؅ڢ尸w1-]H)?Q2AHG֭H/.wt0>$.**wq bQ>F! m]KiZ),fiiqpuu~YWVpcV!"RJJƮЗ̋H:id_쯷,"rlPN(:TF411:GM.WTTyms19 B4&)5#Ә4k]PҢF98̽ŊmZ[[}}~ JBBSD1蝤<3dWJfS7((* 478HP2exshU7pfo g_X4.(s))!uskR'"!}B9);tRNSpb pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxmIDAT8c%@F@` A &lUa ւ @#cuKj{@ngvs(ܹ{rX>k'e};=[ Siy¼]6ŧ@("+/šX~I \ QGjZ(@V` !;P(YfuZ`c $7s\3`!+HZNr#"F.T$e$Nl2reXbZ\Fkၔ o/ 3M'O駟rڵ sHk^?FMJٿ?n۴4T4:YG QRJ,yW^q|V:kI՚%8drMl^>ZkHpz_H)Z311V\B)X6&7?lRJROGGض###T0MF0-RJ^|8doN<0 ǑRF|%]d !u]$q\ݳNʨ5o-¶m,BJܻwbȡChiiaxxT*tvvHSi*h}ss3KKKΒfimm .\Wȑ#[q$~]5551>>יT*9|0dطowٳLMMa6/^ qu OXD"ӧOdݻB@>gddrGeǎtuu1339vBaM]Z fcZk0Ѝ7}D"A*"ˑJXZZ܄Iww7XӧO300m۔J%RxČ^DZj4M:: 455%0*+U[* Tc_;wn:ʙ# @IENDB`elracodelangela/administrator/components/com_media/images/folderup_32.png0000755000176700017710000000345111061563426027514 0ustar essawireessawirePNG  IHDR szzIDATX͖]lTqw~kcX+6B (VZHRڗŨi%"7TUV}@y(HiPP/Q< lC^)xozݽW [Ř#;3f̜!|Ft-VRF 42 0$N [)=Ka}? 9:}؛Շguin#GZp,t>c W?= Yf͎G˾h PLX4\h:;ըn*~=vpU *%/ 2f7]@ u@(UnEqVy%RWdmʏT$6kjjC(P|G,,h ʪlp[-p8Ǻ@36h^Ub F'?[L} *@dM. Uk*Wڛ@ _=DRI!k!؎۾$h`+w*d*F Y+A4V0 H( Lk /~ WznaĹG'a  Rؾ ).e4Dff:89{q ݟ,EݛXMAH9up<,|Кm2o\< )ρqCZ},9PKr-&YVOVVQF+B5\X>ujUꗖ'ًo~^P^.ʉ lP,C/@#=̊,Ʋ2pg .Ju;:k^?|5ZOwFWR,>Zs#F_wR[;8qtuu7oҙ'Z{R$ =пs۶u45UUU۷455Ҏ611s%J)Kk͍1pc ͘V0" ;YBPTAsi۶())۶mmmmqqJ8\)ŔRNp뎸1rFcdtc u]Nu"ϟ RNΜ9ClyGLkM ZỏLB !DSJ5T3ƔSwRkjj={tKKK>Cm@ݡIENDB`elracodelangela/administrator/components/com_media/images/remove.png0000755000176700017710000000111411061563426026657 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE もRR:: 夤((tt%%66붶oo 䒒CCcc??{{))33mmHH\\rr22;;LL99** ##{{))MM88ffssta`@YnE؏@c&*%XDB6٤E+%Òe\rRGoaChIOH Hix' ™Jrj衆jQ¤Vj饖*:G C*j 7Y 葂꫰z*뮼jjf0ő)`B&¡jApG,J*9hp_( 0B\ Y+YZ(@0P@4a* 7jA {F{> A~/.' gk1Th164@(#` K! DrOWmXg\w`-dmhv ;elracodelangela/administrator/components/com_media/images/index.html0000755000176700017710000000005411061563426026653 0ustar essawireessawireelracodelangela/administrator/components/com_media/images/edit_trash.gif0000755000176700017710000000022111061563426027467 0ustar essawireessawireGIF89a3ff3fOOOӭ!,>IhL rlA@, /1 oroCI $;syZlN";elracodelangela/administrator/components/com_media/images/btnFolderNew.gif0000755000176700017710000000113411061563426027736 0ustar essawireessawireGIF89aqbMVծ?Ɏssvʀn>¥Uйxط_ǿӍġ?xzsiʱjժ]̙3˯ps^҉ٷtiS"ԼβO_჏۸sֵR)Ο;Z۹]ѣGuvlWʣ:سlYٹX!O,O"55OOX%TTIZ:O:1^BOL5\QQUOAKH.FWU(7C,=$3[ 95 " O'VYQ>//+R+#<8NJ)/ OG8Q; Сɋ!T(`cA"2e'02@G(pA'eQK0;elracodelangela/administrator/components/com_media/images/folder_sm.png0000755000176700017710000000127711061563426027346 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEq]5ÅˬkȼYzḫҕLҹưjsMŠӴuٝ׽̦zg@ΕeכwBɬqغ{ȋѲsǝvQ߷uКٮR滝`kJƲ۟ԗ޵zHvb:zTؼĦċYַxťdβx|hA۽~޽ħk˫ѝɮx}XԾ#sStRNS9 pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT5R04B-(H8H(4PNJ " :R? M[fgLrjR~K66,3d!G3=V C s@)= 3xJ"w !aҞn pMbe"]PJ Ϊ sa&j p.g[vhg&I ^%"d mi }gxv >?zvT@ArĈnd[0 sg//߂ 5dgb&IENDB`elracodelangela/administrator/components/com_media/images/btnBack.gif0000755000176700017710000000113311061563426026710 0ustar essawireessawireGIF89afv_)?ٳljE@ѝ܋"b%ff0>>}fESx=2T$\[ 2{/yzlj݉#yz33l/DzEeJH+# ڄ.8Ցk&y!t;X$ؠڂD@FHS= k)40e("" ;g;:I[&ߒb.܌ssBBB[ jR"Ŷ>>xiڀ赌s!,1IY*-O2NF:XI\BPU4$9G&_ $ND1P4))'$/"Q$)8LL#ĺ5MW<[Z$J%F?ùMMOO ͹><GDTU5mq|ߧj ###t\ ݥX,fh4 R.)JHVE|>x lmm.KKK$IuVlnn1A@%ծl6T*DQDVY㘛00&u ~1331Ze&&&hDQB@U9( 83??1wӾ  A}>z^ lx;IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/sxd.png0000755000176700017710000000142511061563426030266 0ustar essawireessawirePNG  IHDR(-SsBITO8PLTEA76眻˖v{zsr_XQ˟5¯թπ|դVWRBϢjy״ۧӜTKEÙJ`Kw헜9ٮ⣩愤Xa?ҥeaYϮԖ||̽][XѮRRN޻塾ۛhtRNSn pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATcE `̣LRյ Ԍve  RjVp(+mg2XKG__@I"`h' llaEMEX"6ԏ$Ԣln&V'H TЍS4 冘!-à宧gV55u簀)0sqxB 2!fmkj8geIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/pdf.png0000755000176700017710000000117111061563426030237 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE==ؒUІ~עⱪa`̇^Uїpgpۘથݘṵ؃wgaᢘᥛ擰SF㸲71Њٙ䳫ӤѦگjb龶X98HtRNS# pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATMi[@q<Ŗ<:D[YBо7j3 (ܯ(65čin/J/* [1XHDڞH&`?_:O:>a K0jhu ]^PJ,ϺpoϮL (dIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/svg.png0000755000176700017710000000125511061563426030270 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEin֧pՇ֗ʦ{}}͟űmҏɘ۴̾螽ȌꎫvÈުqwٲs}{zճmvŽֵΉʑ뜽PtRNSݵ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATMR0bj#VJ6 Z< I \|8oZkEj)4 ~`!F$7x>a<&Q}L,V5q Z~v@=9)mNf?< 8,j)w_=JAMPmJ=oLRTPPc껧'm#rIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/odc.png0000755000176700017710000000134511061563426030236 0ustar essawireessawirePNG  IHDR(-SsBITOPLTERJꅮlmcIͿɚc[ρDt؎~}rt&Ώ[UWmȱjގޯ˫Bŗ߾ƒ\`ɽ˾jΓcߢUTĞʃKׇY\Ѱ˛Ҝ \tRNS`0n pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT=R@,IDdb93IJQB=F~Um!zh-1qwEQc@2I$ ,!=;S0.~h- 0OoL@\X8I)6waؿ: JOVÓPJ|eÛUtpxE Bsg׻}V*%D^l9]őm3WTQIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/zip.png0000755000176700017710000000140011061563426030263 0ustar essawireessawirePNG  IHDR(-SsBITO,PLTED޿~EuqюYμ̼vũnγ{ަȫ[hHԵƱɍÄՠ。fϭiᮒYOޝÑgoٹui﷓Peŵ׻}bdžUͶ֔ѺķϰpĥdK׹yŨnȬqM̎^צQɛɶܽ dtRNSC pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATcA pXSKTN$'og$'`edTt׏R!+@14I  Z, .  A 8[v@xI{0qV4PX $`jee+h2CMQP*,$l=B"cZ.u!!!7]  ;XDFX=g`qqq"@B8*ғIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/mov.png0000755000176700017710000000135311061563426030271 0ustar essawireessawirePNG  IHDR(-SsBITO PLTE~mssd^VO..צ|;4&_S"!fQ5}Z]Zj_+֟xxjkkĔ0E+p_M! |RP;΍NE6ܫpqbc9=8eX@K+;YF1teT{RJih帹[87pjeЋ\V#lV8# zYP 臨j]P֠oh@89ֳԋ_T`tRNS` pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATcpsFnn nn6 ǧ* 0t 0~0c~@D4S'Tb|||bAf(!>D@ D\ *!<^bm[0;HDC]C5C*IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/rar.png0000755000176700017710000000135711061563426030260 0ustar essawireessawirePNG  IHDR(-SsBITO PLTED޿~Ь͌xYvũnÑަγ{ж[hdžHȫԵՠfϭiYݣO׻ޝƱgμٹuiÄɍᶭPe׹ybưܽU֔ķϰpĥdKŨnɶȬqM̎ɛͶʶ^צQ6`tRNS` pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATcpC pi\]#"L9@A2Qvvlz FFcI@]]0E ǧ14P $ Z,, XK.G8vvv1kaj4PX $bl`aaɫ2CXD"*l5I1c8Ze5 $m!.am  Z*46IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/odd.png0000755000176700017710000000140411061563426030233 0ustar essawireessawirePNG  IHDR(-SsBITO&PLTE<;4頾ϗvxf͸@ز菱inAնӫƞPԼwu\YRȍ͢ba`ެˏ7òށ~}ٙC@:hm]ɽս{q|lhnIC>ِúٞݞƕs{hf`ޢ޽%?btRNSv pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATE{7A"+bKIZEw]ryi%lwc bApGX9H$} !1ӽ/.1(~?Kz{}8YyD$ BL<ΝrݭF kj>"ɝ^8-#w\/bgkg|V4L X&\8::Bbc7(H ނG222IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/xls.png0000755000176700017710000000127211061563426030276 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEWVƸ{iѤ~mhƶ?ةn֫ѷ뗸qó͍ؑӴ|꾏ZT[ƻpyއͽ^W_P{iޔ]VФϿ`u'b]mTtRNS pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATMN@஀XY+肧IB [Ÿ͗̌}-b֘5fmE+zs`@9U5|),>BRr ;Wtzok;]-U9׷%:IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/mp4.png0000755000176700017710000000133311061563426030166 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE愨mssd^VO..pq;4&_S󼼼kܫ赽צ"!fQ5Z]Zj_Ĵxx+帹▹ϧjkk0E+p_M! |RP;NE6bcu9=8ՓeX@K+;YF1teT{RJih۵[87pje΋\V#lV8# zYP{ j]Pޠoh}@89֋_TP!\tRNS`0n pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATcptD Fz -j uQyg`FyY(nPP/?T@f9D@ $|!j\\jG)7fV$U` G;/ osaCu>V4L X&\8::Bbc7(H ނG222IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/index.html0000755000176700017710000000005411061563426030754 0ustar essawireessawireelracodelangela/administrator/components/com_media/images/mime-icon-16/ppt.png0000755000176700017710000000112011061563426030263 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEfff߽hY׆ϼyxwؾy}hɊµoa~ÿꝵy貲ӧԭᶖgO?tRNSO pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATE0FI-EU:c,Mky>39X+St %qu9BIn pS lN0a1$^!lJNAs"B>pM!lPDY6Ti`r]3pArCcZ9794*sfIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/tgz.png0000755000176700017710000000136511061563426030277 0ustar essawireessawirePNG  IHDR(-SsBITO#PLTEDÄwּfӱަķҶ[γ{Ʊ£Oɛ󼵒箒Yũn㶭̎׻gՠvPμԵ޿~ÑYޝĥd˻ȬqzȲHȫŵ֔궱ٹubhdžɍܽUͶϭi歴eŨnKӾi׹y̌MϰpQZצɶȌatRNSK pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATcB pdpp.XS]ԃKVT$˗dobd`dt3W>rCXA | fw 8F:qYA~~~ 3ye% CC+H8:3j AeW:Rb@vRRv@{qll0a 6bǢIENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/rtf.png0000755000176700017710000000101511061563426030256 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE}wѬ֫}{4vP~琶壛}갽抺ػю纄D߽دSԎ_2tRNS6 pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATE0 ki) $\Q9Cb0z]BB BdƑQ60n7[Rbj0J)q^A"N(Gae! G-@l}uA>d7 Y{!V%b`B\OmAyمW*4V{ IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/wma.png0000755000176700017710000000105211061563426030250 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE|ibbbFFF似۾333%%%c̑{{{wXVUطqqq999 )))[[[nnnUUUBBBk 8tRNS+o pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT]0 ` jP͆"437_KӃ1d1NGD)4jk pTV3=sL To4HJ1Pắ{ ϓE $ "ʱȄ.Px^pVK-fD_*azqTq^[h41IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/odt.png0000755000176700017710000000110211061563426030246 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE^̳D곱я絽אޯѭuǺУƯuю{4ܿޢཽLjクӻ鴸֭팿@=tRNSmz pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT50@Ql@`$(]Ǔ(i 9M* >6N܁ʮT@Fp: M ެ 3ye$ \X)8HI3j@Q:\@&"aaV@Zqtt a }5<0IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/doc.png0000755000176700017710000000103111061563426030226 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE}wѬԅu{4繶ęޫǣ}֏ضϽ溄Dºߝﳽʵد숱ܻ\}5tRNSw9a pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATE0 DQ 8Ee<&YX+p>^ú#PmUًئt;!cͮu Pz9Hc"A( 9@IQ Pq6|)D*LQ/{]<IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/wmv.png0000755000176700017710000000135411061563426030302 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE㴷mssd^VO..};4&_Szצ"!fQ5◹Z]Zj_q+jkk0E+p_M! Ժ|RP;帹NE6pqbc9=8eX@K+ܫ;YF1teT{RJih[87xxpje蓮\V#lV8# ԼzYP j]PϠoh@89֋_TB^&"_tRNS)ٮ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATcprDNN NN + v Fwyc=oN@,77Tb#}|TbAf; KA%D@\W\WWWI1"`%ʡ prscv hǰXG(Bp3W3 h+*p Șh+1K$ ؄!89xxu0tli2$IENDB`elracodelangela/administrator/components/com_media/images/mime-icon-16/ogg.png0000755000176700017710000000136711061563426030251 0ustar essawireessawirePNG  IHDRasBIT|d pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxnIDAT8KA? hE(*A:Wq\S7WB V\䢂P:ڠUKJ !1Ѷ:ԼM]{pp<>wZ X__E*@nvh1u/GO0c YO0Xa?3)@Dl$$I1&ht&91Ff08ݾ1U@ǀAE1^\uo_fAFz\^6b7(u/@)%7ϩ댌P*( ݂ PipZQJf9< Wy(GG@:[^R d7 zi]7 =AoP'H Uh/TeV$p"&CC# JB:DD ?:!49$qA)ؑݰNT%;elracodelangela/administrator/components/com_media/images/edit_pencil.gif0000755000176700017710000000021211061563426027620 0ustar essawireessawireGIF89afff̲UUUff̙3fff3̙! ,7pIܪ$ηi@R ҶeZ"Xr0MKDD;elracodelangela/administrator/components/com_media/images/info.png0000755000176700017710000000105111061563426026315 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEa3ji5pV^Ns{ރOǫWJtD]ias,gAr^QepJچ\<_!fkތkeYH6tRNSoI pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDAT]0  10'Fh|Ws Hi]+t֞Wru@fIk= -(I }:8W si 9皱ian (,ȃj.u0`ْx< eC==jG7C(sKtw~͋hu*;~#|xIENDB`elracodelangela/administrator/components/com_media/index.html0000755000176700017710000000005411061563425025405 0ustar essawireessawireelracodelangela/administrator/components/com_media/views/0000755000176700017710000000000011061563563024546 5ustar essawireessawireelracodelangela/administrator/components/com_media/views/medialist/0000755000176700017710000000000011061563563026521 5ustar essawireessawireelracodelangela/administrator/components/com_media/views/medialist/index.html0000755000176700017710000000005411061563425030515 0ustar essawireessawireelracodelangela/administrator/components/com_media/views/medialist/tmpl/0000755000176700017710000000000011061563563027475 5ustar essawireessawireelracodelangela/administrator/components/com_media/views/medialist/tmpl/details_up.php0000755000176700017710000000114311061563425032336 0ustar essawireessawire .. ..       elracodelangela/administrator/components/com_media/views/medialist/tmpl/thumbs_img.php0000755000176700017710000000272311061563425032350 0ustar essawireessawire elracodelangela/administrator/components/com_media/views/medialist/tmpl/details_doc.php0000755000176700017710000000157611061563425032471 0ustar essawireessawire <?php echo $this->_tmp_doc->name; ?> _tmp_doc->name; ?>   _tmp_doc->size); ?> <?php echo JText::_( 'Delete' ); ?> elracodelangela/administrator/components/com_media/views/medialist/tmpl/details_folder.php0000755000176700017710000000235211061563425033170 0ustar essawireessawire <?php echo $this->_tmp_folder->name; ?> _tmp_folder->name; ?>     <?php echo JText::_( 'Delete' ); ?> elracodelangela/administrator/components/com_media/views/medialist/tmpl/thumbs.php0000755000176700017710000000160211061563425031507 0ustar essawireessawire
    loadTemplate('up'); ?> folders); $i<$n; $i++) : $this->setFolder($i); echo $this->loadTemplate('folder'); endfor; ?> documents); $i<$n; $i++) : $this->setDoc($i); echo $this->loadTemplate('doc'); endfor; ?> images); $i<$n; $i++) : $this->setImage($i); echo $this->loadTemplate('img'); endfor; ?>
    elracodelangela/administrator/components/com_media/views/medialist/tmpl/thumbs_folder.php0000755000176700017710000000247211061563425033050 0ustar essawireessawire elracodelangela/administrator/components/com_media/views/medialist/tmpl/details.php0000755000176700017710000000233511061563425031636 0ustar essawireessawire
    loadTemplate('up'); ?> folders); $i<$n; $i++) : $this->setFolder($i); echo $this->loadTemplate('folder'); endfor; ?> documents); $i<$n; $i++) : $this->setDoc($i); echo $this->loadTemplate('doc'); endfor; ?> images); $i<$n; $i++) : $this->setImage($i); echo $this->loadTemplate('img'); endfor; ?>
    elracodelangela/administrator/components/com_media/views/medialist/tmpl/thumbs_doc.php0000755000176700017710000000164611061563425032344 0ustar essawireessawire
    <?php echo JText::_( 'Delete' ); ?>
    _tmp_doc->name; ?>
    elracodelangela/administrator/components/com_media/views/medialist/tmpl/index.html0000755000176700017710000000005411061563425031471 0ustar essawireessawireelracodelangela/administrator/components/com_media/views/medialist/tmpl/details_img.php0000755000176700017710000000262611061563425032475 0ustar essawireessawire <?php echo $this->_tmp_img->name; ?> - <?php echo MediaHelper::parseSize($this->_tmp_img->size); ?> escape( $this->_tmp_img->name); ?> _tmp_img->width; ?> x _tmp_img->height; ?> _tmp_img->size); ?> <?php echo JText::_( 'Delete' ); ?> elracodelangela/administrator/components/com_media/views/medialist/tmpl/thumbs_up.php0000755000176700017710000000127111061563425032215 0ustar essawireessawire
     
    ..
    elracodelangela/administrator/components/com_media/views/medialist/tmpl/default.php0000755000176700017710000000000011061563425031620 0ustar essawireessawireelracodelangela/administrator/components/com_media/views/medialist/view.html.php0000755000176700017710000000446111061563425031154 0ustar essawireessawiregetUserStateFromRequest('media.list.layout', 'layout', 'thumbs', 'word'); JHTML::_('behavior.mootools'); $document = &JFactory::getDocument(); $document->addStyleSheet('components/com_media/assets/medialist-'.$style.'.css'); $document->addScriptDeclaration(" window.addEvent('domready', function() { window.top.document.updateUploader(); $$('a.img-preview').each(function(el) { el.addEvent('click', function(e) { new Event(e).stop(); window.top.document.preview.fromElement(el); }); }); });"); $this->assign('baseURL', JURI::root()); $this->assignRef('images', $this->get('images')); $this->assignRef('documents', $this->get('documents')); $this->assignRef('folders', $this->get('folders')); $this->assignRef('state', $this->get('state')); parent::display($tpl); } function setFolder($index = 0) { if (isset($this->folders[$index])) { $this->_tmp_folder = &$this->folders[$index]; } else { $this->_tmp_folder = new JObject; } } function setImage($index = 0) { if (isset($this->images[$index])) { $this->_tmp_img = &$this->images[$index]; } else { $this->_tmp_img = new JObject; } } function setDoc($index = 0) { if (isset($this->documents[$index])) { $this->_tmp_doc = &$this->documents[$index]; } else { $this->_tmp_doc = new JObject; } } } elracodelangela/administrator/components/com_media/views/images/0000755000176700017710000000000011061563563026013 5ustar essawireessawireelracodelangela/administrator/components/com_media/views/images/index.html0000755000176700017710000000005411061563426030010 0ustar essawireessawireelracodelangela/administrator/components/com_media/views/images/tmpl/0000755000176700017710000000000011061563563026767 5ustar essawireessawireelracodelangela/administrator/components/com_media/views/images/tmpl/index.html0000755000176700017710000000005411061563426030764 0ustar essawireessawireelracodelangela/administrator/components/com_media/views/images/tmpl/default.php0000755000176700017710000000652211061563426031132 0ustar essawireessawire
    folderList; ?>
    elracodelangela/administrator/components/com_media/views/images/view.html.php0000755000176700017710000000366711061563426030456 0ustar essawireessawiregetClientId() == 1) $append = 'administrator/'; JHTML::_('script' , 'popup-imagemanager.js', $append .'components/com_media/assets/'); JHTML::_('stylesheet', 'popup-imagemanager.css', $append .'components/com_media/assets/'); if ($config->get('enable_flash', 1)) { JHTML::_('behavior.uploader', 'file-upload', array('onAllComplete' => 'function(){ ImageManager.refreshFrame(); }')); } /* * Display form for FTP credentials? * Don't set them here, as there are other functions called before this one if there is any file write operation */ jimport('joomla.client.helper'); $ftp = !JClientHelper::hasCredentials('ftp'); $this->assignRef( 'session', JFactory::getSession()); $this->assignRef( 'config', $config); $this->assignRef( 'state', $this->get('state')); $this->assignRef( 'folderList', $this->get('folderList')); $this->assign('require_ftp', $ftp); parent::display($tpl); } } elracodelangela/administrator/components/com_media/views/media/0000755000176700017710000000000011061563563025625 5ustar essawireessawireelracodelangela/administrator/components/com_media/views/media/index.html0000755000176700017710000000005411061563425027621 0ustar essawireessawireelracodelangela/administrator/components/com_media/views/media/tmpl/0000755000176700017710000000000011061563563026601 5ustar essawireessawireelracodelangela/administrator/components/com_media/views/media/tmpl/default_folders.php0000755000176700017710000000072611061563426032462 0ustar essawireessawire
      folders_id; ?>> folders['children'] as $folder) : ?>
    • name; ?>getFolderLevel($folder); ?>
    elracodelangela/administrator/components/com_media/views/media/tmpl/index.html0000755000176700017710000000005411061563426030576 0ustar essawireessawireelracodelangela/administrator/components/com_media/views/media/tmpl/default.php0000755000176700017710000001122011061563426030733 0ustar essawireessawire
    loadTemplate('folders'); ?>
    require_ftp): ?>
    /
    [  config->get('upload_maxsize') / 1000000); ?>M ]
    elracodelangela/administrator/components/com_media/views/media/view.html.php0000755000176700017710000000733311061563425030261 0ustar essawireessawiregetUserStateFromRequest('media.list.layout', 'layout', 'thumbs', 'word'); $listStyle = " "; $document =& JFactory::getDocument(); $document->setBuffer($listStyle, 'modules', 'submenu'); JHTML::_('behavior.mootools'); $document->addScript('components/com_media/assets/mediamanager.js'); $document->addStyleSheet('components/com_media/assets/mediamanager.css'); JHTML::_('behavior.modal'); $document->addScriptDeclaration(" window.addEvent('domready', function() { document.preview = SqueezeBox; });"); JHTML::script('mootree.js'); JHTML::stylesheet('mootree.css'); if ($config->get('enable_flash', 1)) { JHTML::_('behavior.uploader', 'file-upload', array('onAllComplete' => 'function(){ MediaManager.refreshFrame(); }')); } if(DS == '\\') { $base = str_replace(DS,"\\\\",COM_MEDIA_BASE); } else { $base = COM_MEDIA_BASE; } $js = " var basepath = '".$base."'; var viewstyle = '".$style."'; " ; $document->addScriptDeclaration($js); /* * Display form for FTP credentials? * Don't set them here, as there are other functions called before this one if there is any file write operation */ jimport('joomla.client.helper'); $ftp = !JClientHelper::hasCredentials('ftp'); $this->assignRef('session', JFactory::getSession()); $this->assignRef('config', $config); $this->assignRef('state', $this->get('state')); $this->assign('require_ftp', $ftp); $this->assign('folders_id', ' id="media-tree"'); $this->assign('folders', $this->get('folderTree')); // Set the toolbar $this->_setToolBar(); parent::display($tpl); echo JHTML::_('behavior.keepalive'); } function _setToolBar() { // Get the toolbar object instance $bar =& JToolBar::getInstance('toolbar'); // Set the titlebar text JToolBarHelper::title( JText::_( 'Media Manager' ), 'mediamanager.png'); // Add a delete button $title = JText::_('Delete'); $dhtml = " $title"; $bar->appendButton( 'Custom', $dhtml, 'delete' ); // Add a popup configuration button JToolBarHelper::help( 'screen.mediamanager' ); } function getFolderLevel($folder) { $this->folders_id = null; $txt = null; if (isset($folder['children']) && count($folder['children'])) { $tmp = $this->folders; $this->folders = $folder; $txt = $this->loadTemplate('folders'); $this->folders = $tmp; } return $txt; } } elracodelangela/administrator/components/com_media/views/imageslist/0000755000176700017710000000000011061563563026707 5ustar essawireessawireelracodelangela/administrator/components/com_media/views/imageslist/index.html0000755000176700017710000000005411061563425030703 0ustar essawireessawireelracodelangela/administrator/components/com_media/views/imageslist/tmpl/0000755000176700017710000000000011061563563027663 5ustar essawireessawireelracodelangela/administrator/components/com_media/views/imageslist/tmpl/default_folder.php0000755000176700017710000000065511061563425033361 0ustar essawireessawire elracodelangela/administrator/components/com_media/views/imageslist/tmpl/index.html0000755000176700017710000000005411061563425031657 0ustar essawireessawireelracodelangela/administrator/components/com_media/views/imageslist/tmpl/default.php0000755000176700017710000000134211061563425032020 0ustar essawireessawire images) > 0 || count($this->folders) > 0) { ?>
    folders); $i<$n; $i++) : $this->setFolder($i); echo $this->loadTemplate('folder'); endfor; ?> images); $i<$n; $i++) : $this->setImage($i); echo $this->loadTemplate('image'); endfor; ?>
    elracodelangela/administrator/components/com_media/views/imageslist/tmpl/default_image.php0000755000176700017710000000103011061563425033154 0ustar essawireessawire elracodelangela/administrator/components/com_media/views/imageslist/view.html.php0000755000176700017710000000344211061563425031340 0ustar essawireessawireaddScriptDeclaration("var ImageManager = window.parent.ImageManager;"); $this->assign('baseURL', COM_MEDIA_BASEURL); $this->assignRef('images', $this->get('images')); $this->assignRef('folders', $this->get('folders')); $this->assignRef('state', $this->get('state')); parent::display($tpl); } function setFolder($index = 0) { if (isset($this->folders[$index])) { $this->_tmp_folder = &$this->folders[$index]; } else { $this->_tmp_folder = new JObject; } } function setImage($index = 0) { if (isset($this->images[$index])) { $this->_tmp_img = &$this->images[$index]; } else { $this->_tmp_img = new JObject; } } } elracodelangela/administrator/components/com_media/controller.php0000755000176700017710000000402111061563424026301 0ustar essawireessawiregetUserStateFromRequest('media.list.layout', 'layout', 'thumbs', 'word'); break; case 'media': default: $vName = 'media'; $vLayout = JRequest::getCmd( 'layout', 'default' ); $mName = 'manager'; break; } $document = &JFactory::getDocument(); $vType = $document->getType(); // Get/Create the view $view = &$this->getView( $vName, $vType); // Get/Create the model if ($model = &$this->getModel($mName)) { // Push the model into the view (as default) $view->setModel($model, true); } // Set the layout $view->setLayout($vLayout); // Display the view $view->display(); } function ftpValidate() { // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); } } elracodelangela/administrator/components/com_media/assets/0000755000176700017710000000000011061563562024712 5ustar essawireessawireelracodelangela/administrator/components/com_media/assets/mediamanager.css0000755000176700017710000000353611061563425030046 0ustar essawireessawire/** * @version $Id: mediamanager.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * MediaManager javascript behvaior styling * * @author Johan Janssens * @package Joomla * @since 1.5 * @version 1.0 */ #treeview { padding: 10px; width: 190px; overflow: auto; /*height: 390px;*/ border: 0; } #folderview { } #folderview .path { margin-bottom: 10px; } #folderview .view { display: block; margin: 0; padding: 0; height: 360px; } #folderview input#folderpath { width: 65%; background-color: #EEE; } #folderview input#foldername { width: 20%; } #folderview iframe#folderframe { height: 100%; } #uploads .upload { padding: 4px; } /** * Upload Widget CSS */ .upload-queue { list-style: none; } .upload-queue li { background: url(upload.png) no-repeat 0 5px; padding: 5px 0 5px 22px; } .upload-queue .queue-file { font-weight: bold; } .upload-queue .queue-size { color: #aaa; margin-left: 1em; font-size: 0.9em; } .upload-queue .queue-loader { position: relative; margin: 3px 15px; font-size: 0.9em; background-color: #ddd; color: #fff; border: 1px inset #ddd; } .upload-queue .queue-subloader { text-align: center; position: absolute; background-color: #81B466; height: 100%; width: 0%; left: 0; top: 0; } .upload-queue .input-delete { width: 16px; height: 16px; background: url(delete.png) no-repeat 0 0; text-decoration: none; border: none; float: right; } elracodelangela/administrator/components/com_media/assets/medialist-thumbs.css0000755000176700017710000000334511061563425030705 0ustar essawireessawire/** * CSS Document for media manager thumbnail view * @version $Id: medialist-thumbs.css 10387 2008-06-03 10:59:16Z pasamio $ * @package Joomla * @copyright Copyright (C) 2005 - 2006 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software and parts of it may contain or be derived from the * GNU General Public License or other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ div.imgOutline { float: left; border: 1px; border-right: 1px solid #f0f0f0; border-bottom: 1px solid #ccc; width:90px; } div.imgTotal { } div.imgBorder { height: 72px; vertical-align: middle; width: 88px; overflow: hidden; } div.imgBorder a { height: 72px; width: 88px; display: block; } div.imgBorder a:hover { height: 72px; width: 88px; background-color: #f0f0f0; color : #FF6600; } .imgBorderHover { background: #FFFFCC; cursor: hand; } div.controls { text-align: center; height: 20px; line-height: 20px; background: #f9fcf9; border-top: 1px solid #ddd; } div.controls input { vertical-align: middle; } div.controls img { vertical-align: middle; } div.controls:hover { display: block; } div.imginfoBorder { background: #f9f9f9; font-family: Arial, Helvetica, sans-serif; font-size: 10px; width: 88px; height: 15px; vertical-align: middle; text-align: center; overflow: hidden; } div.imgBorder a { cursor: pointer; } .buttonHover { border: 1px solid; border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; cursor: hand; background: #FFFFCC; } .buttonOut { border: 0px; } .imgCaption { font-size: 9pt; text-align: center; } .dirField { font-size: 9pt; width:110px; } div.image { padding-top: 10px; } elracodelangela/administrator/components/com_media/assets/upload.png0000755000176700017710000000136611061563425026713 0ustar essawireessawirePNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8ˍkTWsg8ƷAmZ(RqB]UhtJB)?P .ˊ-Q4ąbiLRcHd2{"/Ňs?/WzX!-7=GnJS࿒ sʃ5`J$9u 3Nֻa-zGNtvX70p4:ZuSrQvvIENDB`elracodelangela/administrator/components/com_media/assets/popup-imagemanager.js0000755000176700017710000001366211061563425031037 0ustar essawireessawire/** * @version $Id: popup-imagemanager.js 10702 2008-08-21 09:31:31Z eddieajau $ * @package Joomla * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * JImageManager behavior for media component * * @package Joomla.Extensions * @subpackage Media * @since 1.5 */ var ImageManager = { initialize: function() { o = this._getUriObject(window.self.location.href); //console.log(o); q = $H(this._getQueryObject(o.query)); this.editor = decodeURIComponent(q.get('e_name')); // Setup image manager fields object this.fields = new Object(); this.fields.url = $("f_url"); this.fields.alt = $("f_alt"); this.fields.align = $("f_align"); this.fields.title = $("f_title"); this.fields.caption = $("f_caption"); // Setup image listing objects this.folderlist = $('folderlist'); this.frame = window.frames['imageframe']; this.frameurl = this.frame.location.href; // Setup imave listing frame this.imageframe = $('imageframe'); this.imageframe.manager = this; this.imageframe.addEvent('load', function(){ ImageManager.onloadimageview(); }); // Setup folder up button this.upbutton = $('upbutton'); this.upbutton.removeEvents('click'); this.upbutton.addEvent('click', function(){ ImageManager.upFolder(); }); }, onloadimageview: function() { // Update the frame url this.frameurl = this.frame.location.href; var folder = this.getImageFolder(); for(var i = 0; i < this.folderlist.length; i++) { if(folder == this.folderlist.options[i].value) { this.folderlist.selectedIndex = i; break; } } a = this._getUriObject($('uploadForm').getProperty('action')); //console.log(a); q = $H(this._getQueryObject(a.query)); q.set('folder', folder); var query = []; q.each(function(v, k){ if ($chk(v)) { this.push(k+'='+v); } }, query); a.query = query.join('&'); $('uploadForm').setProperty('action', a.scheme+'://'+a.domain+a.path+'?'+a.query); }, getImageFolder: function() { var url = this.frame.location.search.substring(1); var args = this.parseQuery(url); return args['folder']; }, onok: function() { extra = ''; // Get the image tag field information var url = this.fields.url.getValue(); var alt = this.fields.alt.getValue(); var align = this.fields.align.getValue(); var title = this.fields.title.getValue(); var caption = this.fields.caption.getValue(); if (url != '') { // Set alt attribute if (alt != '') { extra = extra + 'alt="'+alt+'" '; } else { extra = extra + 'alt="" '; } // Set align attribute if (align != '') { extra = extra + 'align="'+align+'" '; } // Set align attribute if (title != '') { extra = extra + 'title="'+title+'" '; } // Set align attribute if (caption != '') { extra = extra + 'class="caption" '; } var tag = ""; } window.parent.jInsertEditorText(tag, this.editor); return false; }, setFolder: function(folder) { //this.showMessage('Loading'); for(var i = 0; i < this.folderlist.length; i++) { if(folder == this.folderlist.options[i].value) { this.folderlist.selectedIndex = i; break; } } this.frame.location.href='index.php?option=com_media&view=imagesList&tmpl=component&folder=' + folder; }, getFolder: function() { return this.folderlist.getValue(); }, upFolder: function() { var currentFolder = this.getFolder(); if(currentFolder.length < 2) { return false; } var folders = currentFolder.split('/'); var search = ''; for(var i = 0; i < folders.length - 1; i++) { search += folders[i]; search += '/'; } // remove the trailing slash search = search.substring(0, search.length - 1); for(var i = 0; i < this.folderlist.length; i++) { var thisFolder = this.folderlist.options[i].value; if(thisFolder == search) { this.folderlist.selectedIndex = i; var newFolder = this.folderlist.options[i].value; this.setFolder(newFolder); break; } } }, populateFields: function(file) { $("f_url").value = image_base_path+file; }, showMessage: function(text) { var message = $('message'); var messages = $('messages'); if(message.firstChild) message.removeChild(message.firstChild); message.appendChild(document.createTextNode(text)); messages.style.display = "block"; }, parseQuery: function(query) { var params = new Object(); if (!query) { return params; } var pairs = query.split(/[;&]/); for ( var i = 0; i < pairs.length; i++ ) { var KeyVal = pairs[i].split('='); if ( ! KeyVal || KeyVal.length != 2 ) { continue; } var key = unescape( KeyVal[0] ); var val = unescape( KeyVal[1] ).replace(/\+ /g, ' '); params[key] = val; } return params; }, refreshFrame: function() { this._setFrameUrl(); }, _setFrameUrl: function(url) { if ($chk(url)) { this.frameurl = url; } this.frame.location.href = this.frameurl; }, _getQueryObject: function(q) { var vars = q.split(/[&;]/); var rs = {}; if (vars.length) vars.each(function(val) { var keys = val.split('='); if (keys.length && keys.length == 2) rs[encodeURIComponent(keys[0])] = encodeURIComponent(keys[1]); }); return rs; }, _getUriObject: function(u){ var bits = u.match(/^(?:([^:\/?#.]+):)?(?:\/\/)?(([^:\/?#]*)(?::(\d*))?)((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[\?#]|$)))*\/?)?([^?#\/]*))?(?:\?([^#]*))?(?:#(.*))?/); return (bits) ? bits.associate(['uri', 'scheme', 'authority', 'domain', 'port', 'path', 'directory', 'file', 'query', 'fragment']) : null; } }; window.addEvent('domready', function(){ ImageManager.initialize(); }); elracodelangela/administrator/components/com_media/assets/mediamanager.js0000755000176700017710000001324411061563425027667 0ustar essawireessawire/** * @version $Id: mediamanager.js 10710 2008-08-21 10:08:12Z eddieajau $ * @package Joomla * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * JMediaManager behavior for media component * * @package Joomla.Extensions * @subpackage Media * @since 1.5 */ var MediaManager = { initialize: function() { this.folderframe = $('folderframe'); this.folderpath = $('folderpath'); this.updatepaths = $$('input.update-folder'); this.frame = window.frames['folderframe']; this.frameurl = this.frame.location.href; //this.frameurl = window.frames['folderframe'].location.href; this.tree = new MooTreeControl({ div: 'media-tree_tree', mode: 'folders', grid: true, theme: 'components/com_media/assets/mootree.gif', onClick: function(node){ target = $chk(node.data.target) ? node.data.target : '_self'; window.frames[target].location.href = node.data.url; } },{ text: 'Media', open: true, data: { url: 'index.php?option=com_media&view=mediaList&tmpl=component', target: 'folderframe'}}); this.tree.adopt('media-tree'); }, submit: function(task) { form = window.frames['folderframe'].document.getElementById('mediamanager-form'); form.task.value = task; if ($('username')) { form.username.value = $('username').value; form.password.value = $('password').value; } form.submit(); }, onloadframe: function() { // Update the frame url this.frameurl = this.frame.location.href; var folder = this.getFolder(); if (folder) { this.updatepaths.each(function(path){ path.value =folder; }); this.folderpath.value = basepath+'/'+folder; node = this.tree.get('node_'+folder); node.toggle(false, true); } else { this.updatepaths.each(function(path){ path.value = ''; }); this.folderpath.value = basepath; node = this.tree.root; } if (node) { this.tree.select(node, true); } $(viewstyle).addClass('active'); a = this._getUriObject($('uploadForm').getProperty('action')); q = $H(this._getQueryObject(a.query)); q.set('folder', folder); var query = []; q.each(function(v, k){ if ($chk(v)) { this.push(k+'='+v); } }, query); a.query = query.join('&'); if (a.port) { $('uploadForm').setProperty('action', a.scheme+'://'+a.domain+':'+a.port+a.path+'?'+a.query); } else { $('uploadForm').setProperty('action', a.scheme+'://'+a.domain+a.path+'?'+a.query); } }, oncreatefolder: function() { if ($('foldername').value.length) { $('dirpath').value = this.getFolder(); submitbutton('createfolder'); } }, setViewType: function(type) { $(type).addClass('active'); $(viewstyle).removeClass('active'); viewstyle = type; var folder = this.getFolder(); this._setFrameUrl('index.php?option=com_media&view=mediaList&tmpl=component&folder='+folder+'&layout='+type); }, refreshFrame: function() { this._setFrameUrl(); }, getFolder: function() { var url = this.frame.location.search.substring(1); var args = this.parseQuery(url); if (args['folder'] == "undefined") { args['folder'] = ""; } return args['folder']; }, parseQuery: function(query) { var params = new Object(); if (!query) { return params; } var pairs = query.split(/[;&]/); for ( var i = 0; i < pairs.length; i++ ) { var KeyVal = pairs[i].split('='); if ( ! KeyVal || KeyVal.length != 2 ) { continue; } var key = unescape( KeyVal[0] ); var val = unescape( KeyVal[1] ).replace(/\+ /g, ' '); params[key] = val; } return params; }, _setFrameUrl: function(url) { if ($chk(url)) { this.frameurl = url; } this.frame.location.href = this.frameurl; }, _getQueryObject: function(q) { var vars = q.split(/[&;]/); var rs = {}; if (vars.length) vars.each(function(val) { var keys = val.split('='); if (keys.length && keys.length == 2) rs[encodeURIComponent(keys[0])] = encodeURIComponent(keys[1]); }); return rs; }, _getUriObject: function(u){ var bits = u.match(/^(?:([^:\/?#.]+):)?(?:\/\/)?(([^:\/?#]*)(?::(\d*))?)((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[\?#]|$)))*\/?)?([^?#\/]*))?(?:\?([^#]*))?(?:#(.*))?/); return (bits) ? bits.associate(['uri', 'scheme', 'authority', 'domain', 'port', 'path', 'directory', 'file', 'query', 'fragment']) : null; } }; window.addEvent('domready', function(){ // Added to populate data on iframe load MediaManager.initialize(); MediaManager.trace = 'start'; document.updateUploader = function() { MediaManager.onloadframe(); }; MediaManager.onloadframe(); }); elracodelangela/administrator/components/com_media/assets/delete.png0000755000176700017710000000131311061563425026661 0ustar essawireessawirePNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<]IDAT8˥KSa[nQP2wܦγL[,biaA\Cv_2MlZFjסNMjmkʷ`&.#z<ϓ bVPT3%I{GqRivȅ tz#E6EddJ`DR2<]N ;4Ѿ;m>78ɀQe6LIt殷cq!z |v j/Xi@ %1|hl !|! Y#uUNw]˼ H3u t]E>k%IfoRD:0`~ | (r on3oG0!$V *[W0_-+ dW&2ZfMFVJpiF&B > Rg- ~ CmڴER ឫ p5ްy+21Kawh` #aZ񽞆TZoLѓ`"(?'ˎJvKކ|:G9[aw82 Jw f'ymzsӘTsw__ιIrIENDB`elracodelangela/administrator/components/com_media/assets/index.html0000755000176700017710000000005411061563425026707 0ustar essawireessawireelracodelangela/administrator/components/com_media/assets/medialist-details.css0000755000176700017710000000176411061563425031033 0ustar essawireessawire/** * CSS Document for media manager list view * @version $Id: medialist-details.css 10387 2008-06-03 10:59:16Z pasamio $ * @package Joomla * @copyright Copyright (C) 2005 - 2006 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software and parts of it may contain or be derived from the * GNU General Public License or other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ .outline { border: 1px solid #cccccc; background: #ffffff; padding: 2px; } .manager table td, .manager table th { font-family: Arial, helvetica, sans-serif; font-size: 11px; border-right: 1px dashed #E7E7E7; border-bottom: 1px solid #E7E7E7; border-left: 1px solid #fff; text-align: center; } .manager table td.description { text-align: left; } .manager table th { border-top: 1px solid #E7E7E7; border-right: 1px solid #E7E7E7; border-bottom: 1px solid #999; background: #F0F0F0; padding: 4px; color: #666; } elracodelangela/administrator/components/com_media/assets/progress.gif0000755000176700017710000000142611061563425027251 0ustar essawireessawireGIF89a! NETSCAPE2.0!,7D ~z *Y+yMgN,z8*۷6UH!z]IS!,7#{4Ft6bԮ(`jltBQ!,4{TcIkNy9\灩6*4u~sUhC!,6!sX^v7(5یdhI.fCx^!,5!sXMcIyhsc؆#Ig{n(C֊=F!,6 z/*FE3eR#PVcꜬbb}k['k0CBf!,6!"{.F]8o4ezdG}@⸱*WHm~MzV?X8-$!,5 r"hHjjx8e'^)jH,E. k]x8ԏt@!,4!xٞūnNiZ 荨bi;j.;sr]仠!,5T˝"*ċMZ_Y般g\a49m~='CL;elracodelangela/administrator/components/com_media/assets/mootree.gif0000755000176700017710000003476711061563425027075 0ustar essawireessawireGIF89aWm.@Y␐ssșཽغ{=U͑ɭxzLoIŠɫjޤ˄ڹ|ҕηuٝzg@ԾҶ|^Ε昹uכǿ_vQКEq]5ūT6ѲsY}ؼȋwBֵٮǝg߿j灛IƲÅ洰Wˬkċ۟Rԗ`zTĦca+<넄ַx׽Ӵuťd۽~ưSħkvb:zHsM޽}XE|hAϪɬq`n+B! XMP DataXMP Adobe Fireworks CS3 2007-01-04T22:10:31Z 2007-08-31T03:57:19Z image/gif ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<:9876543210/.-,+*)('&%$#"!  !, 8LȰ`C JH`Ċ)fȱǏ n8aɆ'C1eBHAdƗ@sbʤiʣ [*RM 65Rƈ4 Am ZŪSQY2}iܤs'7WsD6po߿ y˘-gxg+uaQ1"(ΟC.#݇D$x @@w[7oM1q /ox$[DhC{`"8'Ouփ`Cȋ ?rTؐ__WQ2CG@` 2MbN^1a - AU [(@ /p0>$# h E2h56AH0h,AwTOtdK $CAЎ^RjdFo%yfifde^lRu})(|i@(1BUO-dikPP@>餕24ʦFpo6*j cbR4p&+eñnD!jϒ駌Cj,۬а  D& oBKPNTy0!FjbxzNCoRjf$Pwcp1B ,l!<xTZ@ ; @l(j((,&İlsfpI:Ne\[ h!pA)Qjenv,+qv]CߘwADP$>7X| 6ևEm8Lr.8䀿Tv >oBXĎ79mN ^Ԡ:tan祢 JЃ< AjSORB}0t}o?J+t7H I7ֈP)A^eW:Q ;elracodelangela/administrator/components/com_media/assets/popup-imagemanager.css0000755000176700017710000000507411061563425031211 0ustar essawireessawire/** * @version $Id: popup-imagemanager.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * ImageManager javascript behavior styling * * @author Johan Janssens * @package Joomla * @since 1.5 * @version 1.0 */ html, body { background-color: #F0F0F0; color: ButtonText; font: 11px Tahoma, Verdana, sans-serif; margin: 0px !important; padding: 0px !important; } img { border: 0 none; } form { padding: 0px; margin: 0 auto; width: 100%; } fieldset { border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; } button { padding: 3px; border: 1px solid #CCCCCC; font-weight: bold; color: #0B55C4; background-color: white; } button:hover { border: 1px solid #0B55C4; } select,input,button { font: 11px Tahoma, Verdana, sans-serif; } iframe { width: 100%; overflow-x: false; border: 0 none; margin: 0 0 0.5em 0; padding: 0;} iframe#imageframe { height: 195px; } a { padding: 5px; border: 1px solid ButtonFace; } a:hover { border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; } .buttons { width: 70px; text-align: center; } #f_alt, #f_url, #f_title { width: 22em; } #messages { position: relative; left: 175px; top: 115px; background-color: white; width: 200px; float: left; margin-top: -52px; border: 1px solid #ccc; text-align: center; padding: 15px; } #message { font-size: 15px; font-weight: bold; color: #69c; } /** * Upload Widget CSS */ .upload-queue { list-style: none; } .upload-queue li { background: url(upload.png) no-repeat 0 5px; padding: 5px 0 5px 5px; } .upload-queue .queue-file { font-weight: bold; } .upload-queue .queue-size { color: #aaa; margin-left: 1em; font-size: 0.9em; } .upload-queue .queue-loader { position: relative; margin: 3px 15px; font-size: 0.9em; background-color: #ddd; color: #fff; border: 1px inset #ddd; } .upload-queue .queue-subloader { text-align: center; position: absolute; background-color: #81B466; height: 100%; width: 0%; left: 0; top: 0; } .upload-queue .input-delete { width: 16px; height: 16px; background: url(delete.png) no-repeat 0 0; text-decoration: none; border: none; float: right; } elracodelangela/administrator/components/com_media/assets/popup-imagelist.css0000755000176700017710000000254511061563425030552 0ustar essawireessawire/** * @version $Id: popup-imagelist.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * ImageManager imagelist styling * * @author Johan Janssens * @package Joomla * @since 1.5 * @version 1.0 */ html, body { margin: 0 !important; padding: 0 !important; font: 10px Tahoma, Verdana, sans-serif; } .item { float: left; border: 1px solid #ccc; margin: 3px; position: relative; } .item a { display: table-cell !important; display: block; width: 80px; height: 90px; overflow: hidden; vertical-align: middle; text-align: center; text-decoration: none; color: black; line-height: 90px; } .item img { display: inline; margin-top: expression(( 80 - this.height ) / 2);} html>body .item img {margin: auto;} .item span { line-height: 100%; clear:both; display: block; width: 100%; position: absolute; bottom: 0; left: 0; padding: 2px 0; background-color: #eee; overflow: hidden; } elracodelangela/administrator/components/com_media/config.xml0000755000176700017710000000406511061563425025405 0ustar essawireessawire elracodelangela/administrator/components/com_content/0000755000176700017710000000000011061563562024003 5ustar essawireessawireelracodelangela/administrator/components/com_content/content.xml0000755000176700017710000000101311061563423026171 0ustar essawireessawire Content Page Joomla! Project April 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCCONTENT elracodelangela/administrator/components/com_content/helper.php0000755000176700017710000000622011061563422025771 0ustar essawireessawire', '
    ', $text ); // Search for the {readmore} tag and split the text up accordingly. $pattern = '##i'; $tagPos = preg_match($pattern, $text); if ( $tagPos == 0 ) { $row->introtext = $text; } else { list($row->introtext, $row->fulltext) = preg_split($pattern, $text, 2); } // Filter settings jimport( 'joomla.application.component.helper' ); $config = JComponentHelper::getParams( 'com_content' ); $user = &JFactory::getUser(); $gid = $user->get( 'gid' ); $filterGroups = (array) $config->get( 'filter_groups' ); if (in_array( $gid, $filterGroups )) { $filterType = $config->get( 'filter_type' ); $filterTags = preg_split( '#[,\s]+#', trim( $config->get( 'filter_tags' ) ) ); $filterAttrs = preg_split( '#[,\s]+#', trim( $config->get( 'filter_attritbutes' ) ) ); switch ($filterType) { case 'NH': $filter = new JFilterInput(); break; case 'WL': $filter = new JFilterInput( $filterTags, $filterAttrs, 0, 0 ); break; case 'BL': default: $filter = new JFilterInput( $filterTags, $filterAttrs, 1, 1 ); break; } $row->introtext = $filter->clean( $row->introtext ); $row->fulltext = $filter->clean( $row->fulltext ); } return true; } /** * Function to reset Hit count of an article * */ function resetHits($redirect, $id) { global $mainframe; // Initialize variables $db = & JFactory::getDBO(); // Instantiate and load an article table $row = & JTable::getInstance('content'); $row->Load($id); $row->hits = 0; $row->store(); $row->checkin(); $msg = JText::_('Successfully Reset Hit count'); $mainframe->redirect('index.php?option=com_content§ionid='.$redirect.'&task=edit&id='.$id, $msg); } function filterCategory($query, $active = NULL) { // Initialize variables $db = & JFactory::getDBO(); $categories[] = JHTML::_('select.option', '0', '- '.JText::_('Select Category').' -'); $db->setQuery($query); $categories = array_merge($categories, $db->loadObjectList()); $category = JHTML::_('select.genericlist', $categories, 'catid', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'value', 'text', $active); return $category; } }elracodelangela/administrator/components/com_content/models/0000755000176700017710000000000011061563562025266 5ustar essawireessawireelracodelangela/administrator/components/com_content/models/article.xml0000755000176700017710000001171711061563423027441 0ustar essawireessawire
    Article Edit Form
    elracodelangela/administrator/components/com_content/models/index.html0000755000176700017710000000005411061563423027261 0ustar essawireessawireelracodelangela/administrator/components/com_content/models/element.php0000755000176700017710000001153211061563423027431 0ustar essawireessawire_list)) { return $this->_list; } // Initialize variables $db =& $this->getDBO(); $filter = null; // Get some variables from the request $sectionid = JRequest::getVar( 'sectionid', -1, '', 'int' ); $redirect = $sectionid; $option = JRequest::getCmd( 'option' ); $filter_order = $mainframe->getUserStateFromRequest('articleelement.filter_order', 'filter_order', '', 'cmd'); $filter_order_Dir = $mainframe->getUserStateFromRequest('articleelement.filter_order_Dir', 'filter_order_Dir', '', 'word'); $catid = $mainframe->getUserStateFromRequest('articleelement.catid', 'catid', 0, 'int'); $filter_authorid = $mainframe->getUserStateFromRequest('articleelement.filter_authorid', 'filter_authorid', 0, 'int'); $filter_sectionid = $mainframe->getUserStateFromRequest('articleelement.filter_sectionid', 'filter_sectionid', -1, 'int'); $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest('articleelement.limitstart', 'limitstart', 0, 'int'); $search = $mainframe->getUserStateFromRequest('articleelement.search', 'search', '', 'string'); $search = JString::strtolower($search); //$where[] = "c.state >= 0"; $where[] = "c.state != -2"; if (!$filter_order) { $filter_order = 'section_name'; } $order = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', section_name, cc.name, c.ordering'; $all = 1; if ($filter_sectionid >= 0) { $filter = ' WHERE cc.section = '.$db->Quote($filter_sectionid); } $section->title = 'All Articles'; $section->id = 0; /* * Add the filter specific information to the where clause */ // Section filter if ($filter_sectionid >= 0) { $where[] = 'c.sectionid = '.(int) $filter_sectionid; } // Category filter if ($catid > 0) { $where[] = 'c.catid = '.(int) $catid; } // Author filter if ($filter_authorid > 0) { $where[] = 'c.created_by = '.(int) $filter_authorid; } // Only published articles $where[] = 'c.state = 1'; // Keyword filter if ($search) { $where[] = 'LOWER( c.title ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } // Build the where clause of the content record query $where = (count($where) ? ' WHERE '.implode(' AND ', $where) : ''); // Get the total number of records $query = 'SELECT COUNT(*)' . ' FROM #__content AS c' . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = c.sectionid' . $where; $db->setQuery($query); $total = $db->loadResult(); // Create the pagination object jimport('joomla.html.pagination'); $this->_page = new JPagination($total, $limitstart, $limit); // Get the articles $query = 'SELECT c.*, g.name AS groupname, cc.title as cctitle, u.name AS editor, f.content_id AS frontpage, s.title AS section_name, v.name AS author' . ' FROM #__content AS c' . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = c.sectionid' . ' LEFT JOIN #__groups AS g ON g.id = c.access' . ' LEFT JOIN #__users AS u ON u.id = c.checked_out' . ' LEFT JOIN #__users AS v ON v.id = c.created_by' . ' LEFT JOIN #__content_frontpage AS f ON f.content_id = c.id' . $where . $order; $db->setQuery($query, $this->_page->limitstart, $this->_page->limit); $this->_list = $db->loadObjectList(); // If there is a db query error, throw a HTTP 500 and exit if ($db->getErrorNum()) { JError::raiseError( 500, $db->stderr() ); return false; } return $this->_list; } function getPagination() { if (is_null($this->_list) || is_null($this->_page)) { $this->getList(); } return $this->_page; } } ?> elracodelangela/administrator/components/com_content/admin.content.html.php0000755000176700017710000006670711061563422030236 0ustar essawireessawire
    :
    getNullDate(); for ($i=0, $n=count( $rows ); $i < $n; $i++) { $row = &$rows[$i]; $link = 'index.php?option=com_content§ionid='. $redirect .'&task=edit&cid[]='. $row->id; $row->sect_link = JRoute::_( 'index.php?option=com_sections&task=edit&cid[]='. $row->sectionid ); $row->cat_link = JRoute::_( 'index.php?option=com_categories&task=edit&cid[]='. $row->catid ); $publish_up =& JFactory::getDate($row->publish_up); $publish_down =& JFactory::getDate($row->publish_down); $publish_up->setOffset($config->getValue('config.offset')); $publish_down->setOffset($config->getValue('config.offset')); if ( $now->toUnix() <= $publish_up->toUnix() && $row->state == 1 ) { $img = 'publish_y.png'; $alt = JText::_( 'Published' ); } else if ( ( $now->toUnix() <= $publish_down->toUnix() || $row->publish_down == $nullDate ) && $row->state == 1 ) { $img = 'publish_g.png'; $alt = JText::_( 'Published' ); } else if ( $now->toUnix() > $publish_down->toUnix() && $row->state == 1 ) { $img = 'publish_r.png'; $alt = JText::_( 'Expired' ); } else if ( $row->state == 0 ) { $img = 'publish_x.png'; $alt = JText::_( 'Unpublished' ); } else if ( $row->state == -1 ) { $img = 'disabled.png'; $alt = JText::_( 'Archived' ); } $times = ''; if (isset($row->publish_up)) { if ($row->publish_up == $nullDate) { $times .= JText::_( 'Start: Always' ); } else { $times .= JText::_( 'Start' ) .": ". $publish_up->toFormat(); } } if (isset($row->publish_down)) { if ($row->publish_down == $nullDate) { $times .= "
    ". JText::_( 'Finish: No Expiry' ); } else { $times .= "
    ". JText::_( 'Finish' ) .": ". $publish_down->toFormat(); } } if ( $user->authorize( 'com_users', 'manage' ) ) { if ( $row->created_by_alias ) { $author = $row->created_by_alias; } else { $linkA = 'index.php?option=com_users&task=edit&cid[]='. $row->created_by; $author = ''. $row->author .''; } } else { if ( $row->created_by_alias ) { $author = $row->created_by_alias; } else { $author = $row->author; } } $access = JHTML::_('grid.access', $row, $i, $row->state ); $checked = JHTML::_('grid.checkedout', $row, $i ); ?> ">
    getListFooter(); ?>
    getRowOffset( $i ); ?> get ('id'), $row->checked_out ) ) { echo $row->title; } else if ($row->state == -1) { echo htmlspecialchars($row->title, ENT_QUOTES, 'UTF-8'); echo ' [ '. JText::_( 'Archived' ) .' ]'; } else { ?> title, ENT_QUOTES); ?> <?php echo $alt; ?> <?php echo ( $row->frontpage ) ? JText::_( 'Yes' ) : JText::_( 'No' );?> orderUpIcon( $i, ($row->catid == @$rows[$i-1]->catid), 'orderup', 'Move Up', $ordering); ?> orderDownIcon( $i, $n, ($row->catid == @$rows[$i+1]->catid), 'orderdown', 'Move Down', $ordering ); ?> class="text_area" style="text-align: center" /> section_name; ?> name; ?> created, JText::_('DATE_FORMAT_LC4') ); ?> hits ?> id; ?>
    :
    cat_link = JRoute::_( 'index.php?option=com_categories&task=edit&cid[]='. $row->catid ); $row->sec_link = JRoute::_( 'index.php?option=com_sections&task=edit&cid[]='. $row->sectionid ); if ( $user->authorize( 'com_users', 'manage' ) ) { if ( $row->created_by_alias ) { $author = $row->created_by_alias; } else { $linkA = JRoute::_( 'index.php?option=com_users&task=edit&cid[]='. $row->created_by ); $author = ''. $row->author .''; } } else { if ( $row->created_by_alias ) { $author = $row->created_by_alias; } else { $author = $row->author; } } ?> ">
    getListFooter(); ?>
    getRowOffset( $i ); ?> id ); ?> title; ?> id; ?> sectname; ?> name; ?> created, JText::_( 'DATE_FORMAT_LC4' ) ); ?>
    $row is passed with the id * property set to 0. * @param JTableContent The category object * @param string The html for the groups select list */ function editContent( &$row, $section, &$lists, &$sectioncategories, $option, &$form ) { JRequest::setVar( 'hidemainmenu', 1 ); jimport('joomla.html.pane'); JFilterOutput::objectHTMLSafe( $row ); $db = &JFactory::getDBO(); $editor = &JFactory::getEditor(); // TODO: allowAllClose should default true in J!1.6, so remove the array when it does. $pane = &JPane::getInstance('sliders', array('allowAllClose' => true)); JHTML::_('behavior.tooltip'); ?>
    display( 'text', $row->text , '100%', '550', '75', '20' ) ; ?>
    startPane("content-pane"); echo $pane->startPanel( $title, "detail-page" ); echo $form->render('details'); $title = JText::_( 'Parameters - Advanced' ); echo $pane->endPanel(); echo $pane->startPanel( $title, "params-page" ); echo $form->render('params', 'advanced'); $title = JText::_( 'Metadata Information' ); echo $pane->endPanel(); echo $pane->startPanel( $title, "metadata-page" ); echo $form->render('meta', 'metadata'); echo $pane->endPanel(); echo $pane->endPane(); ?>
    :


    :
    "; foreach ( $items as $item ) { echo "
  • ". $item->title ."
  • "; } echo ""; ?>


    "; } ?>
    :


    :
    "; foreach ( $items as $item ) { echo "
  • ". $item->title ."
  • "; } echo ""; ?>


    "; } ?>
    setLink(JURI::root()); JHTML::_('behavior.caption'); ?>
    getNullDate(); // used to hide "Reset Hits" when hits = 0 if ( !$row->hits ) { $visibility = 'style="display: none; visibility: hidden;"'; } else { $visibility = ''; } ?> id ) { ?>
    : id; ?>
    state > 0 ? JText::_( 'Published' ) : ($row->state < 0 ? JText::_( 'Archived' ) : JText::_( 'Draft Unpublished' ) );?>
    hits;?> >
    version;?>
    created == $nullDate ) { echo JText::_( 'New document' ); } else { echo JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC2') ); } ?>
    modified == $nullDate ) { echo JText::_( 'Not modified' ); } else { echo JHTML::_('date', $row->modified, JText::_('DATE_FORMAT_LC2')); } ?>
    execute( $task ); $controller->redirect(); break; case 'add' : case 'new' : ContentController::editContent(false); break; case 'edit' : ContentController::editContent(true); break; case 'go2menu' : case 'go2menuitem' : case 'resethits' : case 'menulink' : case 'apply' : case 'save' : ContentController::saveContent(); break; case 'remove' : ContentController::removeContent(); break; case 'publish' : ContentController::changeContent(1); break; case 'unpublish' : ContentController::changeContent(0); break; case 'toggle_frontpage' : ContentController::toggleFrontPage(); break; case 'archive' : ContentController::changeContent(-1); break; case 'unarchive' : ContentController::changeContent(0); break; case 'cancel' : ContentController::cancelContent(); break; case 'orderup' : ContentController::orderContent(-1); break; case 'orderdown' : ContentController::orderContent(1); break; //case 'showarchive' : // JContentController::viewArchive(); // break; case 'movesect' : ContentController::moveSection(); break; case 'movesectsave' : ContentController::moveSectionSave(); break; case 'copy' : ContentController::copyItem(); break; case 'copysave' : ContentController::copyItemSave(); break; case 'accesspublic' : ContentController::accessMenu(0); break; case 'accessregistered' : ContentController::accessMenu(1); break; case 'accessspecial' : ContentController::accessMenu(2); break; case 'saveorder' : ContentController::saveOrder(); break; case 'preview' : ContentController::previewContent(); break; case 'ins_pagebreak' : ContentController::insertPagebreak(); break; default : ContentController::viewContent(); break; }elracodelangela/administrator/components/com_content/index.html0000755000176700017710000000005411061563422025775 0ustar essawireessawireelracodelangela/administrator/components/com_content/elements/0000755000176700017710000000000011061563562025617 5ustar essawireessawireelracodelangela/administrator/components/com_content/elements/author.php0000755000176700017710000000200411061563422027624 0ustar essawireessawireelracodelangela/administrator/components/com_content/elements/article.php0000755000176700017710000000432611061563422027756 0ustar essawireessawiregetTemplate(); $fieldName = $control_name.'['.$name.']'; $article =& JTable::getInstance('content'); if ($value) { $article->load($value); } else { $article->title = JText::_('Select an Article'); } $js = " function jSelectArticle(id, title, object) { document.getElementById(object + '_id').value = id; document.getElementById(object + '_name').value = title; document.getElementById('sbox-window').close(); }"; $doc->addScriptDeclaration($js); $link = 'index.php?option=com_content&task=element&tmpl=component&object='.$name; JHTML::_('behavior.modal', 'a.modal'); $html = "\n".'
    '; // $html .= "\n   "; $html .= ''."\n"; $html .= "\n".''; return $html; } } elracodelangela/administrator/components/com_content/views/0000755000176700017710000000000011061563562025140 5ustar essawireessawireelracodelangela/administrator/components/com_content/views/element/0000755000176700017710000000000011061563562026571 5ustar essawireessawireelracodelangela/administrator/components/com_content/views/element/index.html0000755000176700017710000000005411061563422030563 0ustar essawireessawireelracodelangela/administrator/components/com_content/views/element/view.php0000755000176700017710000001556111061563422030262 0ustar essawireessawiregetNullDate(); $document = & JFactory::getDocument(); $document->setTitle('Article Selection'); JHTML::_('behavior.modal'); $template = $mainframe->getTemplate(); $document->addStyleSheet("templates/$template/css/general.css"); $limitstart = JRequest::getVar('limitstart', '0', '', 'int'); $lists = $this->_getLists(); //Ordering allowed ? $ordering = ($lists['order'] == 'section_name' && $lists['order_Dir'] == 'ASC'); $rows = &$this->get('List'); $page = &$this->get('Pagination'); JHTML::_('behavior.tooltip'); ?>
    :
    created, JText::_('DATE_FORMAT_LC4') ); $access = JHTML::_('grid.access', $row, $i, $row->state ); ?> ">
    getListFooter(); ?>
    getRowOffset( $i ); ?> title); ?>', '');"> title, ENT_QUOTES, 'UTF-8'); ?> groupname;?> id; ?> section_name; ?> cctitle; ?>
    getUserStateFromRequest('articleelement.filter_order', 'filter_order', '', 'cmd'); $filter_order_Dir = $mainframe->getUserStateFromRequest('articleelement.filter_order_Dir', 'filter_order_Dir', '', 'word'); $filter_state = $mainframe->getUserStateFromRequest('articleelement.filter_state', 'filter_state', '', 'word'); $catid = $mainframe->getUserStateFromRequest('articleelement.catid', 'catid', 0, 'int'); $filter_authorid = $mainframe->getUserStateFromRequest('articleelement.filter_authorid', 'filter_authorid', 0, 'int'); $filter_sectionid = $mainframe->getUserStateFromRequest('articleelement.filter_sectionid', 'filter_sectionid', -1, 'int'); $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest('articleelement.limitstart', 'limitstart', 0, 'int'); $search = $mainframe->getUserStateFromRequest('articleelement.search', 'search', '', 'string'); $search = JString::strtolower($search); // get list of categories for dropdown filter $filter = ($filter_sectionid >= 0) ? ' WHERE cc.section = '.$db->Quote($filter_sectionid) : ''; // get list of categories for dropdown filter $query = 'SELECT cc.id AS value, cc.title AS text, section' . ' FROM #__categories AS cc' . ' INNER JOIN #__sections AS s ON s.id = cc.section' . $filter . ' ORDER BY s.ordering, cc.ordering'; $lists['catid'] = ContentHelper::filterCategory($query, $catid); // get list of sections for dropdown filter $javascript = 'onchange="document.adminForm.submit();"'; $lists['sectionid'] = JHTML::_('list.section', 'filter_sectionid', $filter_sectionid, $javascript); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search'] = $search; return $lists; } } elracodelangela/administrator/components/com_content/views/index.html0000755000176700017710000000005411061563422027132 0ustar essawireessawireelracodelangela/administrator/components/com_content/toolbar.content.html.php0000755000176700017710000000517211061563422030575 0ustar essawireessawire[ '. $text.' ]', 'addedit.png' ); JToolBarHelper::preview( 'index.php?option=com_content&id='.$cid.'&tmpl=component', true ); JToolBarHelper::save(); JToolBarHelper::apply(); if ( $edit ) { // for existing articles the button is renamed `close` JToolBarHelper::cancel( 'cancel', 'Close' ); } else { JToolBarHelper::cancel(); } JToolBarHelper::help( 'screen.content.edit' ); } /* function _ARCHIVE() { JToolBarHelper::title( JText::_( 'Archive Manager' ), 'addedit.png' ); JToolBarHelper::unarchiveList(); JToolBarHelper::custom( 'remove', 'delete.png', 'delete_f2.png', 'Trash', false ); JToolBarHelper::help( 'screen.content.archive' ); } */ function _MOVE() { JToolBarHelper::title( JText::_( 'Move Articles' ), 'move_f2.png' ); JToolBarHelper::custom( 'movesectsave', 'save.png', 'save_f2.png', 'Save', false ); JToolBarHelper::cancel(); } function _COPY() { JToolBarHelper::title( JText::_( 'Copy Articles' ), 'copy_f2.png' ); JToolBarHelper::custom( 'copysave', 'save.png', 'save_f2.png', 'Save', false ); JToolBarHelper::cancel(); } function _DEFAULT() { global $filter_state; JToolBarHelper::title( JText::_( 'Article Manager' ), 'addedit.png' ); if ($filter_state == 'A' || $filter_state == NULL) { JToolBarHelper::unarchiveList(); } if ($filter_state != 'A') { JToolBarHelper::archiveList(); } JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::customX( 'movesect', 'move.png', 'move_f2.png', 'Move' ); JToolBarHelper::customX( 'copy', 'copy.png', 'copy_f2.png', 'Copy' ); JToolBarHelper::trash(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); JToolBarHelper::preferences('com_content', '550'); JToolBarHelper::help( 'screen.content' ); } }elracodelangela/administrator/components/com_content/helper/0000755000176700017710000000000011061563562025262 5ustar essawireessawireelracodelangela/administrator/components/com_content/helper/index.html0000755000176700017710000000005411061563422027254 0ustar essawireessawireelracodelangela/administrator/components/com_content/helper/content.php0000755000176700017710000000417411061563422027451 0ustar essawireessawire
    <?php echo JText::_( 'Pending' ); ?> | <?php echo JText::_( 'Visible' ); ?> | <?php echo JText::_( 'Finished' ); ?> | <?php echo JText::_( 'Finished' ); ?> | <?php echo JText::_( 'Archived' ); ?>
    getModel( 'element' ); $view = &$this->getView( 'element'); $view->setModel( $model, true ); $view->display(); } /** * Compiles a list of installed or defined modules * @param database A database connector object */ function viewContent() { global $mainframe; // Initialize variables $db =& JFactory::getDBO(); $filter = null; // Get some variables from the request $sectionid = JRequest::getVar( 'sectionid', -1, '', 'int' ); $redirect = $sectionid; $option = JRequest::getCmd( 'option' ); $context = 'com_content.viewcontent'; $filter_order = $mainframe->getUserStateFromRequest( $context.'filter_order', 'filter_order', '', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $context.'filter_order_Dir', 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( $context.'filter_state', 'filter_state', '', 'word' ); $catid = $mainframe->getUserStateFromRequest( $context.'catid', 'catid', 0, 'int' ); $filter_authorid = $mainframe->getUserStateFromRequest( $context.'filter_authorid', 'filter_authorid', 0, 'int' ); $filter_sectionid = $mainframe->getUserStateFromRequest( $context.'filter_sectionid', 'filter_sectionid', -1, 'int' ); $search = $mainframe->getUserStateFromRequest( $context.'search', 'search', '', 'string' ); $search = JString::strtolower($search); $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest($context.'limitstart', 'limitstart', 0, 'int'); // In case limit has been changed, adjust limitstart accordingly $limitstart = ( $limit != 0 ? (floor($limitstart / $limit) * $limit) : 0 ); //$where[] = "c.state >= 0"; $where[] = 'c.state != -2'; if (!$filter_order) { $filter_order = 'section_name'; } $order = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', section_name, cc.title, c.ordering'; $all = 1; if ($filter_sectionid >= 0) { $filter = ' WHERE cc.section = '. (int) $filter_sectionid; } $section->title = 'All Articles'; $section->id = 0; /* * Add the filter specific information to the where clause */ // Section filter if ($filter_sectionid >= 0) { $where[] = 'c.sectionid = ' . (int) $filter_sectionid; } // Category filter if ($catid > 0) { $where[] = 'c.catid = ' . (int) $catid; } // Author filter if ($filter_authorid > 0) { $where[] = 'c.created_by = ' . (int) $filter_authorid; } // Content state filter if ($filter_state) { if ($filter_state == 'P') { $where[] = 'c.state = 1'; } else { if ($filter_state == 'U') { $where[] = 'c.state = 0'; } else if ($filter_state == 'A') { $where[] = 'c.state = -1'; } else { $where[] = 'c.state != -2'; } } } // Keyword filter if ($search) { $where[] = '(LOWER( c.title ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ) . ' OR c.id = ' . (int) $search . ')'; } // Build the where clause of the content record query $where = (count($where) ? ' WHERE '.implode(' AND ', $where) : ''); // Get the total number of records $query = 'SELECT COUNT(*)' . ' FROM #__content AS c' . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = c.sectionid' . $where; $db->setQuery($query); $total = $db->loadResult(); // Create the pagination object jimport('joomla.html.pagination'); $pagination = new JPagination($total, $limitstart, $limit); // Get the articles $query = 'SELECT c.*, g.name AS groupname, cc.title AS name, u.name AS editor, f.content_id AS frontpage, s.title AS section_name, v.name AS author' . ' FROM #__content AS c' . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = c.sectionid' . ' LEFT JOIN #__groups AS g ON g.id = c.access' . ' LEFT JOIN #__users AS u ON u.id = c.checked_out' . ' LEFT JOIN #__users AS v ON v.id = c.created_by' . ' LEFT JOIN #__content_frontpage AS f ON f.content_id = c.id' . $where . $order; $db->setQuery($query, $pagination->limitstart, $pagination->limit); $rows = $db->loadObjectList(); // If there is a database query error, throw a HTTP 500 and exit if ($db->getErrorNum()) { JError::raiseError( 500, $db->stderr() ); return false; } // get list of categories for dropdown filter $query = 'SELECT cc.id AS value, cc.title AS text, section' . ' FROM #__categories AS cc' . ' INNER JOIN #__sections AS s ON s.id = cc.section ' . $filter . ' ORDER BY s.ordering, cc.ordering'; $lists['catid'] = ContentHelper::filterCategory($query, $catid); // get list of sections for dropdown filter $javascript = 'onchange="document.adminForm.submit();"'; $lists['sectionid'] = JHTML::_('list.section', 'filter_sectionid', $filter_sectionid, $javascript); // get list of Authors for dropdown filter $query = 'SELECT c.created_by, u.name' . ' FROM #__content AS c' . ' INNER JOIN #__sections AS s ON s.id = c.sectionid' . ' LEFT JOIN #__users AS u ON u.id = c.created_by' . ' WHERE c.state <> -1' . ' AND c.state <> -2' . ' GROUP BY u.name' . ' ORDER BY u.name'; $authors[] = JHTML::_('select.option', '0', '- '.JText::_('Select Author').' -', 'created_by', 'name'); $db->setQuery($query); $authors = array_merge($authors, $db->loadObjectList()); $lists['authorid'] = JHTML::_('select.genericlist', $authors, 'filter_authorid', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'created_by', 'name', $filter_authorid); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state, 'Published', 'Unpublished', 'Archived'); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search'] = $search; ContentView::showContent($rows, $lists, $pagination, $redirect); } /** * Shows a list of archived articles * @param int The section id */ function viewArchive() { global $mainframe; // Initialize variables $db =& JFactory::getDBO(); $sectionid = JRequest::getVar( 'sectionid', 0, '', 'int' ); $option = JRequest::getCmd( 'option' ); $filter_order = $mainframe->getUserStateFromRequest("$option.$sectionid.viewarchive.filter_order", 'filter_order', 'sectname', 'cmd'); $filter_order_Dir = $mainframe->getUserStateFromRequest("$option.$sectionid.viewarchive.filter_order_Dir", 'filter_order_Dir', '', 'word'); $catid = $mainframe->getUserStateFromRequest("$option.$sectionid.viewarchive.catid", 'catid', 0, 'int'); $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest("$option.$sectionid.viewarchive.limitstart", 'limitstart', 0, 'int'); $filter_authorid = $mainframe->getUserStateFromRequest("$option.$sectionid.viewarchive.filter_authorid", 'filter_authorid', 0, 'int'); $filter_sectionid = $mainframe->getUserStateFromRequest("$option.$sectionid.viewarchive.filter_sectionid", 'filter_sectionid', 0, 'int'); $search = $mainframe->getUserStateFromRequest("$option.$sectionid.viewarchive.search", 'search', '', 'string'); $search = JString::strtolower($search); $redirect = $sectionid; // A section id of zero means view all articles [all sections] if ($sectionid == 0) { $where = array ('c.state = -1', 'c.catid = cc.id', 'cc.section = s.id', 's.scope = "content"'); $filter = ' , #__sections AS s WHERE s.id = c.section'; $all = 1; } else { //We are viewing a specific section $where = array ('c.state = -1', 'c.catid = cc.id', 'cc.section = s.id', 's.scope = "content"', 'c.sectionid= '.(int) $sectionid); $filter = ' WHERE section = '.$db->Quote($sectionid); $all = NULL; } // Section filter if ($filter_sectionid > 0) { $where[] = 'c.sectionid = ' . (int) $filter_sectionid; } // Author filter if ($filter_authorid > 0) { $where[] = 'c.created_by = ' . (int) $filter_authorid; } // Category filter if ($catid > 0) { $where[] = 'c.catid = ' . (int) $catid; } // Keyword filter if ($search) { $where[] = 'LOWER( c.title ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } // TODO: Sanitise $filter_order $filter_order_Dir = ($filter_order_Dir == 'ASC' ? 'ASC' : 'DESC'); $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', sectname, cc.name, c.ordering'; $where = (count($where) ? ' WHERE '.implode(' AND ', $where) : ''); // get the total number of records $query = 'SELECT COUNT(*)' . ' FROM #__content AS c' . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = c.sectionid' . $where; $db->setQuery($query); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pagination = new JPagination($total, $limitstart, $limit); $query = 'SELECT c.*, g.name AS groupname, cc.name, v.name AS author, s.title AS sectname' . ' FROM #__content AS c' . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = c.sectionid' . ' LEFT JOIN #__groups AS g ON g.id = c.access' . ' LEFT JOIN #__users AS v ON v.id = c.created_by' . $where . $orderby; $db->setQuery($query, $pagination->limitstart, $pagination->limit); $rows = $db->loadObjectList(); // If there is a database query error, throw a HTTP 500 and exit if ($db->getErrorNum()) { JError::raiseError( 500, $db->stderr() ); return false; } // get list of categories for dropdown filter $query = 'SELECT c.id AS value, c.title AS text' . ' FROM #__categories AS c' . $filter . ' ORDER BY c.ordering'; $lists['catid'] = ContentHelper::filterCategory($query, $catid); // get list of sections for dropdown filter $javascript = 'onchange="document.adminForm.submit();"'; $lists['sectionid'] = JAdminMenus::SelectSection('filter_sectionid', $filter_sectionid, $javascript); $section = & JTable::getInstance('section'); $section->load($sectionid); // get list of Authors for dropdown filter $query = 'SELECT c.created_by, u.name' . ' FROM #__content AS c' . ' INNER JOIN #__sections AS s ON s.id = c.sectionid' . ' LEFT JOIN #__users AS u ON u.id = c.created_by' . ' WHERE c.state = -1' . ' GROUP BY u.name' . ' ORDER BY u.name'; $db->setQuery($query); $authors[] = JHTML::_('select.option', '0', '- '.JText::_('Select Author').' -', 'created_by', 'name'); $authors = array_merge($authors, $db->loadObjectList()); $lists['authorid'] = JHTML::_('select.genericlist', $authors, 'filter_authorid', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'created_by', 'name', $filter_authorid); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search'] = $search; ContentView::showArchive($rows, $section, $lists, $pagination, $option, $all, $redirect); } /** * Compiles information to add or edit the record * * @param database A database connector object * @param integer The unique id of the record to edit (0 if new) * @param integer The id of the content section */ function editContent($edit) { global $mainframe; // Initialize variables $db = & JFactory::getDBO(); $user = & JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(0), '', 'array' ); JArrayHelper::toInteger($cid, array(0)); $id = JRequest::getVar( 'id', $cid[0], '', 'int' ); $option = JRequest::getCmd( 'option' ); $nullDate = $db->getNullDate(); $contentSection = ''; $sectionid = 0; // Create and load the content table row $row = & JTable::getInstance('content'); if($edit) $row->load($id); if ($id) { $sectionid = $row->sectionid; if ($row->state < 0) { $mainframe->redirect('index.php?option=com_content', JText::_('You cannot edit an archived item')); } } // A sectionid of zero means grab from all sections if ($sectionid == 0) { $where = ' WHERE section NOT LIKE "%com_%"'; } else { // Grab from the specific section $where = ' WHERE section = '. $db->Quote( $sectionid ); } /* * If the item is checked out we cannot edit it... unless it was checked * out by the current user. */ if ( JTable::isCheckedOut($user->get ('id'), $row->checked_out )) { $msg = JText::sprintf('DESCBEINGEDITTED', JText::_('The item'), $row->title); $mainframe->redirect('index.php?option=com_content', $msg); } if ($id) { $row->checkout($user->get('id')); if (trim($row->images)) { $row->images = explode("\n", $row->images); } else { $row->images = array (); } $query = 'SELECT name' . ' FROM #__users'. ' WHERE id = '. (int) $row->created_by; $db->setQuery($query); $row->creator = $db->loadResult(); // test to reduce unneeded query if ($row->created_by == $row->modified_by) { $row->modifier = $row->creator; } else { $query = 'SELECT name' . ' FROM #__users' . ' WHERE id = '. (int) $row->modified_by; $db->setQuery($query); $row->modifier = $db->loadResult(); } $query = 'SELECT COUNT(content_id)' . ' FROM #__content_frontpage' . ' WHERE content_id = '. (int) $row->id; $db->setQuery($query); $row->frontpage = $db->loadResult(); if (!$row->frontpage) { $row->frontpage = 0; } } else { if (!$sectionid && JRequest::getInt('filter_sectionid')) { $sectionid =JRequest::getInt('filter_sectionid'); } if (JRequest::getInt('catid')) { $row->catid = JRequest::getInt('catid'); $category = & JTable::getInstance('category'); $category->load($row->catid); $sectionid = $category->section; } else { $row->catid = NULL; } $createdate =& JFactory::getDate(); $row->sectionid = $sectionid; $row->version = 0; $row->state = 1; $row->ordering = 0; $row->images = array (); $row->publish_up = $createdate->toUnix(); $row->publish_down = JText::_('Never'); $row->creator = ''; $row->created = $createdate->toUnix(); $row->modified = $nullDate; $row->modifier = ''; $row->frontpage = 0; } $javascript = "onchange=\"changeDynaList( 'catid', sectioncategories, document.adminForm.sectionid.options[document.adminForm.sectionid.selectedIndex].value, 0, 0);\""; $query = 'SELECT s.id, s.title' . ' FROM #__sections AS s' . ' ORDER BY s.ordering'; $db->setQuery($query); $sections[] = JHTML::_('select.option', '-1', '- '.JText::_('Select Section').' -', 'id', 'title'); $sections[] = JHTML::_('select.option', '0', JText::_('Uncategorized'), 'id', 'title'); $sections = array_merge($sections, $db->loadObjectList()); $lists['sectionid'] = JHTML::_('select.genericlist', $sections, 'sectionid', 'class="inputbox" size="1" '.$javascript, 'id', 'title', intval($row->sectionid)); foreach ($sections as $section) { $section_list[] = (int) $section->id; // get the type name - which is a special category if ($row->sectionid) { if ($section->id == $row->sectionid) { $contentSection = $section->title; } } else { if ($section->id == $sectionid) { $contentSection = $section->title; } } } $sectioncategories = array (); $sectioncategories[-1] = array (); $sectioncategories[-1][] = JHTML::_('select.option', '-1', JText::_( 'Select Category' ), 'id', 'title'); $section_list = implode('\', \'', $section_list); $query = 'SELECT id, title, section' . ' FROM #__categories' . ' WHERE section IN ( \''.$section_list.'\' )' . ' ORDER BY ordering'; $db->setQuery($query); $cat_list = $db->loadObjectList(); // Uncategorized category mapped to uncategorized section $uncat = new stdClass(); $uncat->id = 0; $uncat->title = JText::_('Uncategorized'); $uncat->section = 0; $cat_list[] = $uncat; foreach ($sections as $section) { $sectioncategories[$section->id] = array (); $rows2 = array (); foreach ($cat_list as $cat) { if ($cat->section == $section->id) { $rows2[] = $cat; } } foreach ($rows2 as $row2) { $sectioncategories[$section->id][] = JHTML::_('select.option', $row2->id, $row2->title, 'id', 'title'); } } $sectioncategories['-1'][] = JHTML::_('select.option', '-1', JText::_( 'Select Category' ), 'id', 'title'); $categories = array(); foreach ($cat_list as $cat) { if($cat->section == $row->sectionid) $categories[] = $cat; } $categories[] = JHTML::_('select.option', '-1', JText::_( 'Select Category' ), 'id', 'title'); $lists['catid'] = JHTML::_('select.genericlist', $categories, 'catid', 'class="inputbox" size="1"', 'id', 'title', intval($row->catid)); // build the html select list for ordering $query = 'SELECT ordering AS value, title AS text' . ' FROM #__content' . ' WHERE catid = ' . (int) $row->catid . ' AND state >= 0' . ' ORDER BY ordering'; if($edit) $lists['ordering'] = JHTML::_('list.specificordering', $row, $id, $query, 1); else $lists['ordering'] = JHTML::_('list.specificordering', $row, '', $query, 1); // build the html radio buttons for frontpage $lists['frontpage'] = JHTML::_('select.booleanlist', 'frontpage', '', $row->frontpage); // build the html radio buttons for published $lists['state'] = JHTML::_('select.booleanlist', 'state', '', $row->state); /* * We need to unify the introtext and fulltext fields and have the * fields separated by the {readmore} tag, so lets do that now. */ if (JString::strlen($row->fulltext) > 1) { $row->text = $row->introtext . "
    " . $row->fulltext; } else { $row->text = $row->introtext; } // Create the form $form = new JParameter('', JPATH_COMPONENT.DS.'models'.DS.'article.xml'); // Details Group $active = (intval($row->created_by) ? intval($row->created_by) : $user->get('id')); $form->set('created_by', $active); $form->set('access', $row->access); $form->set('created_by_alias', $row->created_by_alias); $form->set('created', JHTML::_('date', $row->created, '%Y-%m-%d %H:%M:%S')); $form->set('publish_up', JHTML::_('date', $row->publish_up, '%Y-%m-%d %H:%M:%S')); if (JHTML::_('date', $row->publish_down, '%Y') <= 1969 || $row->publish_down == $db->getNullDate()) { $form->set('publish_down', JText::_('Never')); } else { $form->set('publish_down', JHTML::_('date', $row->publish_down, '%Y-%m-%d %H:%M:%S')); } // Advanced Group $form->loadINI($row->attribs); // Metadata Group $form->set('description', $row->metadesc); $form->set('keywords', $row->metakey); $form->loadINI($row->metadata); ContentView::editContent($row, $contentSection, $lists, $sectioncategories, $option, $form); } /** * Saves the article an edit form submit * @param database A database connector object */ function saveContent() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $user = & JFactory::getUser(); $dispatcher = & JDispatcher::getInstance(); JPluginHelper::importPlugin('content'); $details = JRequest::getVar( 'details', array(), 'post', 'array'); $option = JRequest::getCmd( 'option' ); $task = JRequest::getCmd( 'task' ); $sectionid = JRequest::getVar( 'sectionid', 0, '', 'int' ); $redirect = JRequest::getVar( 'redirect', $sectionid, 'post', 'int' ); $menu = JRequest::getVar( 'menu', 'mainmenu', 'post', 'cmd' ); $menuid = JRequest::getVar( 'menuid', 0, 'post', 'int' ); $nullDate = $db->getNullDate(); $row = & JTable::getInstance('content'); if (!$row->bind(JRequest::get('post'))) { JError::raiseError( 500, $db->stderr() ); return false; } $row->bind($details); // sanitise id field $row->id = (int) $row->id; $isNew = true; // Are we saving from an item edit? if ($row->id) { $isNew = false; $datenow =& JFactory::getDate(); $row->modified = $datenow->toMySQL(); $row->modified_by = $user->get('id'); } $row->created_by = $row->created_by ? $row->created_by : $user->get('id'); if ($row->created && strlen(trim( $row->created )) <= 10) { $row->created .= ' 00:00:00'; } $config =& JFactory::getConfig(); $tzoffset = $config->getValue('config.offset'); $date =& JFactory::getDate($row->created, $tzoffset); $row->created = $date->toMySQL(); // Append time if not added to publish date if (strlen(trim($row->publish_up)) <= 10) { $row->publish_up .= ' 00:00:00'; } $date =& JFactory::getDate($row->publish_up, $tzoffset); $row->publish_up = $date->toMySQL(); // Handle never unpublish date if (trim($row->publish_down) == JText::_('Never') || trim( $row->publish_down ) == '') { $row->publish_down = $nullDate; } else { if (strlen(trim( $row->publish_down )) <= 10) { $row->publish_down .= ' 00:00:00'; } $date =& JFactory::getDate($row->publish_down, $tzoffset); $row->publish_down = $date->toMySQL(); } // Get a state and parameter variables from the request $row->state = JRequest::getVar( 'state', 0, '', 'int' ); $params = JRequest::getVar( 'params', null, 'post', 'array' ); // Build parameter INI string if (is_array($params)) { $txt = array (); foreach ($params as $k => $v) { $txt[] = "$k=$v"; } $row->attribs = implode("\n", $txt); } // Get metadata string $metadata = JRequest::getVar( 'meta', null, 'post', 'array'); if (is_array($metadata)) { $txt = array(); foreach ($metadata as $k => $v) { if ($k == 'description') { $row->metadesc = $v; } elseif ($k == 'keywords') { $row->metakey = $v; } else { $txt[] = "$k=$v"; } } $row->metadata = implode("\n", $txt); } // Prepare the content for saving to the database ContentHelper::saveContentPrep( $row ); // Make sure the data is valid if (!$row->check()) { JError::raiseError( 500, $db->stderr() ); return false; } // Increment the content version number $row->version++; $result = $dispatcher->trigger('onBeforeContentSave', array(&$row, $isNew)); if(in_array(false, $result, true)) { JError::raiseError(500, $row->getError()); return false; } // Store the content to the database if (!$row->store()) { JError::raiseError( 500, $db->stderr() ); return false; } // Check the article and update item order $row->checkin(); $row->reorder('catid = '.(int) $row->catid.' AND state >= 0'); /* * We need to update frontpage status for the article. * * First we include the frontpage table and instantiate an instance of it. */ require_once (JPATH_ADMINISTRATOR.DS.'components'.DS.'com_frontpage'.DS.'tables'.DS.'frontpage.php'); $fp = new TableFrontPage($db); // Is the article viewable on the frontpage? if (JRequest::getVar( 'frontpage', 0, '', 'int' )) { // Is the item already viewable on the frontpage? if (!$fp->load($row->id)) { // Insert the new entry $query = 'INSERT INTO #__content_frontpage' . ' VALUES ( '. (int) $row->id .', 1 )'; $db->setQuery($query); if (!$db->query()) { JError::raiseError( 500, $db->stderr() ); return false; } $fp->ordering = 1; } } else { // Delete the item from frontpage if it exists if (!$fp->delete($row->id)) { $msg .= $fp->stderr(); } $fp->ordering = 0; } $fp->reorder(); $cache = & JFactory::getCache('com_content'); $cache->clean(); $dispatcher->trigger('onAfterContentSave', array(&$row, $isNew)); switch ($task) { case 'go2menu' : $mainframe->redirect('index.php?option=com_menus&menutype='.$menu); break; case 'go2menuitem' : $mainframe->redirect('index.php?option=com_menus&menutype='.$menu.'&task=edit&id='.$menuid); break; case 'menulink' : ContentHelper::menuLink($redirect, $row->id); break; case 'resethits' : ContentHelper::resetHits($redirect, $row->id); break; case 'apply' : $msg = JText::sprintf('SUCCESSFULLY SAVED CHANGES TO ARTICLE', $row->title); $mainframe->redirect('index.php?option=com_content§ionid='.$redirect.'&task=edit&cid[]='.$row->id, $msg); break; case 'save' : default : $msg = JText::sprintf('Successfully Saved Article', $row->title); $mainframe->redirect('index.php?option=com_content§ionid='.$redirect, $msg); break; } } /** * Changes the state of one or more content pages * * @param string The name of the category section * @param integer A unique category id (passed from an edit form) * @param array An array of unique category id numbers * @param integer 0 if unpublishing, 1 if publishing * @param string The name of the current user */ function changeContent( $state = 0 ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $user = & JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $option = JRequest::getCmd( 'option' ); $task = JRequest::getCmd( 'task' ); $rtask = JRequest::getCmd( 'returntask', '', 'post' ); if ($rtask) { $rtask = '&task='.$rtask; } if (count($cid) < 1) { $redirect = JRequest::getVar( 'redirect', '', 'post', 'int' ); $action = ($state == 1) ? 'publish' : ($state == -1 ? 'archive' : 'unpublish'); $msg = JText::_('Select an item to') . ' ' . JText::_($action); $mainframe->redirect('index.php?option='.$option.$rtask.'§ionid='.$redirect, $msg, 'error'); } // Get some variables for the query $uid = $user->get('id'); $total = count($cid); $cids = implode(',', $cid); $query = 'UPDATE #__content' . ' SET state = '. (int) $state . ' WHERE id IN ( '. $cids .' ) AND ( checked_out = 0 OR (checked_out = '. (int) $uid .' ) )'; $db->setQuery($query); if (!$db->query()) { JError::raiseError( 500, $db->getErrorMsg() ); return false; } if (count($cid) == 1) { $row = & JTable::getInstance('content'); $row->checkin($cid[0]); } switch ($state) { case -1 : $msg = JText::sprintf('Item(s) successfully Archived', $total); break; case 1 : $msg = JText::sprintf('Item(s) successfully Published', $total); break; case 0 : default : if ($task == 'unarchive') { $msg = JText::sprintf('Item(s) successfully Unarchived', $total); } else { $msg = JText::sprintf('Item(s) successfully Unpublished', $total); } break; } $cache = & JFactory::getCache('com_content'); $cache->clean(); // Get some return/redirect information from the request $redirect = JRequest::getVar( 'redirect', $row->sectionid, 'post', 'int' ); $mainframe->redirect('index.php?option='.$option.$rtask.'§ionid='.$redirect, $msg); } /** * Changes the frontpage state of one or more articles * */ function toggleFrontPage() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $option = JRequest::getCmd( 'option' ); $msg = null; JArrayHelper::toInteger($cid); if (count($cid) < 1) { $msg = JText::_('Select an item to toggle'); $mainframe->redirect('index.php?option='.$option, $msg, 'error'); } /* * We need to update frontpage status for the articles. * * First we include the frontpage table and instantiate an instance of * it. */ require_once (JPATH_ADMINISTRATOR.DS.'components'.DS.'com_frontpage'.DS.'tables'.DS.'frontpage.php'); $fp = new TableFrontPage($db); foreach ($cid as $id) { // toggles go to first place if ($fp->load($id)) { if (!$fp->delete($id)) { $msg .= $fp->stderr(); } $fp->ordering = 0; } else { // new entry $query = 'INSERT INTO #__content_frontpage' . ' VALUES ( '. (int) $id .', 0 )'; $db->setQuery($query); if (!$db->query()) { JError::raiseError( 500, $db->stderr() ); return false; } $fp->ordering = 0; } $fp->reorder(); } $cache = & JFactory::getCache('com_content'); $cache->clean(); $mainframe->redirect('index.php?option='.$option, $msg); } function removeContent() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $option = JRequest::getCmd( 'option' ); $return = JRequest::getCmd( 'returntask', '', 'post' ); $nullDate = $db->getNullDate(); JArrayHelper::toInteger($cid); if (count($cid) < 1) { $msg = JText::_('Select an item to delete'); $mainframe->redirect('index.php?option='.$option, $msg, 'error'); } // Removed content gets put in the trash [state = -2] and ordering is always set to 0 $state = '-2'; $ordering = '0'; // Get the list of content id numbers to send to trash. $cids = implode(',', $cid); // Update articles in the database $query = 'UPDATE #__content' . ' SET state = '.(int) $state . ', ordering = '.(int) $ordering . ', checked_out = 0, checked_out_time = '.$db->Quote($nullDate). ' WHERE id IN ( '. $cids. ' )'; $db->setQuery($query); if (!$db->query()) { JError::raiseError( 500, $db->getErrorMsg() ); return false; } $cache = & JFactory::getCache('com_content'); $cache->clean(); $msg = JText::sprintf('Item(s) sent to the Trash', count($cid)); $mainframe->redirect('index.php?option='.$option.'&task='.$return, $msg); } /** * Cancels an edit operation */ function cancelContent() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); // Check the article in if checked out $row = & JTable::getInstance('content'); $row->bind(JRequest::get('post')); $row->checkin(); $mainframe->redirect('index.php?option=com_content'); } /** * Moves the order of a record * @param integer The increment to reorder by */ function orderContent($direction) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); if (isset( $cid[0] )) { $row = & JTable::getInstance('content'); $row->load( (int) $cid[0] ); $row->move($direction, 'catid = ' . (int) $row->catid . ' AND state >= 0' ); $cache = & JFactory::getCache('com_content'); $cache->clean(); } $mainframe->redirect('index.php?option=com_content'); } /** * Form for moving item(s) to a different section and category */ function moveSection() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $sectionid = JRequest::getVar( 'sectionid', 0, '', 'int' ); JArrayHelper::toInteger($cid); if (count($cid) < 1) { $msg = JText::_('Select an item to move'); $mainframe->redirect('index.php?option=com_content', $msg, 'error'); } //seperate contentids $cids = implode(',', $cid); // Articles query $query = 'SELECT a.title' . ' FROM #__content AS a' . ' WHERE ( a.id IN ( '. $cids .' ) )' . ' ORDER BY a.title'; $db->setQuery($query); $items = $db->loadObjectList(); $query = 'SELECT CONCAT_WS( ", ", s.id, c.id ) AS `value`, CONCAT_WS( " / ", s.title, c.title ) AS `text`' . ' FROM #__sections AS s' . ' INNER JOIN #__categories AS c ON c.section = s.id' . ' WHERE s.scope = "content"' . ' ORDER BY s.title, c.title'; $db->setQuery($query); $rows[] = JHTML::_('select.option', "0, 0", JText::_('UNCATEGORIZED')); $rows = array_merge($rows, $db->loadObjectList()); // build the html select list $sectCatList = JHTML::_('select.genericlist', $rows, 'sectcat', 'class="inputbox" size="8"', 'value', 'text', null); ContentView::moveSection($cid, $sectCatList, 'com_content', $sectionid, $items); } /** * Save the changes to move item(s) to a different section and category */ function moveSectionSave() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $user = & JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $sectionid = JRequest::getVar( 'sectionid', 0, '', 'int' ); $option = JRequest::getCmd( 'option' ); JArrayHelper::toInteger($cid, array(0)); $sectcat = JRequest::getVar( 'sectcat', '', 'post', 'string' ); $sectcat = explode(',', $sectcat); $newsect = (int) @$sectcat[0]; $newcat = (int) @$sectcat[1]; if ((!$newsect || !$newcat) && ($sectcat !== array('0', ' 0'))) { $mainframe->redirect("index.php?option=com_content§ionid=$sectionid", JText::_('An error has occurred')); } // find section name $query = 'SELECT a.title' . ' FROM #__sections AS a' . ' WHERE a.id = '. (int) $newsect; $db->setQuery($query); $section = $db->loadResult(); // find category name $query = 'SELECT a.title' . ' FROM #__categories AS a' . ' WHERE a.id = '. (int) $newcat; $db->setQuery($query); $category = $db->loadResult(); $total = count($cid); $cids = implode(',', $cid); $uid = $user->get('id'); $row = & JTable::getInstance('content'); // update old orders - put existing items in last place foreach ($cid as $id) { $row->load(intval($id)); $row->ordering = 0; $row->store(); $row->reorder('catid = '.(int) $row->catid.' AND state >= 0'); } $query = 'UPDATE #__content SET sectionid = '.(int) $newsect.', catid = '.(int) $newcat. ' WHERE id IN ( '.$cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $uid.' ) )'; $db->setQuery($query); if (!$db->query()) { JError::raiseError( 500, $db->getErrorMsg() ); return false; } // update new orders - put items in last place foreach ($cid as $id) { $row->load(intval($id)); $row->ordering = 0; $row->store(); $row->reorder('catid = '.(int) $row->catid.' AND state >= 0'); } if ($section && $category) { $msg = JText::sprintf('Item(s) successfully moved to Section', $total, $section, $category); } else { $msg = JText::sprintf('ITEM(S) SUCCESSFULLY MOVED TO UNCATEGORIZED', $total); } $mainframe->redirect('index.php?option='.$option.'§ionid='.$sectionid, $msg); } /** * Form for copying item(s) **/ function copyItem() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $sectionid = JRequest::getVar( 'sectionid', 0, '', 'int' ); $option = JRequest::getCmd( 'option' ); JArrayHelper::toInteger($cid); if (count($cid) < 1) { $msg = JText::_('Select an item to move'); $mainframe->redirect('index.php?option='.$option, $msg, 'error'); } //seperate contentids $cids = implode(',', $cid); ## Articles query $query = 'SELECT a.title' . ' FROM #__content AS a' . ' WHERE ( a.id IN ( '. $cids .' ) )' . ' ORDER BY a.title'; $db->setQuery($query); $items = $db->loadObjectList(); ## Section & Category query $query = 'SELECT CONCAT_WS(",",s.id,c.id) AS `value`, CONCAT_WS(" / ", s.title, c.title) AS `text`' . ' FROM #__sections AS s' . ' INNER JOIN #__categories AS c ON c.section = s.id' . ' WHERE s.scope = "content"' . ' ORDER BY s.title, c.title'; $db->setQuery($query); // Add a row for uncategorized content $uncat = JHTML::_('select.option', '0,0', JText::_('UNCATEGORIZED')); $rows = $db->loadObjectList(); array_unshift($rows, $uncat); // build the html select list $sectCatList = JHTML::_('select.genericlist', $rows, 'sectcat', 'class="inputbox" size="10"', 'value', 'text', NULL); ContentView::copySection($option, $cid, $sectCatList, $sectionid, $items); } /** * saves Copies of items **/ function copyItemSave() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $sectionid = JRequest::getVar( 'sectionid', 0, '', 'int' ); $option = JRequest::getCmd( 'option' ); JArrayHelper::toInteger($cid); $item = null; $sectcat = JRequest::getVar( 'sectcat', '-1,-1', 'post', 'string' ); //seperate sections and categories from selection $sectcat = explode(',', $sectcat); $newsect = (int) @$sectcat[0]; $newcat = (int) @$sectcat[1]; if (($newsect == -1) || ($newcat == -1)) { $mainframe->redirect('index.php?option=com_content§ionid='.$sectionid, JText::_('An error has occurred')); } // find section name $query = 'SELECT a.title' . ' FROM #__sections AS a' . ' WHERE a.id = '. (int) $newsect; $db->setQuery($query); $section = $db->loadResult(); // find category name $query = 'SELECT a.title' . ' FROM #__categories AS a' . ' WHERE a.id = '. (int) $newcat; $db->setQuery($query); $category = $db->loadResult(); if (($newsect == 0) && ($newcat == 0)) { $section = JText::_('UNCATEGORIZED'); $category = JText::_('UNCATEGORIZED'); } $total = count($cid); for ($i = 0; $i < $total; $i ++) { $row = & JTable::getInstance('content'); // main query $query = 'SELECT a.*' . ' FROM #__content AS a' . ' WHERE a.id = '.(int) $cid[$i]; $db->setQuery($query, 0, 1); $item = $db->loadObject(); // values loaded into array set for store $row->id = NULL; $row->sectionid = $newsect; $row->catid = $newcat; $row->hits = '0'; $row->ordering = '0'; $row->title = $item->title; $row->alias = $item->alias; $row->title_alias = $item->title_alias; $row->introtext = $item->introtext; $row->fulltext = $item->fulltext; $row->state = $item->state; $row->mask = $item->mask; $row->created = $item->created; $row->created_by = $item->created_by; $row->created_by_alias = $item->created_by_alias; $row->modified = $item->modified; $row->modified_by = $item->modified_by; $row->checked_out = $item->checked_out; $row->checked_out_time = $item->checked_out_time; $row->publish_up = $item->publish_up; $row->publish_down = $item->publish_down; $row->images = $item->images; $row->attribs = $item->attribs; $row->version = $item->parentid; $row->parentid = $item->parentid; $row->metakey = $item->metakey; $row->metadesc = $item->metadesc; $row->access = $item->access; if (!$row->check()) { JError::raiseError( 500, $row->getError() ); return false; } if (!$row->store()) { JError::raiseError( 500, $row->getError() ); return false; } $row->reorder('catid='.(int) $row->catid.' AND state >= 0'); } $msg = JText::sprintf('Item(s) successfully copied to Section', $total, $section, $category); $mainframe->redirect('index.php?option='.$option.'§ionid='.$sectionid, $msg); } /** * @param integer The id of the article * @param integer The new access level * @param string The URL option */ function accessMenu($access) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $option = JRequest::getCmd( 'option' ); $cid = $cid[0]; // Create and load the article table object $row = & JTable::getInstance('content'); $row->load($cid); $row->access = $access; // Ensure the article object is valid if (!$row->check()) { JError::raiseError( 500, $row->getError() ); return false; } // Store the changes if (!$row->store()) { JError::raiseError( 500, $row->getError() ); return false; } $cache = & JFactory::getCache('com_content'); $cache->clean(); $mainframe->redirect('index.php?option='.$option); } function saveOrder() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $order = JRequest::getVar( 'order', array (0), 'post', 'array' ); $redirect = JRequest::getVar( 'redirect', 0, 'post', 'int' ); $rettask = JRequest::getVar( 'returntask', '', 'post', 'cmd' ); $total = count($cid); $conditions = array (); JArrayHelper::toInteger($cid, array(0)); JArrayHelper::toInteger($order, array(0)); // Instantiate an article table object $row = & JTable::getInstance('content'); // Update the ordering for items in the cid array for ($i = 0; $i < $total; $i ++) { $row->load( (int) $cid[$i] ); if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { JError::raiseError( 500, $db->getErrorMsg() ); return false; } // remember to updateOrder this group $condition = 'catid = '.(int) $row->catid.' AND state >= 0'; $found = false; foreach ($conditions as $cond) if ($cond[1] == $condition) { $found = true; break; } if (!$found) $conditions[] = array ($row->id, $condition); } } // execute updateOrder for each group foreach ($conditions as $cond) { $row->load($cond[0]); $row->reorder($cond[1]); } $cache = & JFactory::getCache('com_content'); $cache->clean(); $msg = JText::_('New ordering saved'); switch ($rettask) { case 'showarchive' : $mainframe->redirect('index.php?option=com_content&task=showarchive§ionid='.$redirect, $msg); break; default : $mainframe->redirect('index.php?option=com_content§ionid='.$redirect, $msg); break; } } function previewContent() { // Initialize variables $document =& JFactory::getDocument(); $db =& JFactory::getDBO(); $id = JRequest::getVar( 'id', 0, '', 'int' ); $option = JRequest::getCmd( 'option' ); // Get the current default template $query = 'SELECT template' . ' FROM #__templates_menu' . ' WHERE client_id = 0' . ' AND menuid = 0'; $db->setQuery($query); $template = $db->loadResult(); // check if template editor stylesheet exists if (!file_exists( JPATH_SITE.DS.'templates'.DS.$template.DS.'css'.DS.'editor.css' )) { $template = 'system'; } // Set page title $document->setTitle(JText::_('Article Preview')); $document->addStyleSheet(JURI::root() . 'templates/'.$template.'/css/editor.css'); $document->setBase(JUri::root()); // Render article preview ContentView::previewContent(); } function insertPagebreak() { $document =& JFactory::getDocument(); $document->setTitle(JText::_('PGB ARTICLE PAGEBRK')); ContentView::insertPagebreak(); } } elracodelangela/administrator/components/com_content/config.xml0000755000176700017710000001201011061563422025762 0ustar essawireessawire elracodelangela/administrator/components/com_messages/0000755000176700017710000000000011061563562024140 5ustar essawireessawireelracodelangela/administrator/components/com_messages/admin.messages.php0000755000176700017710000002015611061563422027551 0ustar essawireessawiregetUserStateFromRequest( $context.'.filter_order', 'filter_order', 'a.date_time', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $context.'.filter_order_Dir','filter_order_Dir', 'DESC', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( $context.'.filter_state', 'filter_state', '', 'word' ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $context.'.limitstart', 'limitstart', 0, 'int' ); $search = $mainframe->getUserStateFromRequest( $context.'search', 'search', '', 'string' ); $search = JString::strtolower( $search ); $where = array(); $where[] = ' a.user_id_to='.(int) $user->get('id'); if ($search != '') { $searchEscaped = $db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); $where[] = '( a.subject LIKE '.$searchEscaped.' OR a.message LIKE '.$searchEscaped.' )'; } if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'a.state = 1'; } else if ($filter_state == 'U' ) { $where[] = 'a.state = 0'; } } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', a.date_time DESC'; $query = 'SELECT COUNT(*)' . ' FROM #__messages AS a' . ' INNER JOIN #__users AS u ON u.id = a.user_id_from' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); $query = 'SELECT a.*, u.name AS user_from' . ' FROM #__messages AS a' . ' INNER JOIN #__users AS u ON u.id = a.user_id_from' . $where . $orderby ; $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } // state filter $lists['state'] = JHTML::_('grid.state', $filter_state, 'Read', 'Unread' ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; HTML_messages::showMessages( $rows, $pageNav, $option, $lists ); } function editConfig( $option ) { $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $query = 'SELECT cfg_name, cfg_value' . ' FROM #__messages_cfg' . ' WHERE user_id = '.(int) $user->get('id') ; $db->setQuery( $query ); $data = $db->loadObjectList( 'cfg_name' ); // initialize values if they do not exist if (!isset($data['lock']->cfg_value)) { $data['lock']->cfg_value = 0; } if (!isset($data['mail_on_new']->cfg_value)) { $data['mail_on_new']->cfg_value = 0; } if (!isset($data['auto_purge']->cfg_value)) { $data['auto_purge']->cfg_value = 7; } $vars = array(); $vars['lock'] = JHTML::_('select.booleanlist', "vars[lock]", '', $data['lock']->cfg_value, 'yes', 'no', 'varslock' ); $vars['mail_on_new'] = JHTML::_('select.booleanlist', "vars[mail_on_new]", '', $data['mail_on_new']->cfg_value, 'yes', 'no', 'varsmail_on_new' ); $vars['auto_purge'] = $data['auto_purge']->cfg_value; HTML_messages::editConfig( $vars, $option ); } function saveConfig( $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $query = 'DELETE FROM #__messages_cfg' . ' WHERE user_id = '.(int) $user->get('id') ; $db->setQuery( $query ); $db->query(); $vars = JRequest::getVar( 'vars', array(), 'post', 'array' ); foreach ($vars as $k=>$v) { $v = $db->getEscaped( $v ); $query = 'INSERT INTO #__messages_cfg' . ' ( user_id, cfg_name, cfg_value )' . ' VALUES ( '.(int) $user->get('id').', '.$db->Quote($k).', '.$db->Quote($v).' )' ; $db->setQuery( $query ); $db->query(); } $mainframe->redirect( "index.php?option=$option" ); } function newMessage( $option, $user, $subject ) { $db =& JFactory::getDBO(); $acl =& JFactory::getACL(); // get available backend user groups $gid = $acl->get_group_id( 'Public Backend', 'ARO' ); $gids = $acl->get_group_children( $gid, 'ARO', 'RECURSE' ); JArrayHelper::toInteger($gids, array(0)); $gids = implode( ',', $gids ); // get list of usernames $recipients = array( JHTML::_('select.option', '0', '- '. JText::_( 'Select User' ) .' -' ) ); $query = 'SELECT id AS value, username AS text FROM #__users' . ' WHERE gid IN ( '.$gids.' )' . ' ORDER BY name' ; $db->setQuery( $query ); $recipients = array_merge( $recipients, $db->loadObjectList() ); $recipientslist = JHTML::_('select.genericlist', $recipients, 'user_id_to', 'class="inputbox" size="1"', 'value', 'text', $user); HTML_messages::newMessage($option, $recipientslist, $subject ); } function saveMessage( $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); require_once(dirname(__FILE__).DS.'tables'.DS.'message.php'); $db =& JFactory::getDBO(); $row = new TableMessage( $db ); if (!$row->bind(JRequest::get('post'))) { JError::raiseError(500, $row->getError() ); } if (!$row->check()) { JError::raiseError(500, $row->getError() ); } if (!$row->send()) { $mainframe->redirect( "index.php?option=com_messages", $row->getError() ); } $mainframe->redirect( "index.php?option=com_messages" ); } function viewMessage( $uid='0', $option ) { $db =& JFactory::getDBO(); $query = 'SELECT a.*, u.name AS user_from' . ' FROM #__messages AS a' . ' INNER JOIN #__users AS u ON u.id = a.user_id_from' . ' WHERE a.message_id = '.(int) $uid . ' ORDER BY date_time DESC' ; $db->setQuery( $query ); $row = $db->loadObject(); $query = 'UPDATE #__messages' . ' SET state = 1' . ' WHERE message_id = '.(int) $uid ; $db->setQuery( $query ); $db->query(); HTML_messages::viewMessage( $row, $option ); } function removeMessage( $cid, $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { JError::raiseError(500, JText::_( 'Select an item to delete' ) ); } if (count( $cid )) { $cids = implode( ',', $cid ); $query = 'DELETE FROM #__messages' . ' WHERE message_id IN ( '. $cids .' )' ; $db->setQuery( $query ); if (!$db->query()) { echo "\n"; } } $limit = JRequest::getVar( 'limit', 10, '', 'int' ); $limitstart = JRequest::getVar( 'limitstart', 0, '', 'int' ); $mainframe->redirect( 'index.php?option='.$option.'&limit='.$limit.'&limitstart='.$limitstart ); } elracodelangela/administrator/components/com_messages/messages.xml0000755000176700017710000000077311061563422026476 0ustar essawireessawire Messaging Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Messaging elracodelangela/administrator/components/com_messages/index.html0000755000176700017710000000005411061563422026132 0ustar essawireessawireelracodelangela/administrator/components/com_messages/tables/0000755000176700017710000000000011061563562025412 5ustar essawireessawireelracodelangela/administrator/components/com_messages/tables/message.php0000755000176700017710000000756511061563422027562 0ustar essawireessawireuser_id_from; $toId = $toId ? $toId : $this->user_id_to; $subject = $subject ? $subject : $this->subject; $message = $message ? $message : $this->message; } $query = 'SELECT cfg_name, cfg_value' . ' FROM #__messages_cfg' . ' WHERE user_id = '.(int) $toId; $db->setQuery($query); $config = $db->loadObjectList('cfg_name'); $locked = @ $config['lock']->cfg_value; $domail = @ $config['mail_on_new']->cfg_value; if (!$locked) { $this->user_id_from = $fromId; $this->user_id_to = $toId; $this->subject = $subject; $this->message = $message; $date =& JFactory::getDate(); $this->date_time = $date->toMySQL(); if ($this->store()) { if ($domail) { $query = 'SELECT name, email' . ' FROM #__users' . ' WHERE id = '.(int) $fromId; $db->setQuery($query); $fromObject = $db->loadObject(); $fromname = $fromObject->name; $mailfrom = $fromObject->email; $siteURL = JURI::base(); $sitename = $mainframe->getCfg( 'sitename' ); $query = 'SELECT email' . ' FROM #__users' . ' WHERE id = '.(int) $toId; $db->setQuery($query); $recipient = $db->loadResult(); $subject = sprintf (JText::_('A new private message has arrived'), $sitename); $msg = sprintf (JText::_('Please login to read your message'), $siteURL); JUtility::sendMail($mailfrom, $fromname, $recipient, $subject, $msg); } return true; } } else { if (is_object($this)) { $this->setError(JText::_('MESSAGE_FAILED')); } } return false; } } elracodelangela/administrator/components/com_messages/tables/index.html0000755000176700017710000000005411061563422027404 0ustar essawireessawireelracodelangela/administrator/components/com_messages/toolbar.messages.php0000755000176700017710000000171311061563422030121 0ustar essawireessawire
    :
    state ? 'tick.png' : 'publish_x.png'; $alt = $row->state ? JText::_( 'Read' ) : JText::_( 'Read' ); if ( $user->authorize( 'com_users', 'manage' ) ) { $linkA = 'index.php?option=com_users&view=user&task=edit&cid[]='. $row->user_id_from; $author = ''. $row->user_from .''; } else { $author = $row->user_from; } ?> ">
    getListFooter(); ?>
    limitstart;?> message_id ); ?> subject; ?> <?php echo $alt; ?> date_time, JText::_('DATE_FORMAT_LC2')); ?>
    :
    :
    :
    : user_from;?>
    : date_time;?>
    : subject;?>
    :
    message, ENT_COMPAT, 'UTF-8' );?>
    :
    :
    :
    properties["N"] = "$family;$first;$additional;$prefix;$suffix"; $this->setFormattedName( trim( "$prefix $first $additional $family $suffix" ) ); } // needed to fix bug in vcard class function setAddress( $postoffice='', $extended='', $street='', $city='', $region='', $zip='', $country='', $type='HOME;POSTAL' ) { // $type may be DOM | INTL | POSTAL | PARCEL | HOME | WORK or any combination of these: e.g. "WORK;PARCEL;POSTAL" $separator = ';'; $key = 'ADR'; if ( $type != '' ) { $key .= $separator . $type; } $key.= ';ENCODING=QUOTED-PRINTABLE'; $return = encode( $postoffice ); $return .= $separator . encode( $extended ); $return .= $separator . encode( $street ); $return .= $separator . encode( $city ); $return .= $separator . encode( $region); $return .= $separator . encode( $zip ); $return .= $separator . encode( $country ); $this->properties[$key] = $return; } // added ability to set filename function setFilename( $filename ) { $this->filename = $filename .'.vcf'; } // added ability to set position/title function setTitle( $title ) { $title = trim( $title ); $this->properties['TITLE'] = $title; } // added ability to set organisation/company function setOrg( $org ) { $org = trim( $org ); $this->properties['ORG'] = $org; } function getVCard( $sitename ) { $text = 'BEGIN:VCARD'; $text .= "\r\n"; $text .= 'VERSION:2.1'; $text .= "\r\n"; foreach( $this->properties as $key => $value ) { $text .= "$key:$value"; $text .= "\r\n"; } $text .= 'REV:'. date( 'Y-m-d' ) .'T'. date( 'H:i:s' ). 'Z'; $text .= "\r\n"; $text .= 'MAILER: Joomla! vCard for '. $sitename; $text .= "\r\n"; $text .= 'END:VCARD'; $text .= "\r\n"; return $text; } }elracodelangela/administrator/components/com_contact/helpers/index.html0000755000176700017710000000005411061563432027421 0ustar essawireessawireelracodelangela/administrator/components/com_contact/index.html0000755000176700017710000000005411061563432025757 0ustar essawireessawireelracodelangela/administrator/components/com_contact/tables/0000755000176700017710000000000011061563565025241 5ustar essawireessawireelracodelangela/administrator/components/com_contact/tables/index.html0000755000176700017710000000005411061563432027231 0ustar essawireessawireelracodelangela/administrator/components/com_contact/tables/contact.php0000755000176700017710000000571711061563432027413 0ustar essawireessawiredefault_con = intval( $this->default_con ); if (JFilterInput::checkAttribute(array ('href', $this->webpage))) { $this->setError(JText::_('Please provide a valid URL')); return false; } // check for http on webpage if (strlen($this->webpage) > 0 && (!(eregi('http://', $this->webpage) || (eregi('https://', $this->webpage)) || (eregi('ftp://', $this->webpage))))) { $this->webpage = 'http://'.$this->webpage; } if(empty($this->alias)) { $this->alias = $this->name; } $this->alias = JFilterOutput::stringURLSafe($this->alias); if(trim(str_replace('-','',$this->alias)) == '') { $datenow =& JFactory::getDate(); $this->alias = $datenow->toFormat("%Y-%m-%d-%H-%M-%S"); } return true; } } elracodelangela/administrator/components/com_contact/elements/0000755000176700017710000000000011061563565025603 5ustar essawireessawireelracodelangela/administrator/components/com_contact/elements/index.html0000755000176700017710000000005411061563432027573 0ustar essawireessawireelracodelangela/administrator/components/com_contact/elements/contact.php0000755000176700017710000000251211061563432027743 0ustar essawireessawiresetQuery( $query ); $options = $db->loadObjectList( ); return JHTML::_('select.genericlist', $options, ''.$control_name.'['.$name.']', 'class="inputbox"', 'id', 'text', $value, $control_name.$name ); } } elracodelangela/administrator/components/com_contact/admin.contact.php0000755000176700017710000003177011061563432027226 0ustar essawireessawireauthorize( 'com_contact', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } require_once( JApplicationHelper::getPath( 'admin_html' ) ); // Set the table directory JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_contact'.DS.'tables'); $task = JRequest::getCmd('task'); $id = JRequest::getVar('id', 0, 'get', 'int'); $cid = JRequest::getVar('cid', array(0), 'post', 'array'); JArrayHelper::toInteger($cid, array(0)); switch ($task) { case 'add' : editContact(false ); break; case 'edit': editContact(true); break; case 'apply': case 'save': case 'save2new': case 'save2copy': saveContact( $task ); break; case 'remove': removeContacts( $cid ); break; case 'publish': changeContact( $cid, 1 ); break; case 'unpublish': changeContact( $cid, 0 ); break; case 'orderup': orderContacts( $cid[0], -1 ); break; case 'orderdown': orderContacts( $cid[0], 1 ); break; case 'accesspublic': changeAccess( $cid[0], 0 ); break; case 'accessregistered': changeAccess( $cid[0], 1 ); break; case 'accessspecial': changeAccess( $cid[0], 2 ); break; case 'saveorder': saveOrder( $cid ); break; case 'cancel': cancelContact(); break; default: showContacts( $option ); break; } /** * List the records * @param string The current GET/POST option */ function showContacts( $option ) { global $mainframe; $db =& JFactory::getDBO(); $filter_order = $mainframe->getUserStateFromRequest( $option.'filter_order', 'filter_order', 'cd.ordering', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( $option.'filter_order_Dir', 'filter_order_Dir', '', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( $option.'filter_state', 'filter_state', '', 'word' ); $filter_catid = $mainframe->getUserStateFromRequest( $option.'filter_catid', 'filter_catid', 0, 'int' ); $search = $mainframe->getUserStateFromRequest( $option.'search', 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest($option.'.limitstart', 'limitstart', 0, 'int'); $where = array(); if ( $search ) { $where[] = 'cd.name LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } if ( $filter_catid ) { $where[] = 'cd.catid = '.(int) $filter_catid; } if ( $filter_state ) { if ( $filter_state == 'P' ) { $where[] = 'cd.published = 1'; } else if ($filter_state == 'U' ) { $where[] = 'cd.published = 0'; } } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); if ($filter_order == 'cd.ordering'){ $orderby = ' ORDER BY category, cd.ordering'; } else { $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', category, cd.ordering'; } // get the total number of records $query = 'SELECT COUNT(*)' . ' FROM #__contact_details AS cd' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); // get the subset (based on limits) of required records $query = 'SELECT cd.*, cc.title AS category, u.name AS user, v.name as editor, g.name AS groupname' . ' FROM #__contact_details AS cd' . ' LEFT JOIN #__groups AS g ON g.id = cd.access' . ' LEFT JOIN #__categories AS cc ON cc.id = cd.catid' . ' LEFT JOIN #__users AS u ON u.id = cd.user_id' . ' LEFT JOIN #__users AS v ON v.id = cd.checked_out' . $where . $orderby ; $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $rows = $db->loadObjectList(); // build list of categories $javascript = 'onchange="document.adminForm.submit();"'; $lists['catid'] = JHTML::_('list.category', 'filter_catid', 'com_contact_details', intval( $filter_catid ), $javascript ); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; HTML_contact::showcontacts( $rows, $pageNav, $option, $lists ); } /** * Creates a new or edits and existing user record * @param int The id of the record, 0 if a new entry * @param string The current GET/POST option */ function editContact($edit ) { $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $cid = JRequest::getVar('cid', array(0), '', 'array'); $option = JRequest::getCmd('option'); JArrayHelper::toInteger($cid, array(0)); $row =& JTable::getInstance('contact', 'Table'); // load the row from the db table if($edit) $row->load( $cid[0] ); if ($edit) { // do stuff for existing records $row->checkout($user->get('id')); } else { // do stuff for new records $row->imagepos = 'top'; $row->ordering = 0; $row->published = 1; } $lists = array(); // build the html select list for ordering $query = 'SELECT ordering AS value, name AS text' . ' FROM #__contact_details' . ' WHERE published >= 0' . ' AND catid = '.(int) $row->catid . ' ORDER BY ordering' ; if($edit) $lists['ordering'] = JHTML::_('list.specificordering', $row, $cid[0], $query ); else $lists['ordering'] = JHTML::_('list.specificordering', $row, '', $query ); // build list of users $lists['user_id'] = JHTML::_('list.users', 'user_id', $row->user_id, 1, NULL, 'name', 0 ); // build list of categories $lists['catid'] = JHTML::_('list.category', 'catid', 'com_contact_details', intval( $row->catid ) ); // build the html select list for images $lists['image'] = JHTML::_('list.images', 'image', $row->image ); // build the html select list for the group access $lists['access'] = JHTML::_('list.accesslevel', $row ); // build the html radio buttons for published $lists['published'] = JHTML::_('select.booleanlist', 'published', '', $row->published ); // build the html radio buttons for default $lists['default_con'] = JHTML::_('select.booleanlist', 'default_con', '', $row->default_con ); // get params definitions $file = JPATH_ADMINISTRATOR .'/components/com_contact/contact_items.xml'; $params = new JParameter( $row->params, $file, 'component' ); HTML_contact::editcontact( $row, $lists, $option, $params ); } /** * Saves the record from an edit form submit * @param string The current GET/POST option */ function saveContact( $task ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $row =& JTable::getInstance('contact', 'Table'); $post = JRequest::get( 'post' ); $post['misc'] = JRequest::getVar('misc', '', 'POST', 'string', JREQUEST_ALLOWHTML); if (!$row->bind( $post )) { JError::raiseError(500, $row->getError() ); } // save params $params = JRequest::getVar( 'params', array(), 'post', 'array' ); if (is_array( $params )) { $txt = array(); foreach ( $params as $k=>$v) { $txt[] = "$k=$v"; } $row->params = implode( "\n", $txt ); } // save to a copy, reset the primary key if ($task == 'save2copy') { $row->id = 0; } // pre-save checks if (!$row->check()) { JError::raiseError(500, $row->getError() ); } // if new item, order last in appropriate group if (!$row->id) { $where = "catid = " . (int) $row->catid; $row->ordering = $row->getNextOrder( $where ); } // save the changes if (!$row->store()) { JError::raiseError(500, $row->getError() ); } $row->checkin(); if ($row->default_con) { $query = 'UPDATE #__contact_details' . ' SET default_con = 0' . ' WHERE id <> '. (int) $row->id . ' AND default_con = 1' ; $db->setQuery( $query ); $db->query(); } switch ($task) { case 'apply': case 'save2copy': $msg = JText::sprintf( 'Changes to X saved', 'Contact' ); $link = 'index.php?option=com_contact&task=edit&cid[]='. $row->id .''; break; case 'save2new': $msg = JText::sprintf( 'Changes to X saved', 'Contact' ); $link = 'index.php?option=com_contact&task=edit'; break; case 'save': default: $msg = JText::_( 'Contact saved' ); $link = 'index.php?option=com_contact'; break; } $mainframe->redirect( $link, $msg ); } /** * Removes records * @param array An array of id keys to remove * @param string The current GET/POST option */ function removeContacts( &$cid ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); JArrayHelper::toInteger($cid); if (count( $cid )) { $cids = implode( ',', $cid ); $query = 'DELETE FROM #__contact_details' . ' WHERE id IN ( '. $cids .' )' ; $db->setQuery( $query ); if (!$db->query()) { echo "\n"; } } $mainframe->redirect( "index.php?option=com_contact" ); } /** * Changes the state of one or more content pages * @param array An array of unique category id numbers * @param integer 0 if unpublishing, 1 if publishing * @param string The current option */ function changeContact( $cid=null, $state=0 ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $user =& JFactory::getUser(); JArrayHelper::toInteger($cid); if (count( $cid ) < 1) { $action = $state ? 'publish' : 'unpublish'; JError::raiseError(500, JText::_( 'Select an item to' .$action, true ) ); } $cids = implode( ',', $cid ); $query = 'UPDATE #__contact_details' . ' SET published = ' . (int) $state . ' WHERE id IN ( '. $cids .' )' . ' AND ( checked_out = 0 OR ( checked_out = '. (int) $user->get('id') .' ) )' ; $db->setQuery( $query ); if (!$db->query()) { JError::raiseError(500, $db->getErrorMsg() ); } if (count( $cid ) == 1) { $row =& JTable::getInstance('contact', 'Table'); $row->checkin( intval( $cid[0] ) ); } $mainframe->redirect( 'index.php?option=com_contact' ); } /** JJC * Moves the order of a record * @param integer The increment to reorder by */ function orderContacts( $uid, $inc ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $row =& JTable::getInstance('contact', 'Table'); $row->load( $uid ); $row->move( $inc, 'catid = '. (int) $row->catid .' AND published != 0' ); $mainframe->redirect( 'index.php?option=com_contact' ); } /** PT * Cancels editing and checks in the record */ function cancelContact() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $row =& JTable::getInstance('contact', 'Table'); $row->bind( JRequest::get( 'post' )); $row->checkin(); $mainframe->redirect('index.php?option=com_contact'); } /** * changes the access level of a record * @param integer The increment to reorder by */ function changeAccess( $id, $access ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $row =& JTable::getInstance('contact', 'Table'); $row->load( $id ); $row->access = $access; if ( !$row->check() ) { return $row->getError(); } if ( !$row->store() ) { return $row->getError(); } $mainframe->redirect( 'index.php?option=com_contact' ); } function saveOrder( &$cid ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $total = count( $cid ); $order = JRequest::getVar( 'order', array(0), 'post', 'array' ); JArrayHelper::toInteger($order, array(0)); $row =& JTable::getInstance('contact', 'Table'); $groupings = array(); // update ordering values for( $i=0; $i < $total; $i++ ) { $row->load( (int) $cid[$i] ); // track categories $groupings[] = $row->catid; if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { JError::raiseError(500, $db->getErrorMsg() ); } } } // execute updateOrder for each parent group $groupings = array_unique( $groupings ); foreach ($groupings as $group){ $row->reorder('catid = '.(int) $group); } $msg = 'New ordering saved'; $mainframe->redirect( 'index.php?option=com_contact', $msg ); } elracodelangela/administrator/components/com_contact/toolbar.contact.html.php0000755000176700017710000000351211061563432030534 0ustar essawireessawire[ '. $text .' ]', 'generic.png' ); //JToolBarHelper::custom( 'save2new', 'new.png', 'new_f2.png', 'Save & New', false, false ); //JToolBarHelper::custom( 'save2copy', 'copy.png', 'copy_f2.png', 'Save To Copy', false, false ); JToolBarHelper::save(); JToolBarHelper::apply(); if ( $edit ) { // for existing items the button is renamed `close` JToolBarHelper::cancel( 'cancel', 'Close' ); } else { JToolBarHelper::cancel(); } JToolBarHelper::help( 'screen.contactmanager.edit' ); } function _DEFAULT() { JToolBarHelper::title( JText::_( 'Contact Manager' ), 'generic.png' ); JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); JToolBarHelper::preferences('com_contact', '500'); JToolBarHelper::help( 'screen.contactmanager' ); } }elracodelangela/administrator/components/com_contact/contact.xml0000755000176700017710000000105311061563432026137 0ustar essawireessawire Contact Joomla! Project Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. April 2006 http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 This component shows a listing of Contact Information elracodelangela/administrator/components/com_contact/config.xml0000755000176700017710000000731011061563432025753 0ustar essawireessawire elracodelangela/administrator/components/com_contact/contact_items.xml0000755000176700017710000001305711061563432027347 0ustar essawireessawire Contact Items Joomla! Project Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.0.0 Parameters for individual Contact Items elracodelangela/administrator/components/com_contact/admin.contact.html.php0000755000176700017710000003440111061563432030163 0ustar essawireessawire
    :
    id ); $checked = JHTML::_('grid.checkedout', $row, $i ); $access = JHTML::_('grid.access', $row, $i ); $published = JHTML::_('grid.published', $row, $i ); $row->cat_link = JRoute::_( 'index.php?option=com_categories§ion=com_contact_details&task=edit&type=other&cid[]='. $row->catid ); $row->user_link = JRoute::_( 'index.php?option=com_users&task=editA&cid[]='. $row->user_id ); ?> ">
    getListFooter(); ?>
    getRowOffset( $i ); ?> get ('id'), $row->checked_out )) : echo $row->name; else : ?> name; ?> orderUpIcon( $i, ( $row->catid == @$rows[$i-1]->catid ), 'orderup', 'Move Up', $ordering ); ?> orderDownIcon( $i, $n, ( $row->catid == @$rows[$i+1]->catid ), 'orderdown', 'Move Down', $ordering ); ?> class="text_area" style="text-align: center" /> category; ?> user; ?> id; ?>
    image == '') { $row->image = 'blank.png'; } JHTML::_('behavior.tooltip'); jimport('joomla.html.pane'); // TODO: allowAllClose should default true in J!1.6, so remove the array when it does. $pane = &JPane::getInstance('sliders', array('allowAllClose' => true)); JFilterOutput::objectHTMLSafe( $row, ENT_QUOTES, 'misc' ); $cparams = JComponentHelper::getParams ('com_media'); ?>
    id) { ?>
    :
    id;?>
    startPane("menu-pane"); echo $pane->startPanel(JText :: _('Contact Parameters'), "param-page"); echo $params->render(); echo $pane->endPanel(); echo $pane->startPanel(JText :: _('Advanced Parameters'), "param-page"); echo $params->render('params', 'advanced'); echo $pane->endPanel(); echo $pane->startPanel(JText :: _('E-mail Parameters'), "param-page"); echo $params->render('params', 'email'); echo $pane->endPanel(); echo $pane->endPane(); ?>
    ['. JText::_( 'Menu Items' ) .']'; } else { $text = ': ['. JText::_( 'Articles' ) .']'; } JToolBarHelper::title( JText::_( 'Trash Manager' ) . $text, 'trash.png' ); JToolBarHelper::custom('restoreconfirm','restore.png','restore_f2.png', 'Restore', true); JToolBarHelper::custom('deleteconfirm','delete.png','delete_f2.png', 'Delete', true); JToolBarHelper::help( 'screen.trashmanager' ); } function _RESTORE() { JToolBarHelper::title( JText::_( 'Restore Items' ), 'restoredb.png' ); JToolBarHelper::cancel(); } function _DELETE() { JToolBarHelper::title( JText::_( 'Delete Items' ), 'delete_f2.png' ); JToolBarHelper::cancel(); } }elracodelangela/administrator/components/com_trash/admin.trash.html.php0000755000176700017710000002502311061563415027340 0ustar essawireessawire
    :
    ">
    getListFooter(); ?>
    limitstart;?> id ); ?> title; ?> id; ?> sectname; ?> catname; ?>
    :
    ">
    getListFooter(); ?>
    limitstart;?> name; ?> id; ?> menutype; ?> type; ?>
    :


    :
    "; foreach ( $items as $item ) { echo "
  • ". $item->name ."
  • "; } echo ""; ?>



     
     


    "; } ?>
    :


    :
    "; foreach ( $items as $item ) { echo "
  • ". $item->name ."
  • "; } echo ""; ?>




     


    "; } ?>
    authorize( 'com_trash', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } require_once( JApplicationHelper::getPath( 'admin_html' ) ); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $mid = JRequest::getVar( 'mid', array(0), 'post', 'array' ); JArrayHelper::toInteger($cid, array(0)); JArrayHelper::toInteger($mid, array(0)); switch ($task) { case 'deleteconfirm': viewdeleteTrash( $cid, $mid, $option ); break; case 'delete': deleteTrash( $cid, $option ); break; case 'restoreconfirm': viewrestoreTrash( $cid, $mid, $option ); break; case 'restore': restoreTrash( $cid, $option ); break; case 'viewMenu': viewTrashMenu( $option ); break; case 'viewContent': viewTrashContent( $option ); break; default: $return = JRequest::getCmd( 'return', 'viewContent', 'post' ); if ( $return == 'viewMenu' ) { viewTrashMenu( $option ); } else { viewTrashContent( $option ); } break; } /** * Compiles a list of trash items */ function viewTrashContent( $option ) { global $mainframe; $db =& JFactory::getDBO(); $filter_order = $mainframe->getUserStateFromRequest( "$option.viewContent.filter_order", 'filter_order', 'sectname', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( "$option.viewContent.filter_order_Dir", 'filter_order_Dir', '', 'word' ); $search = $mainframe->getUserStateFromRequest( "$option.search", 'search', '', 'string' ); $search = JString::strtolower( $search ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' ); $where[] = 'c.state = -2'; if ($search) { $where[] = 'LOWER(c.title) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', s.name, cc.name, c.title'; // get the total number of content $query = 'SELECT count(c.id)' . ' FROM #__content AS c' . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = cc.section AND s.scope = "content"' . ' LEFT JOIN #__groups AS g ON g.id = c.access' . ' LEFT JOIN #__users AS u ON u.id = c.checked_out' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); // Query articles $query = 'SELECT c.title, c.id, c.sectionid, c.catid, g.name AS groupname, cc.title AS catname, s.title AS sectname' . ' FROM #__content AS c' . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = cc.section AND s.scope="content"' . ' LEFT JOIN #__groups AS g ON g.id = c.access' . ' LEFT JOIN #__users AS u ON u.id = c.checked_out' . $where . $orderby ; $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $contents = $db->loadObjectList(); for ( $i = 0; $i < count($contents); $i++ ) { if ( ( $contents[$i]->sectionid == 0 ) && ( $contents[$i]->catid == 0 ) ) { $contents[$i]->sectname = JText::_('UNCATEGORIZED'); } } // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; HTML_trash::showListContent( $option, $contents, $pageNav, $lists ); } /** * Compiles a list of trash items */ function viewTrashMenu( $option ) { global $mainframe; $db =& JFactory::getDBO(); $filter_order = $mainframe->getUserStateFromRequest( "$option.viewMenu.filter_order", 'filter_order', 'm.menutype', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( "$option.viewMenu.filter_order_Dir", 'filter_order_Dir', '', 'word' ); $limit = $mainframe->getUserStateFromRequest( "limit", 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( "$option.viewMenu.limitstart", 'limitstart', 0, 'int' ); $search = $mainframe->getUserStateFromRequest( "$option.search", 'search', '', 'string' ); $search = JString::strtolower( $search ); $where[] = 'm.published = -2'; if ($search) { $where[] = 'LOWER(m.name) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); } $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); $orderby = ' ORDER BY '. $filter_order . ' ' . $filter_order_Dir .', m.menutype, m.ordering, m.ordering, m.name'; $query = 'SELECT count(*)' . ' FROM #__menu AS m' . ' LEFT JOIN #__users AS u ON u.id = m.checked_out' . $where ; $db->setQuery( $query ); $total = $db->loadResult(); jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); // Query menu items $query = 'SELECT m.name, m.id, m.menutype, m.type, com.name AS com_name' . ' FROM #__menu AS m' . ' LEFT JOIN #__users AS u ON u.id = m.checked_out' . ' LEFT JOIN #__components AS com ON com.id = m.componentid AND m.type = "components"' . $where . $orderby ; $db->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $menus = $db->loadObjectList(); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; HTML_trash::showListMenu( $option, $menus, $pageNav, $lists ); } /** * Compiles a list of the items you have selected to permanently delte */ function viewdeleteTrash( $cid, $mid, $option ) { global $mainframe; $db =& JFactory::getDBO(); $return = JRequest::getCmd( 'return', 'viewContent', 'post' ); JArrayHelper::toInteger($cid, array(0)); JArrayHelper::toInteger($mid, array(0)); // seperate contentids $cids = implode( ',', $cid ); $mids = implode( ',', $mid ); if ( $cids ) { // Articles query $query = 'SELECT a.title AS name' . ' FROM #__content AS a' . ' WHERE ( a.id IN ( '.$cids.' ) )' . ' ORDER BY a.title' ; $db->setQuery( $query ); $items = $db->loadObjectList(); $id = $cid; $type = "content"; } else if ( $mids ) { // Articles query $query = 'SELECT a.name' . ' FROM #__menu AS a' . ' WHERE ( a.id IN ( '.$mids.' ) )' . ' ORDER BY a.name' ; $db->setQuery( $query ); $items = $db->loadObjectList(); $id = $mid; $type = "menu"; } HTML_trash::showDelete( $option, $id, $items, $type, $return ); } /** * Permanently deletes the selected list of trash items */ function deleteTrash( $cid, $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $return = JRequest::getCmd( 'return', 'viewContent', 'post' ); $type = JRequest::getCmd( 'type', '', 'post' ); $total = count( $cid ); if ( $type == 'content' ) { $obj =& JTable::getInstance('content'); require_once (JPATH_ADMINISTRATOR.DS.'components'.DS.'com_frontpage'.DS.'tables'.DS.'frontpage.php'); $fp = new TableFrontPage( $db ); foreach ( $cid as $id ) { $id = intval( $id ); $obj->delete( $id ); $fp->delete( $id ); } } else if ( $type == "menu" ) { $obj =& JTable::getInstance('menu'); foreach ( $cid as $id ) { $id = intval( $id ); $obj->delete( $id ); } } $msg = JText::sprintf( 'Item(s) successfully Deleted', $total ); $mainframe->redirect( 'index.php?option='.$option.'&task='.$return, $msg ); } /** * Compiles a list of the items you have selected to permanently delte */ function viewrestoreTrash( $cid, $mid, $option ) { global $mainframe; $db =& JFactory::getDBO(); $return = JRequest::getCmd( 'return', 'viewContent', 'post' ); JArrayHelper::toInteger($cid, array(0)); JArrayHelper::toInteger($mid, array(0)); // seperate contentids $cids = implode( ',', $cid ); $mids = implode( ',', $mid ); if ( $cids ) { // Articles query $query = 'SELECT a.title AS name' . ' FROM #__content AS a' . ' WHERE ( a.id IN ( '.$cids.' ) )' . ' ORDER BY a.title' ; $db->setQuery( $query ); $items = $db->loadObjectList(); $id = $cid; $type = "content"; } else if ( $mids ) { // Articles query $query = 'SELECT a.name' . ' FROM #__menu AS a' . ' WHERE ( a.id IN ( '.$mids.' ) )' . ' ORDER BY a.name' ; $db->setQuery( $query ); $items = $db->loadObjectList(); $id = $mid; $type = "menu"; } HTML_trash::showRestore( $option, $id, $items, $type, $return ); } /** * Restores items selected to normal - restores to an unpublished state */ function restoreTrash( $cid, $option ) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db = & JFactory::getDBO(); $type = JRequest::getCmd( 'type', '', 'post' ); $total = count( $cid ); // restores to an unpublished state $state = 0; $ordering = 9999; if ( $type == 'content' ) { $return = 'viewContent'; //seperate contentids JArrayHelper::toInteger($cid, array(0)); $cids = implode( ',', $cid ); // query to restore article $query = 'UPDATE #__content' . ' SET state = '.(int) $state.', ordering = '.(int) $ordering . ' WHERE id IN ( '.$cids.' )' ; $db->setQuery( $query ); if ( !$db->query() ) { JError::raiseError(500, $db->getErrorMsg() ); } } else if ( $type == 'menu' ) { $return = 'viewMenu'; jimport('joomla.application.component.model'); JModel::addIncludePath(JPATH_BASE.DS.'components'.DS.'com_menus'.DS.'models'); $model =& JModel::getInstance('List', 'MenusModel'); $total = $model->fromTrash($cid); if (!$total) { JError::raiseError(500, $db->getErrorMsg() ); } } $msg = JText::sprintf( 'Item(s) successfully Restored', $total ); $mainframe->redirect( 'index.php?option='.$option.'&task='.$return, $msg ); } function ReadMenuXML( $type, $component=-1 ) { // xml file for module $xmlfile = JPATH_ADMINISTRATOR .'/components/com_menus/'. $type .'/'. $type .'.xml'; $data = JApplicationHelper::parseXMLInstallFile($xmlfile); if ( $data['type'] == 'component' || $data['type'] == 'menu' ) { if ( ( $component <> -1 ) && ( $data['name'] == 'Component') ) { $data['name'] .= ' - '. $component; } $row[0] = $data['name']; } return $row; }elracodelangela/administrator/components/com_trash/index.html0000755000176700017710000000005411061563415025446 0ustar essawireessawireelracodelangela/administrator/components/com_trash/trash.xml0000755000176700017710000000072411061563415025320 0ustar essawireessawire Trash Joomla! Project Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.0.0 PARAMTRASH elracodelangela/administrator/components/com_trash/toolbar.trash.php0000755000176700017710000000157111061563415026751 0ustar essawireessawireelracodelangela/administrator/components/com_menus/classes/ilink.php0000755000176700017710000002306411061563417026743 0ustar essawireessawire_cid = "&cid[]=".$id; } else { $this->_cid = null; } if ($menutype) { $this->_menutype = "&menutype=".$menutype; } else { $this->_menutype = null; } $this->_com = preg_replace( '#\W#', '', $component ); // Build the tree if (!$this->_getOptions($this->_getXML(JPATH_SITE.'/components/com_'.$this->_com.'/metadata.xml', 'menu'), $this->_root)) { if (!$this->_getViews()) { // Default behavior } } } /** * Returns the component * @return string */ function getComponent() { return $this->_com; } function getTree() { $depth = 0; $this->reset(); $class = null; // Recurse through children if they exist while ($this->_current->hasChildren()) { $this->_output .= '
      '; $children = $this->_current->getChildren(); for ($i=0,$n=count($children);$i<$n;$i++) { $this->_current = & $children[$i]; $this->renderLevel($depth,($i==$n-1)?1:0); } $this->_output .= '
    '; } return $this->_output; } function renderLevel($depth, $isLast=0) { $depth++; if (!isset($this->_depthHash[$depth])) { $this->_depthHash[$depth] = 0; } $this->_depthHash[$depth]++; if ($this->_current->hasChildren()) { $classes = 'node-open'; } else { $classes = 'leaf'; } if ($isLast) { $last = ' class="last"'; } else { $last = ''; } $parent = & $this->_current->getParent(); // Print the item $this->_output .= "\n"; // Print the url if ($this->_current->hasChildren()) { $this->_output .= ""; } else { $this->_output .= ""; } // Recurse through children if they exist while ($this->_current->hasChildren()) { $this->_output .= "
      \n"; $children = $this->_current->getChildren(); for ($i=0,$n=count($children);$i<$n;$i++) { $this->_current = & $children[$i]; $this->renderLevel($depth,($i==$n-1)?1:0); } $this->_output .= "
    \n"; } // Close item $this->_output .= "\n"; } function _getOptions($e, &$parent, $purl=null) { if (!$purl) { $purl = 'url[option]=com_'.$this->_com; // No metadata xml file in component root if (!$e) { return false; } } // Does the metadata file say no options available? if ($e->attributes('options') == 'none') { $node =& new iLinkNode($e->attributes('name'), $purl, $e->attributes('msg')); $parent->addChild($node); return true; } // Do we have defined options available? $options = &$e->getElementByPath('options'); if ($options) { $children = $options->children(); foreach ($children as $child) { if ($child->name() == 'option') { $url = $purl.'&url['.$options->attributes('var').']='.$child->attributes('value'); $node =& new iLinkNode($child->attributes('name'), $url, $child->attributes('msg')); $parent->addChild($node); } elseif ($child->name() == 'default') { $node =& new iLinkNode($child->attributes('name'), $purl, $child->attributes('msg')); $parent->addChild($node); } } return true; } else { return false; } } /** * @access private */ function _getViews() { $return = false; $path = JPATH_SITE.DS.'components'.DS.'com_'.$this->_com.DS.'views'; if (JFolder::exists($path)) { $views = JFolder::folders($path); } else { return $return; } if (is_array($views) && count($views)) { //$this->addChild(new iLinkNode('Views', null, 'Select the view'), true); $return = true; foreach ($views as $view) { if (strpos($view, '_') === false) { // Load view metadata if it exists $xmlpath = $path.DS.$view.DS.'metadata.xml'; if (JFile::exists($xmlpath)) { $data = $this->_getXML($xmlpath, 'view'); } else { $data = null; } $url = 'url[option]=com_'.$this->_com.'&url[view]='.$view; if ($data) { if ($data->attributes('hidden') != 'true') { $m = $data->getElementByPath('message'); if ($m) { $message = $m->data(); } $node =& new iLinkNode($data->attributes('title'), $url, $message); $this->addChild($node); if ($options = $data->getElementByPath('options')) { $this->_getOptions($data, $node, $url); } else { $this->_getLayouts(dirname($xmlpath), $node); } } } else { $onclick = null; $node =& new iLinkNode(ucfirst($view), $url); $this->addChild($node); $this->_getLayouts(dirname($xmlpath), $node); } } } } return $return; } /** * @access private */ function _getLayouts($path, &$node) { $return = false; $folder = $path.DS.'tmpl'; if (is_dir( $folder )) { $files = JFolder::files($folder, '.php$'); if (count($files)) { foreach ($files as $file) { if (strpos($file, '_') === false) { // Load view metadata if it exists $layout = JFile::stripext($file); $xmlpath = $path.DS.'tmpl'.DS.$layout.'.xml'; if (JFile::exists($xmlpath)) { $data = $this->_getXML($xmlpath, 'layout'); } else { $data = null; } if ($layout != 'default') { $url = 'url[option]=com_'.$this->_com.'&url[view]='.basename($path).'&url[layout]='.$layout; } else { $url = 'url[option]=com_'.$this->_com.'&url[view]='.basename($path); } if ($data) { if ($data->attributes('hidden') != 'true') { $m = $data->getElementByPath('message'); if ($m) { $message = $m->data(); } $child =& new iLinkNode($data->attributes('title'), $url, $message); $node->addChild($child); } } else { // Add default info for the layout $child =& new iLinkNode(ucfirst($layout).' '.JText::_('Layout'), $url); $node->addChild($child); } } } } } return $return; } function _getXML($path, $xpath='control') { // Initialize variables $result = null; // load the xml metadata if (file_exists( $path )) { $xml =& JFactory::getXMLParser('Simple'); if ($xml->loadFile($path)) { if (isset( $xml->document )) { $result = $xml->document->getElementByPath($xpath); } } return $result; } return $result; } function _findNodes(&$node) { foreach ($node->children() as $step) { /* * For each child we need to see if it is an include and if so we * need to get those children and process them as well (break out into * another method). Then we need to create the objects in the _steps * array for each child of type step. For now we aren't going to handle * nested includes. */ if ($step->name() == 'include') { // Handle include $this->_getIncludedSteps($step, $node); } elseif ($step->name() == 'step') { // Include step to array $this->_nodes[] = $step; } else { // Do nothing continue; } } } function _getIncludedSteps($include, &$parent) { $tags = array(); $source = $include->attributes('source'); $path = $include->attributes('path'); preg_match_all( "/{([A-Za-z\-_]+)}/", $source, $tags); if (isset( $tags[1] )) { $n = count( $tags[1] ); for ($i=0; $i < $n; $i++) { $source = str_replace($tags[0][$i], @$this->_vars[$tags[1][$i]], $source); } } // load the source xml file if (file_exists( JPATH_ROOT.$source )) { $xml = & JFactory::getXMLParser('Simple'); if ($xml->loadFile(JPATH_ROOT.$source)) { $document = &$xml->document; $steps = $document->getElementByPath($path); foreach($steps->children() as $step) { if ($step->name() == 'include') { // Handle include } elseif ($step->name() == 'step') { // Include step to array $node->addChild('step', $step->attributes(), $node->level()+1); } else { // Do nothing continue; } } } } } } class iLinkNode extends JNode { /** * Node Title */ var $title = null; /** * Node URL */ var $url = null; /** * Node message */ var $msg = null; function __construct($title, $url = null, $msg = null) { $this->title = trim($title); $this->url = $url; $this->msg = trim($msg); } }elracodelangela/administrator/components/com_menus/models/0000755000176700017710000000000011061563561024742 5ustar essawireessawireelracodelangela/administrator/components/com_menus/models/list.php0000755000176700017710000004435211061563420026433 0ustar essawireessawire_table == null) { $this->_table =& JTable::getInstance( 'menu'); } return $this->_table; } function &getItems() { global $mainframe; static $items; if (isset($items)) { return $items; } $db =& $this->getDBO(); $menutype = $mainframe->getUserStateFromRequest( "com_menus.menutype", 'menutype', 'mainmenu', 'string' ); $filter_order = $mainframe->getUserStateFromRequest( 'com_menus.'.$menutype.'.filter_order', 'filter_order', 'm.ordering', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( 'com_menus.'.$menutype.'.filter_order_Dir', 'filter_order_Dir', 'ASC', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( 'com_menus.'.$menutype.'.filter_state', 'filter_state', '', 'word' ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg( 'list_limit' ), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( 'com_menus.'.$menutype.'.limitstart', 'limitstart', 0, 'int' ); $levellimit = $mainframe->getUserStateFromRequest( 'com_menus.'.$menutype.'.levellimit', 'levellimit', 10, 'int' ); $search = $mainframe->getUserStateFromRequest( 'com_menus.'.$menutype.'.search', 'search', '', 'string' ); $search = JString::strtolower( $search ); $and = ''; if ( $filter_state ) { if ( $filter_state == 'P' ) { $and = ' AND m.published = 1'; } else if ($filter_state == 'U' ) { $and = ' AND m.published = 0'; } } // just in case filter_order get's messed up if ($filter_order) { $orderby = ' ORDER BY '.$filter_order .' '. $filter_order_Dir .', m.parent, m.ordering'; } else { $orderby = ' ORDER BY m.parent, m.ordering'; } // select the records // note, since this is a tree we have to do the limits code-side if ($search) { $query = 'SELECT m.id' . ' FROM #__menu AS m' . ' WHERE menutype = '.$db->Quote($menutype) . ' AND LOWER( m.name ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ) . $and; $db->setQuery( $query ); $search_rows = $db->loadResultArray(); } $query = 'SELECT m.*, u.name AS editor, g.name AS groupname, c.publish_up, c.publish_down, com.name AS com_name' . ' FROM #__menu AS m' . ' LEFT JOIN #__users AS u ON u.id = m.checked_out' . ' LEFT JOIN #__groups AS g ON g.id = m.access' . ' LEFT JOIN #__content AS c ON c.id = m.componentid AND m.type = "content_typed"' . ' LEFT JOIN #__components AS com ON com.id = m.componentid AND m.type = "component"' . ' WHERE m.menutype = '.$db->Quote($menutype) . ' AND m.published != -2' . $and . $orderby; $db->setQuery( $query ); $rows = $db->loadObjectList(); // establish the hierarchy of the menu $children = array(); // first pass - collect children foreach ($rows as $v ) { $pt = $v->parent; $list = @$children[$pt] ? $children[$pt] : array(); array_push( $list, $v ); $children[$pt] = $list; } // second pass - get an indent list of the items $list = JHTML::_('menu.treerecurse', 0, '', array(), $children, max( 0, $levellimit-1 ) ); // eventually only pick out the searched items. if ($search) { $list1 = array(); foreach ($search_rows as $sid ) { foreach ($list as $item) { if ($item->id == $sid) { $list1[] = $item; } } } // replace full list with found items $list = $list1; } $total = count( $list ); jimport('joomla.html.pagination'); $this->_pagination = new JPagination( $total, $limitstart, $limit ); // slice out elements based on limits $list = array_slice( $list, $this->_pagination->limitstart, $this->_pagination->limit ); $i = 0; $query = array(); foreach ( $list as $mitem ) { $edit = ''; switch ( $mitem->type ) { case 'separator': $list[$i]->descrip = JText::_('Separator'); break; case 'url': $list[$i]->descrip = JText::_('URL'); break; case 'menulink': $list[$i]->descrip = JText::_('Menu Link'); break; case 'component': $list[$i]->descrip = JText::_('Component'); $query = parse_url($list[$i]->link); $view = array(); if(isset($query['query'])) { if(strpos($query['query'], '&') !== false) { $query['query'] = str_replace('&','&',$query['query']); } parse_str($query['query'], $view); } $list[$i]->view = $list[$i]->com_name; if (isset($view['view'])) { $list[$i]->view .= ' » '.JText::_(ucfirst($view['view'])); } if (isset($view['layout'])) { $list[$i]->view .= ' / '.JText::_(ucfirst($view['layout'])); } if (isset($view['task']) && !isset($view['view'])) { $list[$i]->view .= ' :: '.JText::_(ucfirst($view['task'])); } break; default: $list[$i]->descrip = JText::_('Unknown'); break; } $i++; } $items = $list; return $items; } function &getPagination() { if ($this->_pagination == null) { $this->getItems(); } return $this->_pagination; } /** * Form for copying item(s) to a specific menu */ function getItemsFromRequest() { static $items; if (isset($items)) { return $items; } $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); if (count($cid) < 1) { $this->setError(JText::_( 'Select an item to move')); return false; } // Query to list the selected menu items $db =& $this->getDBO(); $cids = implode( ',', $cid ); $query = 'SELECT `id`, `name`' . ' FROM `#__menu`' . ' WHERE `id` IN ( '.$cids.' )'; $db->setQuery( $query ); $items = $db->loadObjectList(); return $items; } /** * Gets the componet table object related to this menu item */ function &getComponent() { $id = $this->_table->componentid; $component = & JTable::getInstance( 'component'); $component->load( $id ); return $component; } /** * Save the item(s) to the menu selected */ function copy( $items, $menu ) { $curr =& JTable::getInstance('menu'); $itemref = array(); foreach ($items as $id) { $curr->load( $id ); $curr->id = NULL; $curr->home = 0; if ( !$curr->store() ) { $this->setError($curr->getError()); return false; } $itemref[] = array($id, $curr->id); } foreach ($itemref as $ref) { $curr->load( $ref[1] ); if ($curr->parent!=0) { $found = false; foreach ( $itemref as $ref2 ) { if ($curr->parent == $ref2[0]) { $curr->parent = $ref2[1]; $found = true; break; } // if } if (!$found && $curr->menutype!=$menu) { $curr->parent = 0; } } $curr->menutype = $menu; $curr->ordering = '9999'; $curr->home = 0; if ( !$curr->store() ) { $this->setError($curr->getError()); return false; } $curr->reorder( 'menutype = '.$this->_db->Quote($curr->menutype).' AND parent = '.(int) $curr->parent ); } // foreach //Now, we need to rebuild sublevels... $this->_rebuildSubLevel(); return true; } function move($items, $menu) { // Add all children to the list foreach ($items as $id) { $this->_addChildren($id, $items); } $row =& $this->getTable(); $ordering = 1000000; $firstroot = 0; foreach ($items as $id) { $row->load( $id ); // is it moved together with his parent? $found = false; if ($row->parent != 0) { foreach ($items as $idx) { if ($idx == $row->parent) { $found = true; break; } // if } } if (!$found) { $row->parent = 0; $row->ordering = $ordering++; if (!$firstroot) $firstroot = $row->id; } // if $row->menutype = $menu; if ( !$row->store() ) { $this->setError($row->getError()); return false; } // if } // foreach if ($firstroot) { $row->load( $firstroot ); $row->reorder( 'menutype = '.$this->_db->Quote($row->menutype).' AND parent = '.(int) $row->parent ); } // if //Rebuild sublevel $this->_rebuildSubLevel(); return true; } function toTrash($items) { $db =& $this->getDBO(); $nd = $db->getNullDate(); $state = -2; $row =& $this->getTable(); $default = 0; // Add all children to the list foreach ($items as $id) { //Check if it's the default item $row->load( $id ); if ($row->home != 1) { $this->_addChildren($id, $items); } else { unset($items[$default]); JError::raiseWarning( 'SOME_ERROR_CODE', JText::_('You cannot trash the default menu item')); } $default++; } if (!empty($items)) { // Sent menu items to the trash JArrayHelper::toInteger($items, array(0)); $where = ' WHERE (id = ' . implode( ' OR id = ', $items ) . ') AND home = 0'; $query = 'UPDATE #__menu' . ' SET published = '.(int) $state.', parent = 0, ordering = 0, checked_out = 0, checked_out_time = '.$db->Quote($nd) . $where; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $db->getErrorMsg() ); return false; } } // Clear the content cache // TODO: Is this necessary? $cache = & JFactory::getCache('com_content'); $cache->clean(); return count($items); } function fromTrash($items) { $db =& $this->getDBO(); $nd = $db->getNullDate(); $state = 0; // Add all children to the list foreach ($items as $id) { $this->_addChildren($id, $items); } // Sent menu items to the trash JArrayHelper::toInteger($items, array(0)); $where = ' WHERE id = ' . implode( ' OR id = ', $items ); $query = 'UPDATE #__menu' . ' SET published = '.(int) $state.', parent = 0, ordering = 99999, checked_out = 0, checked_out_time = '.$db->Quote($nd) . $where; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $db->getErrorMsg() ); return false; } // Clear the content cache // TODO: Is this necessary? $cache = & JFactory::getCache('com_content'); $cache->clean(); return count($items); } /** * Set the state of selected menu items */ function setHome( $item ) { $db =& $this->getDBO(); // Clear home field for all other items $query = 'UPDATE #__menu' . ' SET home = 0' . ' WHERE 1'; $db->setQuery( $query ); if ( !$db->query() ) { $this->setError($db->getErrorMsg()); return false; } // Set the given item to home $query = 'UPDATE #__menu' . ' SET home = 1' . ' WHERE id = '.(int) $item; $db->setQuery( $query ); if ( !$db->query() ) { $this->setError($db->getErrorMsg()); return false; } return true; } /** * Set the state of selected menu items */ function setItemState( $items, $state ) { if(is_array($items)) { $row =& $this->getTable(); foreach ($items as $id) { $row->load( $id ); if ($row->home != 1) { $row->published = $state; if ($state != 1) { // Set any alias menu types to not point to unpublished menu items $db = &$this->getDBO(); $query = 'UPDATE #__menu SET link = 0 WHERE type = \'menulink\' AND link = '.(int)$id; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $db->getErrorMsg() ); return false; } } if (!$row->check()) { $this->setError($row->getError()); return false; } if (!$row->store()) { $this->setError($row->getError()); return false; } } else { JError::raiseWarning( 'SOME_ERROR_CODE', JText::_('You cannot unpublish the default menu item')); return false; } } } // clean menu cache $cache =& JFactory::getCache('mod_mainmenu'); $cache->clean(); return true; } /** * Set the access of selected menu items */ function setAccess( $items, $access ) { $row =& $this->getTable(); foreach ($items as $id) { $row->load( $id ); $row->access = $access; // Set any alias menu types to not point to unpublished menu items $db = &$this->getDBO(); $query = 'UPDATE #__menu SET link = 0 WHERE type = \'menulink\' AND access < '.(int)$access.' AND link = '.(int)$id; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $db->getErrorMsg() ); return false; } if (!$row->check()) { $this->setError($row->getError()); return false; } if (!$row->store()) { $this->setError($row->getError()); return false; } } // clean menu cache $cache =& JFactory::getCache('mod_mainmenu'); $cache->clean(); return true; } function orderItem($item, $movement) { $row =& $this->getTable(); $row->load( $item ); if (!$row->move( $movement, 'menutype = '.$this->_db->Quote($row->menutype).' AND parent = '.(int) $row->parent )) { $this->setError($row->getError()); return false; } // clean menu cache $cache =& JFactory::getCache('mod_mainmenu'); $cache->clean(); return true; } function setOrder($items, $menutype) { $total = count( $items ); $row =& $this->getTable(); $groupings = array(); $order = JRequest::getVar( 'order', array(), 'post', 'array' ); JArrayHelper::toInteger($order); // update ordering values for( $i=0; $i < $total; $i++ ) { $row->load( $items[$i] ); // track parents $groupings[] = $row->parent; if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { $this->setError($row->getError()); return false; } } // if } // for // execute updateOrder for each parent group $groupings = array_unique( $groupings ); foreach ($groupings as $group){ $row->reorder('menutype = '.$this->_db->Quote($menutype).' AND parent = '.(int) $group.' AND published >=0'); } // clean menu cache $cache =& JFactory::getCache('mod_mainmenu'); $cache->clean(); return true; } /** * Delete one or more menu items * @param mixed int or array of id values */ function delete( $ids ) { JArrayHelper::toInteger($ids); if (!empty( $ids )) { // Add all children to the list foreach ($ids as $id) { $this->_addChildren($id, $ids); } $db = &$this->getDBO(); // Delete associated module and template mappings $where = 'WHERE menuid = ' . implode( ' OR menuid = ', $ids ); $query = 'DELETE FROM #__modules_menu ' . $where; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $menuTable->getErrorMsg() ); return false; } $query = 'DELETE FROM #__templates_menu ' . $where; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $menuTable->getErrorMsg() ); return false; } // Set any alias menu types to not point to missing menu items $query = 'UPDATE #__menu SET link = 0 WHERE type = \'menulink\' AND (link = '.implode( ' OR id = ', $ids ).')'; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $db->getErrorMsg() ); return false; } // Delete the menu items $where = 'WHERE id = ' . implode( ' OR id = ', $ids ); $query = 'DELETE FROM #__menu ' . $where; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $db->getErrorMsg() ); return false; } } // clean menu cache $cache =& JFactory::getCache('mod_mainmenu'); $cache->clean(); return true; } /** * Delete menu items by type */ function deleteByType( $type = '' ) { $db = &$this->getDBO(); $query = 'SELECT id' . ' FROM #__menu' . ' WHERE menutype = ' . $db->Quote( $type ); $db->setQuery( $query ); $ids = $db->loadResultArray(); if ($db->getErrorNum()) { $this->setError( $db->getErrorMsg() ); return false; } return $this->delete( $ids ); } function _addChildren($id, &$list) { // Initialize variables $return = true; // Get all rows with parent of $id $db =& $this->getDBO(); $query = 'SELECT id' . ' FROM #__menu' . ' WHERE parent = '.(int) $id; $db->setQuery( $query ); $rows = $db->loadObjectList(); // Make sure there aren't any errors if ($db->getErrorNum()) { $this->setError($db->getErrorMsg()); return false; } // Recursively iterate through all children... kinda messy // TODO: Cleanup this method foreach ($rows as $row) { $found = false; foreach ($list as $idx) { if ($idx == $row->id) { $found = true; break; } } if (!$found) { $list[] = $row->id; } $return = $this->_addChildren($row->id, $list); } return $return; } /* * Rebuild the sublevel field for items in the menu (if called with 2nd param = 0 or no params, it will rebuild entire menu tree's sublevel * @param array of menu item ids to change level to * @param int level to set the menu items to (based on parent */ function _rebuildSubLevel($cid = array(0), $level = 0) { JArrayHelper::toInteger($cid, array(0)); $db =& $this->getDBO(); $ids = implode( ',', $cid ); $cids = array(); if($level == 0) { $query = 'UPDATE #__menu SET sublevel = 0 WHERE parent = 0'; $db->setQuery($query); $db->query(); $query = 'SELECT id FROM #__menu WHERE parent = 0'; $db->setQuery($query); $cids = $db->loadResultArray(0); } else { $query = 'UPDATE #__menu SET sublevel = '.(int) $level .' WHERE parent IN ('.$ids.')'; $db->setQuery( $query ); $db->query(); $query = 'SELECT id FROM #__menu WHERE parent IN ('.$ids.')'; $db->setQuery( $query ); $cids = $db->loadResultArray( 0 ); } if (!empty( $cids )) { $this->_rebuildSubLevel( $cids, $level + 1 ); } } } elracodelangela/administrator/components/com_menus/models/index.html0000755000176700017710000000005411061563420026733 0ustar essawireessawireelracodelangela/administrator/components/com_menus/models/item.php0000755000176700017710000004471711061563420026423 0ustar essawireessawire_url = 'index.php?option='.$url['option']; unset($url['option']); if (count($url)) { foreach ($url as $k => $v) { $this->_url .= '&'.$k.'='.$v; } } } $this->setId(); } function setId() { $array = JRequest::getVar('cid', array(0), '', 'array'); $this->_id = (int) $array[0]; if (!$this->_id) { $this->_id = JRequest::getInt('id', 0); } } function &getItem() { static $item; if (isset($item)) { return $item; } $table =& $this->_getTable(); // Load the current item if it has been defined $edit = JRequest::getVar('edit',true); $cid = JRequest::getVar( 'cid', array(0), '', 'array' ); JArrayHelper::toInteger($cid, array(0)); if ($edit) { $table->load($cid[0]); } // Override the current item's type field if defined in the request if ($type = JRequest::getString('type')) { $table->type = $type; } // Override the current item's menutype field if defined in the request if ($menu_type = JRequest::getString('menutype')) { $table->menutype = $menu_type; } switch ($table->type) { case 'separator': $table->link = null; $table->componentid = 0; break; case 'url': $table->componentid = 0; break; case 'menulink': $table->componentid = 0; break; case 'component': // Override the current item's link field if defined in the request if (!is_null($this->_url)) { $table->link = $this->_url; } $url = str_replace('index.php?', '', $table->link); $url = str_replace('&', '&', $url); $table->linkparts = null; if(strpos($url, '&') !== false) { $url = str_replace('&','&',$url); } parse_str($url, $table->linkparts); $db = &$this->getDBO(); if ($component = @$table->linkparts['option']) { $query = 'SELECT `id`' . ' FROM `#__components`' . ' WHERE `link` <> \'\'' . ' AND `parent` = 0' . ' AND `option` = "'.$db->getEscaped($component).'"'; $db->setQuery( $query ); $table->componentid = $db->loadResult(); } break; } $item = $table; return $item; } function &getExpansion() { $item = &$this->getItem(); $return['option'] = JRequest::getCmd('expand'); $menutype = JRequest::getString('menutype'); if ($return['option']) { require_once(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_menus'.DS.'classes'.DS.'ilink.php'); $handler = new iLink($return['option'], $item->id, $menutype); $return['html'] = $handler->getTree(); return $return; } else { $return['html'] = null; } return $return; } function &getUrlParams() { // Get the state parameters $item =& $this->getItem(); $params = new JParameter(''); if ($state =& $this->_getStateXML()) { if (is_a($state, 'JSimpleXMLElement')) { $sp =& $state->getElementByPath('url'); $params->setXML($sp); if (isset($item->linkparts) && is_array($item->linkparts)) { $params->loadArray($item->linkparts); } } } return $params; } function &getStateParams() { // Get the state parameters $item =& $this->getItem(); $params = new JParameter($item->params); if ($state =& $this->_getStateXML()) { if (is_a($state, 'JSimpleXMLElement')) { $sp =& $state->getElementByPath('params'); $params->setXML($sp); } } return $params; } function &getAdvancedParams() { // Get the state parameters $item =& $this->getItem(); $params = new JParameter($item->params); if ($state =& $this->_getStateXML()) { if (is_a($state, 'JSimpleXMLElement')) { $ap =& $state->getElementByPath('advanced'); $params->setXML($ap); } } return $params; } function &getComponentParams() { // Initialize variables $params = null; $item = &$this->getItem(); if ($item->type == 'component') { $comp = &$this->getComponent(); $option = preg_replace( '#\W#', '', $comp->option ); $path = JPATH_ADMINISTRATOR.DS.'components'.DS.$option.DS.'config.xml'; $params = new JParameter( $item->params ); if (file_exists( $path )) { $xml =& JFactory::getXMLParser('Simple'); if ($xml->loadFile($path)) { $document =& $xml->document; // if hide is set, don't show the component configuration while editing menu item $menu = $document->attributes('menu'); if ( isset($menu) && $menu == 'hide' ) { $params = null; return $params; } if (isset($document->params[0]->param)) { // We will collect the hidden elements in an array // loop will mess up if we do it within the loop $hide = array(); for ($i=0,$n=count($document->params[0]->param); $i<$n; $i++) { if ($document->params[0]->param[$i]->attributes('menu') == 'hide') { $hide[] = &$document->params[0]->param[$i]; } else if ($document->params[0]->param[$i]->attributes('type') == 'radio' || $document->params[0]->param[$i]->attributes('type') == 'list') { $document->params[0]->param[$i]->addAttribute('default', ''); $document->params[0]->param[$i]->addAttribute('type', 'list'); $child = &$document->params[0]->param[$i]->addChild('option', array('value' => '')); $child->setData('Use Global'); } } // Now remove any hidden elements for ($i = 0, $n = count( $hide ); $i < $n; $i++) { $document->params[0]->removeChild( $hide[$i] ); } } $params->setXML( $document->params[0] ); } } } return $params; } function &getSystemParams() { // Initialize variables $params = null; $item = &$this->getItem(); $params = new JParameter( $item->params ); if ($item->type == 'component') { $path = JPATH_BASE.DS.'components'.DS.'com_menus'.DS.'models'.DS.'metadata'.DS.'component.xml'; if (file_exists( $path )) { $xml =& JFactory::getXMLParser('Simple'); if ($xml->loadFile($path)) { $document =& $xml->document; $params->setXML($document->getElementByPath('state/params')); } } } return $params; } /** * Get the name of the current menu item * * @return string * @access public * @since 1.5 */ function getStateName() { $state =& $this->_getStateXML(); if ( ! is_a($state, 'JSimpleXMLElement')) { return null; } $name = null; $sn =& $state->getElementByPath('name'); if ($sn) { $name = $sn->data(); } return JText::_($name); } /** * Get the description of the current menu item * * @return string * @access public * @since 1.5 */ function getStateDescription() { $state =& $this->_getStateXML(); if ( ! is_a($state, 'JSimpleXMLElement')) { return null; } $description = null; $sd =& $state->getElementByPath('description'); if ($sd) { $description = $sd->data(); } return JText::_($description); } /** * Gets the componet table object related to this menu item */ function &getComponent() { $item =& $this->getItem(); $id = $item->componentid; $component = & JTable::getInstance( 'component'); $component->load( $id ); return $component; } function checkout($uid = null) { $id = JRequest::getVar('cid', array(0), '', 'array'); JArrayHelper::toInteger( $id, array(0) ); // Make sure we have a user id to checkout the article with if (is_null($uid)) { $user =& JFactory::getUser(); $uid = $user->get('id'); } // Lets get to it and checkout the thing... $item =& $this->getItem(); if(!$item->checkout($uid, $id[0])) { $this->setError($this->_db->getErrorMsg()); return false; } return true; } function checkin() { if ($this->_id) { $item =& $this->_getTable(); if(!$item->checkin($this->_id)) { $this->setError($this->_db->getErrorMsg()); return false; } return true; } return false; } function store() { // Initialize variables $db =& JFactory::getDBO(); $row =& $this->getItem(); $post = $this->_state->get( 'request' ); switch ($post['type']) { case 'separator': break; case 'url': break; case 'menulink': $post['link'] = 'index.php?Itemid='.$post['params']['menu_item']; break; case 'component': break; } if (!$row->bind( $post )) { echo "\n"; return false; } if ($row->id > 0) { // existing item $query = 'SELECT menutype FROM #__menu WHERE id = '.(int) $row->id; $this->_db->setQuery( $query ); $oldType = $this->_db->loadResult(); if ($oldType != $row->menutype) { // moved to another menu, disconnect the old parent $row->parent = 0; } $query = 'SELECT parent FROM #__menu WHERE id = '.(int) $row->id; $this->_db->setQuery( $query ); $oldParent = $this->_db->loadResult(); if ($oldParent != $row->parent) { // we have changed parents, so we have to fix the submenu values if ($row->parent != 0) { $query = 'SELECT sublevel FROM #__menu WHERE id = '.(int) $row->parent; $this->_db->setQuery( $query ); $sublevel = $this->_db->loadResult() + 1; } else { $sublevel = 0; } $row->sublevel = $sublevel; $this->_setSubLevel( array( (int) $row->id ), $sublevel ); } } else { // if new item order last in appropriate group $where = "menutype = " . $db->Quote($row->menutype) . " AND published >= 0 AND parent = ".(int) $row->parent; $row->ordering = $row->getNextOrder( $where ); if( $row->parent != 0 ) { $query = 'SELECT sublevel FROM #__menu WHERE id = '. (int) $row->parent; $this->_db->setQuery($query); $row->sublevel = $this->_db->loadResult() + 1; } } if (isset($post['urlparams']) && is_array($post['urlparams'])) { $pos = strpos( $row->link, '?' ); if ($pos !== false) { $prefix = substr( $row->link, 0, $pos ); $query = substr( $row->link, $pos+1 ); $temp = array(); if(strpos($query, '&') !== false) { $query = str_replace('&', '&', $query); } parse_str( $query, $temp ); $temp2 = array_merge( $temp, $post['urlparams'] ); $temp3 = array(); foreach ($temp2 as $k => $v) { if ( $k && strlen($v) ) { $temp3[] = $k.'='.$v; } } $url = null; $row->link = $prefix . '?' . implode( '&', $temp3 ); } } if (!$row->check()) { echo "\n"; return false; } if (!$row->store()) { echo "\n"; return false; } $row->checkin(); $row->reorder( 'menutype='.$db->Quote( $row->menutype ).' AND parent='.(int)$row->parent ); // clean menu cache $cache =& JFactory::getCache('mod_mainmenu'); $cache->clean(); return true; } /** * Delete one or more menu items * @param mixed int or array of id values */ function delete( $ids ) { JArrayHelper::toInteger($ids); $db = &$this->getDBO(); if (count( $ids )) { // Delete associated module and template mappings $where = 'WHERE menuid = ' . implode( ' OR menuid = ', $ids ); $query = 'DELETE FROM #__modules_menu ' . $where; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $menuTable->getErrorMsg() ); return false; } $query = 'DELETE FROM #__templates_menu ' . $where; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $menuTable->getErrorMsg() ); return false; } // Set any alias menu types to not point to missing menu items $query = 'UPDATE #__menu SET link = 0 WHERE type = \'menulink\' AND (link = '.implode( ' OR id = ', $ids ).')'; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $db->getErrorMsg() ); return false; } // Delete the menu items $where = 'WHERE id = ' . implode( ' OR id = ', $ids ); $query = 'DELETE FROM #__menu ' . $where; $db->setQuery( $query ); if (!$db->query()) { $this->setError( $db->getErrorMsg() ); return false; } } // clean menu cache $cache =& JFactory::getCache('mod_mainmenu'); $cache->clean(); return true; } /** * Delete menu items by type */ function deleteByType( $type = '' ) { $db = &$this->getDBO(); $query = 'SELECT id' . ' FROM #__menu' . ' WHERE menutype = ' . $db->Quote( $type ); $db->setQuery( $query ); $ids = $db->loadResultArray(); if ($db->getErrorNum()) { $this->setError( $db->getErrorMsg() ); return false; } return $this->delete( $ids ); } /** * Returns the internal table object * @return JTable */ function &_getTable() { if ($this->_table == null) { $this->_table =& JTable::getInstance( 'menu'); } return $this->_table; } function &_getStateXML() { static $xml; if (isset($xml)) { return $xml; } $xml = null; $xmlpath = null; $item = &$this->getItem(); switch ($item->type) { case 'separator': $xmlpath = JPATH_BASE.DS.'components'.DS.'com_menus'.DS.'models'.DS.'metadata'.DS.'separator.xml'; break; case 'url': $xmlpath = JPATH_BASE.DS.'components'.DS.'com_menus'.DS.'models'.DS.'metadata'.DS.'url.xml'; break; case 'menulink': $xmlpath = JPATH_BASE.DS.'components'.DS.'com_menus'.DS.'models'.DS.'metadata'.DS.'menulink.xml'; break; case 'component': default: if (isset($item->linkparts['view'])) { // View is set... so we konw to look in view file if (isset($item->linkparts['layout'])) { $layout = $item->linkparts['layout']; } else { $layout = 'default'; } $lpath = JPATH_ROOT.DS.'components'.DS.$item->linkparts['option'].DS.'views'.DS.$item->linkparts['view'].DS.'tmpl'.DS.$layout.'.xml'; $vpath = JPATH_ROOT.DS.'components'.DS.$item->linkparts['option'].DS.'views'.DS.$item->linkparts['view'].DS.'metadata.xml'; if (file_exists($lpath)) { $xmlpath = $lpath; } elseif (file_exists($vpath)) { $xmlpath = $vpath; } } if (!$xmlpath && isset($item->linkparts['option'])) { $xmlpath = JPATH_ROOT.DS.'components'.DS.$item->linkparts['option'].DS.'metadata.xml'; if(!file_exists($xmlpath)) { $xmlpath = JApplicationHelper::getPath('com_xml', $item->linkparts['option']); } } break; } if (file_exists($xmlpath)) { $xml =& JFactory::getXMLParser('Simple'); if ($xml->loadFile($xmlpath)) { $this->_xml = &$xml; $document =& $xml->document; /* * HANDLE NO OPTION CASE */ $menus =& $document->getElementByPath('menu'); if (is_a($menus, 'JSimpleXMLElement') && $menus->attributes('options') == 'none') { $xml =& $menus->getElementByPath('state'); } else { $xml =& $document->getElementByPath('state'); } // Handle error case... path doesn't exist if (!is_a($xml, 'JSimpleXMLElement')) { return $document; } /* * HANDLE A SWITCH IF IT EXISTS */ if ($switch = $xml->attributes('switch')) { $default = $xml->attributes('default'); // Handle switch $switchVal = (isset($item->linkparts[$switch]))? $item->linkparts[$switch] : 'default'; $found = false; foreach ($xml->children() as $child) { if ($child->name() == $switchVal) { $xml =& $child; $found = true; break; } } if (!$found) { foreach ($xml->children() as $child) { if ($child->name() == $default) { $xml =& $child; break; } } } } /* * HANDLE INCLUDED PARAMS */ $children = $xml->children(); if (count($children) == 1) { if ($children[0]->name() == 'include') { $ret =& $this->_getIncludedParams($children[0]); if ($ret) { $xml =& $ret; } } } if ($switch = $xml->attributes('switch')) { $default = $xml->attributes('default'); // Handle switch $switchVal = ($item->linkparts[$switch])? $item->linkparts[$switch] : 'default'; $found = false; foreach ($xml->children() as $child) { if ($child->name() == $switchVal) { $xml =& $child; $found = true; break; } } if (!$found) { foreach ($xml->children() as $child) { if ($child->name() == $default) { $xml =& $child; break; } } } } } } return $xml; } function &_getIncludedParams($include) { $tags = array(); $state = null; $source = $include->attributes('source'); $path = $include->attributes('path'); $item = &$this->getItem(); preg_match_all( "/{([A-Za-z\-_]+)}/", $source, $tags); if (isset($tags[1])) { for ($i=0;$ilinkparts[$tags[1][$i]], $source); } } // load the source xml file if (file_exists( JPATH_ROOT.$source )) { $xml = & JFactory::getXMLParser('Simple'); if ($xml->loadFile(JPATH_ROOT.$source)) { $document = &$xml->document; $state = $document->getElementByPath($path); } } return $state; } /** * Sets the sublevel for menu items * * @param array id values to set * @param int level to assign to the sublevel */ function _setSubLevel( $cid, $level ) { JArrayHelper::toInteger($cid, array(0)); $ids = implode( ',', $cid ); $query = 'UPDATE #__menu SET sublevel = '.(int) $level .' WHERE id IN ('.$ids.')'; $this->_db->setQuery( $query ); $this->_db->query(); $query = 'SELECT id FROM #__menu WHERE parent IN ('.$ids.')'; $this->_db->setQuery( $query ); $cids = $this->_db->loadResultArray( 0 ); if (!empty( $cids )) { $this->_setSubLevel( $cids, $level + 1 ); } } } elracodelangela/administrator/components/com_menus/models/metadata/0000755000176700017710000000000011061563561026522 5ustar essawireessawireelracodelangela/administrator/components/com_menus/models/metadata/menulink.xml0000755000176700017710000000053411061563420031065 0ustar essawireessawire Menu Link Menu Link parameters... elracodelangela/administrator/components/com_menus/models/metadata/url.xml0000755000176700017710000000055611061563420030051 0ustar essawireessawire External Link External link parameters... elracodelangela/administrator/components/com_menus/models/metadata/index.html0000755000176700017710000000005411061563420030513 0ustar essawireessawireelracodelangela/administrator/components/com_menus/models/metadata/component.xml0000755000176700017710000000223311061563420031243 0ustar essawireessawire Component Component Parameters elracodelangela/administrator/components/com_menus/models/metadata/separator.xml0000755000176700017710000000054611061563420031246 0ustar essawireessawire Separator Separator parameters... elracodelangela/administrator/components/com_menus/models/menutype.php0000755000176700017710000001617111061563420027324 0ustar essawireessawire_table == null) { $this->_table = & JTable::getInstance('menuTypes'); if ($id = JRequest::getVar('id', false, '', 'int')) { $this->_table->load($id); } } return $this->_table; } /** * Get a list of the menu records associated with the type * * @param string The menu type * @return array An array of records as objects */ function getMenus() { global $mainframe; $menus= array(); $db = &$this->getDBO(); // Preselect some aggregate data // Query to get published menu item counts $query = 'SELECT a.menutype, COUNT( a.menutype ) AS num' . ' FROM #__menu AS a' . ' WHERE a.published = 1' . ' GROUP BY a.menutype'; $db->setQuery( $query ); $published = $db->loadObjectList( 'menutype' ); // Query to get unpublished menu item counts $query = 'SELECT a.menutype, COUNT( a.menutype ) AS num' . ' FROM #__menu AS a' . ' WHERE a.published = 0' . ' GROUP BY a.menutype'; $db->setQuery( $query ); $unpublished = $db->loadObjectList( 'menutype' ); // Query to get trash menu item counts $query = 'SELECT a.menutype, COUNT( a.menutype ) AS num' . ' FROM #__menu AS a' . ' WHERE a.published = -2' . ' GROUP BY a.menutype'; $db->setQuery( $query ); $trash = $db->loadObjectList( 'menutype' ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( 'com_menus.limitstart', 'limitstart', 0, 'int' ); $query = 'SELECT a.*, SUM(b.home) AS home' . ' FROM #__menu_types AS a' . ' LEFT JOIN #__menu AS b ON b.menutype = a.menutype' . ' GROUP BY a.id'; $db->setQuery( $query, $limitstart, $limit ); $menuTypes = $db->loadObjectList(); $total = count( $menuTypes ); $i = 0; for ($i = 0; $i < $total; $i++) { $row = &$menuTypes[$i]; // query to get number of modules for menutype $query = 'SELECT count( id )' . ' FROM #__modules' . ' WHERE module = "mod_mainmenu"' . ' AND params LIKE '.$db->Quote('%menutype='.$row->menutype.'%'); $db->setQuery( $query ); $modules = $db->loadResult(); if ( !$modules ) { $modules = '-'; } $row->modules = $modules; $row->published = @$published[$row->menutype]->num ? $published[$row->menutype]->num : '-' ; $row->unpublished = @$unpublished[$row->menutype]->num ? $unpublished[$row->menutype]->num : '-'; $row->trash = @$trash[$row->menutype]->num ? $trash[$row->menutype]->num : '-'; $menus[] = $row; } return $menus; } /** * Get a list of the menu records associated with the type * * @param string The menu type * @return array An array of records as objects */ function getPagination() { global $mainframe; $menutypes = MenusHelper::getMenuTypeList(); $total = count( $menutypes ); $limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' ); $limitstart = $mainframe->getUserStateFromRequest( 'com_menus.limitstart', 'limitstart', 0, 'int' ); jimport('joomla.html.pagination'); $pagination = new JPagination( $total, $limitstart, $limit ); return $pagination; } /** * Get a list of the menu records associated with the type * @param string The menu type * @return array An array of records as objects */ function getMenuItems() { $table = & $this->getTable(); if ($table->menutype == '') { $table->menutype = JRequest::getString('menutype'); } $db = &$this->getDBO(); $query = 'SELECT a.name, a.id' . ' FROM #__menu AS a' . ' WHERE a.menutype = ' . $db->Quote( $table->menutype ) . ' ORDER BY a.name'; $db->setQuery( $query ); $result = $db->loadObjectList(); return $result; } /** * Get a list of the menu records associated with the type * @param string The menu type * @return array An array of records as objects */ function getModules( $type='' ) { if ($type == '') { $type = $this->_table->menutype; } $db = &$this->getDBO(); $query = 'SELECT id, title, params' . ' FROM #__modules' . ' WHERE module = "mod_mainmenu"' . ' AND params LIKE ' . $db->Quote( '%menutype=' . $type . '%' ); $db->setQuery( $query ); $temp = $db->loadObjectList(); $result = array(); $n = count( $temp ); for ($i = 0; $i < $n; $i++) { $params = new JParameter( $temp[$i]->params ); if ($params->get( 'menutype' ) == $type) { $result[] = $temp[$i]; } } return $result; } /** * Checks if the menu can be deleted * @param string The menu type * @return boolean */ function canDelete( $type='' ) { if ($type == '') { $type = $this->_table->menutype; } if ($type == 'mainmenu') { $this->setError( JText::_( 'WARNDELMAINMENU' ) ); return false; } return true; } /** * Deletes menu type and associations * @param string The id of the menu type * @return boolean */ function delete( $id = 0 ) { $table = &$this->getTable(); if ($id != 0) { $table->load( $id ); } $db = &$this->getDBO(); // Delete Associations if (!$this->deleteByType( $table->menutype )) { $this->setError( $this->getError() ); return false; } // TODO: Should invoke JModuleModel::delete to delete the actual module $moduleTable= &JTable::getInstance( 'module'); $items = &$this->getModules( $table->menutype ); $modulesIds = array(); foreach ($items as $item) { if (!$moduleTable->delete( $item->id )) { $this->setError( $moduleTable->getErrorMsg() ); return false; } $modulesIds[] = (int) $item->id; } if (count( $modulesIds )) { $query = 'DELETE FROM #__modules_menu' . ' WHERE menuid = '.implode( ' OR moduleid = ', $modulesIds ); $db->setQuery( $query ); if (!$db->query()) { $this->setError( $menuTable->getErrorMsg() ); return false; } } $result = $table->delete(); return $result; } /** * Delete menu items by type */ function deleteByType( $type = '' ) { if (!$type) { return false; } $db = &$this->getDBO(); $query = 'DELETE FROM #__menu' . ' WHERE menutype = '.$db->Quote( $type ); $db->setQuery( $query ); if (!$db->query()) { $this->setError( $menuTable->getErrorMsg() ); return false; } return true; } }elracodelangela/administrator/components/com_menus/helpers/0000755000176700017710000000000011061563561025121 5ustar essawireessawireelracodelangela/administrator/components/com_menus/helpers/helper.php0000755000176700017710000001006511061563420027110 0ustar essawireessawiresetQuery( $query ); return $db->loadObjectList(); } /** * Get a list of the menutypes * @return array An array of menu type names */ function getMenuTypes() { $db = &JFactory::getDBO(); $query = 'SELECT menutype' . ' FROM #__menu_types'; $db->setQuery( $query ); return $db->loadResultArray(); } /** * Gets a list of components that can link to the menu */ function getComponentList() { $db = &JFactory::getDBO(); $query = 'SELECT c.id, c.name, c.link, c.option' . ' FROM #__components AS c' . ' WHERE c.link <> "" AND parent = 0' . ' ORDER BY c.name'; $db->setQuery( $query ); $result = $db->loadObjectList( ); return $result; } /** * Build the select list for parent menu item */ function Parent( &$row ) { $db =& JFactory::getDBO(); // If a not a new item, lets set the menu item id if ( $row->id ) { $id = ' AND id != '.(int) $row->id; } else { $id = null; } // In case the parent was null if (!$row->parent) { $row->parent = 0; } // get a list of the menu items // excluding the current menu item and its child elements $query = 'SELECT m.*' . ' FROM #__menu m' . ' WHERE menutype = '.$db->Quote($row->menutype) . ' AND published != -2' . $id . ' ORDER BY parent, ordering'; $db->setQuery( $query ); $mitems = $db->loadObjectList(); // establish the hierarchy of the menu $children = array(); if ( $mitems ) { // first pass - collect children foreach ( $mitems as $v ) { $pt = $v->parent; $list = @$children[$pt] ? $children[$pt] : array(); array_push( $list, $v ); $children[$pt] = $list; } } // second pass - get an indent list of the items $list = JHTML::_('menu.treerecurse', 0, '', array(), $children, 9999, 0, 0 ); // assemble menu items to the array $mitems = array(); $mitems[] = JHTML::_('select.option', '0', JText::_( 'Top' ) ); foreach ( $list as $item ) { $mitems[] = JHTML::_('select.option', $item->id, '   '. $item->treename ); } $output = JHTML::_('select.genericlist', $mitems, 'parent', 'class="inputbox" size="10"', 'value', 'text', $row->parent ); return $output; } /** * build the select list for target window */ function Target( &$row ) { $click[] = JHTML::_('select.option', '0', JText::_( 'Parent Window With Browser Navigation' ) ); $click[] = JHTML::_('select.option', '1', JText::_( 'New Window With Browser Navigation' ) ); $click[] = JHTML::_('select.option', '2', JText::_( 'New Window Without Browser Navigation' ) ); $target = JHTML::_('select.genericlist', $click, 'browserNav', 'class="inputbox" size="4"', 'value', 'text', intval( $row->browserNav ) ); return $target; } /** * build the select list for target window */ function Published( &$row ) { $put[] = JHTML::_('select.option', '0', JText::_( 'No' )); $put[] = JHTML::_('select.option', '1', JText::_( 'Yes' )); // If not a new item, trash is not an option if ( !$row->id ) { $row->published = 1; } $published = JHTML::_('select.radiolist', $put, 'published', '', 'value', 'text', $row->published ); return $published; } }elracodelangela/administrator/components/com_menus/helpers/index.html0000755000176700017710000000005411061563420027112 0ustar essawireessawireelracodelangela/administrator/components/com_menus/index.html0000755000176700017710000000005411061563416025455 0ustar essawireessawireelracodelangela/administrator/components/com_menus/views/0000755000176700017710000000000011061563561024614 5ustar essawireessawireelracodelangela/administrator/components/com_menus/views/item/0000755000176700017710000000000011061563561025552 5ustar essawireessawireelracodelangela/administrator/components/com_menus/views/item/index.html0000755000176700017710000000005411061563417027551 0ustar essawireessawireelracodelangela/administrator/components/com_menus/views/item/tmpl/0000755000176700017710000000000011061563561026526 5ustar essawireessawireelracodelangela/administrator/components/com_menus/views/item/tmpl/form.php0000755000176700017710000002047011061563417030210 0ustar essawireessawire

    name; ?>

    description; ?>
    item->id) { ?>
    : item->id; ?>
    :
    :
    : lists->disabled;?> />
    : menutypes, 'menutype', 'class="inputbox" size="1"', 'menutype', 'title', $this->item->menutype );?>
    : item ); ?>
    : lists->published ?>
    : item, $this->item->id ); ?>
    : item ); ?>
    : item ); ?>
    pane->startPane("menu-pane"); echo $this->pane->startPanel(JText :: _('Parameters - Basic'), "param-page"); echo $this->urlparams->render('urlparams'); if(count($this->params->getParams('params'))) : echo $this->params->render('params'); endif; if(!count($this->params->getNumParams('params')) && !count($this->urlparams->getNumParams('urlparams'))) : echo "
    ".JText::_('There are no parameters for this item')."
    "; endif; echo $this->pane->endPanel(); if($params = $this->advanced->render('params')) : echo $this->pane->startPanel(JText :: _('Parameters - Advanced'), "advanced-page"); echo $params; echo $this->pane->endPanel(); endif; if ($this->comp && ($params = $this->comp->render('params'))) : echo $this->pane->startPanel(JText :: _('Parameters - Component'), "component-page"); echo $params; echo $this->pane->endPanel(); endif; if ($this->sysparams && ($params = $this->sysparams->render('params'))) : echo $this->pane->startPanel(JText :: _('Parameters - System'), "system-page"); echo $params; echo $this->pane->endPanel(); endif; echo $this->pane->endPane(); ?>
    item->linkfield; ?>
    elracodelangela/administrator/components/com_menus/views/item/tmpl/index.html0000755000176700017710000000005411061563417030525 0ustar essawireessawireelracodelangela/administrator/components/com_menus/views/item/tmpl/type.php0000755000176700017710000000621511061563417030227 0ustar essawireessawire
    elracodelangela/administrator/components/com_menus/views/item/view.php0000755000176700017710000001326711061563417027251 0ustar essawireessawire_layout = 'form'; $item = &$this->get('Item'); // clean item data JFilterOutput::objectHTMLSafe( $item, ENT_QUOTES, '' ); // Set toolbar items for the page if (!$item->id) { JToolBarHelper::title( JText::_( 'Menu Item' ) .': [ '. JText::_( 'New' ) .' ]', 'menu.png' ); } else { JToolBarHelper::title( JText::_( 'Menu Item' ) .': [ '. JText::_( 'Edit' ) .' ]', 'menu.png' ); } JToolBarHelper::save(); JToolBarHelper::apply(); if ($item->id) { // for existing items the button is renamed `close` JToolBarHelper::cancel( 'cancelItem', 'Close' ); } else { JToolBarHelper::cancel('cancelItem'); } JToolBarHelper::help( 'screen.menus.edit' ); // Load component language files $component = &$this->get('Component'); $lang->load($component->option, JPATH_ADMINISTRATOR); // Initialize variables $urlparams = $this->get( 'UrlParams' ); $params = $this->get( 'StateParams' ); $sysparams = $this->get( 'SystemParams' ); $advanced = $this->get( 'AdvancedParams' ); $component = $this->get( 'ComponentParams' ); $name = $this->get( 'StateName' ); $description = $this->get( 'StateDescription' ); $menuTypes = MenusHelper::getMenuTypeList(); $components = MenusHelper::getComponentList(); JHTML::_('behavior.tooltip'); $document = & JFactory::getDocument(); if ($item->id) { $document->setTitle(JText::_( 'Menu Item' ) .': ['. JText::_( 'Edit' ) .']'); } else { $document->setTitle(JText::_( 'Menu Item' ) .': ['. JText::_( 'New' ) .']'); } // Was showing up null in some cases.... if (!$item->published) { $item->published = 0; } $lists = new stdClass(); $lists->published = MenusHelper::Published($item); $lists->disabled = ($item->type != 'url' ? 'readonly="true"' : ''); $item->expansion = null; if ($item->type != 'url') { $lists->disabled = 'readonly="true"'; $item->linkfield = ''; if (($item->id) && ($item->type == 'component') && (isset($item->linkparts['option']))) { $item->expansion = '&expand='.trim(str_replace('com_', '', $item->linkparts['option'])); } } else { $lists->disabled = null; $item->linkfield = null; } $this->assignRef('lists' , $lists); $this->assignRef('item' , $item); $this->assignRef('urlparams', $urlparams); $this->assignRef('sysparams', $sysparams); $this->assignRef('params' , $params); $this->assignRef('advanced' , $advanced); $this->assignRef('comp' , $component); $this->assignRef('menutypes', $menuTypes); $this->assignRef('name' , $name); $this->assignRef('description', $description); // Add slider pane // TODO: allowAllClose should default true in J!1.6, so remove the array when it does. $pane = &JPane::getInstance('sliders', array('allowAllClose' => true)); $this->assignRef('pane', $pane); parent::display($tpl); } function type($tpl = null) { JRequest::setVar( 'hidemainmenu', 1 ); global $mainframe; $lang =& JFactory::getLanguage(); $this->_layout = 'type'; $item = &$this->get('Item'); // Set toolbar items for the page if (!$item->id) { JToolBarHelper::title( JText::_( 'Menu Item' ) .': [ '. JText::_( 'New' ) .' ]', 'menu.png' ); } else { JToolBarHelper::title( JText::_( 'Change Menu Item' ), 'menu.png' ); } // Set toolbar items for the page JToolBarHelper::cancel('view'); JToolBarHelper::help( 'screen.menus.edit' ); // Add scripts and stylesheets to the document $document = & JFactory::getDocument(); if($lang->isRTL()){ $document->addStyleSheet('components/com_menus/assets/type_rtl.css'); } else { $document->addStyleSheet('components/com_menus/assets/type.css'); } JHTML::_('behavior.tooltip'); // Load component language files $components = MenusHelper::getComponentList(); $n = count($components); for($i = 0; $i < $n; $i++) { $path = JPATH_SITE.DS.'components'.DS.$components[$i]->option.DS.'views'; $components[$i]->legacy = !is_dir($path); $lang->load($components[$i]->option, JPATH_ADMINISTRATOR); } // Initialize variables $item = &$this->get('Item'); $expansion = &$this->get('Expansion'); $component = &$this->get('Component'); $name = $this->get( 'StateName' ); $description = $this->get( 'StateDescription' ); $menuTypes = MenusHelper::getMenuTypeList(); // Set document title if ($item->id) { $document->setTitle(JText::_( 'Menu Item' ) .': ['. JText::_( 'Edit' ) .']'); } else { $document->setTitle(JText::_( 'Menu Item' ) .': ['. JText::_( 'New' ) .']'); } $this->assignRef('item', $item); $this->assignRef('components', $components); $this->assignRef('expansion', $expansion); parent::display($tpl); } } elracodelangela/administrator/components/com_menus/views/menus/0000755000176700017710000000000011061563561025743 5ustar essawireessawireelracodelangela/administrator/components/com_menus/views/menus/index.html0000755000176700017710000000005411061563417027742 0ustar essawireessawireelracodelangela/administrator/components/com_menus/views/menus/tmpl/0000755000176700017710000000000011061563561026717 5ustar essawireessawireelracodelangela/administrator/components/com_menus/views/menus/tmpl/delete.php0000755000176700017710000000224211061563417030675 0ustar essawireessawire
    modules ) : ?> :
      modules as $module ) : ?>
    1. title; ?>
    :
      menuItems as $item) : ?>
    1. name; ?>
    elracodelangela/administrator/components/com_menus/views/menus/tmpl/index.html0000755000176700017710000000005411061563417030716 0ustar essawireessawireelracodelangela/administrator/components/com_menus/views/menus/tmpl/copy.php0000755000176700017710000000367711061563417030422 0ustar essawireessawire
    :



    :


    :
    table->menutype; ?>

    :
      items as $item) : ?>
    1. name; ?>
     
    elracodelangela/administrator/components/com_menus/views/menus/tmpl/default.php0000755000176700017710000000641011061563417031060 0ustar essawireessawire
    menus as $menu) : ?> id; $linkA = 'index.php?option=com_menus&task=view&menutype='. $menu->menutype; ?> ">
     
    pagination->getListFooter(); ?>
    pagination->limitstart + 1 + $i; ?> title; ?> menutype; ?> published; ?> unpublished; ?> trash; ?> modules; ?> id; ?>
    elracodelangela/administrator/components/com_menus/views/menus/tmpl/edit.php0000755000176700017710000000531211061563417030361 0ustar essawireessawire
    isnew) : ?>
    elracodelangela/administrator/components/com_menus/views/menus/view.php0000755000176700017710000000751011061563417027434 0ustar essawireessawire_layout = 'default'; // Set toolbar items for the page JToolBarHelper::title( JText::_( 'Menu Manager' ), 'menumgr.png' ); JToolBarHelper::customX( 'copyMenu', 'copy.png', 'copy_f2.png', 'Copy', true ); JToolBarHelper::customX( 'deleteMenu', 'delete.png', 'delete_f2.png', 'Delete', true ); JToolBarHelper::editListX('editMenu'); JToolBarHelper::addNewX('addMenu'); JToolBarHelper::help( 'screen.menumanager' ); $document = & JFactory::getDocument(); $document->setTitle(JText::_('View Menus')); $limitstart = JRequest::getVar('limitstart', '0', '', 'int'); $menus = &$this->get('Menus'); $pagination = &$this->get('Pagination'); $this->assignRef('menus', $menus); $this->assignRef('pagination', $pagination); $this->assignRef('limitstart', $limitstart); JHTML::_('behavior.tooltip'); parent::display($tpl); } function copyForm($tpl=null) { global $mainframe; $this->_layout = 'copy'; // view data $table = $this->get('Table'); $items = $this->get('MenuItems'); /* * Set toolbar items for the page */ JToolBarHelper::title( JText::_( 'Copy Menu' ) ); JToolBarHelper::custom( 'doCopyMenu', 'copy.png', 'copy_f2.png', 'Copy', false ); JToolBarHelper::cancel(); JToolBarHelper::help( 'screen.menumanager' ); $document = & JFactory::getDocument(); $document->setTitle('Copy Menu Items'); $this->assignRef('items', $items); $this->assignRef('table', $table); parent::display($tpl); } function deleteForm($tpl=null) { global $mainframe; $this->_layout = 'delete'; /* * Set toolbar items for the page */ JToolBarHelper::title( JText::_( 'Menu' ) . ': [ '. JText::_( 'Delete' ) .' ]' ); JToolBarHelper::custom( 'doDeleteMenu', 'delete.png', 'delete_f2.png', 'Delete', false ); JToolBarHelper::cancel(); JToolBarHelper::help( 'screen.menumanager.delete' ); // view data $table = $this->get('Table'); $modules = $this->get('Modules'); $menuItems = $this->get('MenuItems'); $document = & JFactory::getDocument(); $document->setTitle('Confirm Delete Menu Type: ' . $table->menutype ); $this->assignRef('table', $table); $this->assignRef('modules', $modules); $this->assignRef('menuItems', $menuItems); parent::display($tpl); } function editForm($edit,$tpl=null) { JRequest::setVar( 'hidemainmenu', 1 ); global $mainframe; $this->_layout = 'edit'; if($edit) $table = &$this->get('Table'); else $table=& JTable::getInstance('menuTypes'); /* * Set toolbar items for the page */ $text = ( ($table->id != 0) ? JText::_( 'Edit' ) : JText::_( 'New' ) ); JToolBarHelper::title( JText::_( 'Menu Details' ).': [ '. $text.' ]', 'menumgr.png' ); JToolBarHelper::custom( 'savemenu', 'save.png', 'save_f2.png', 'Save', false ); JToolBarHelper::cancel(); JToolBarHelper::help( 'screen.menumanager.new' ); $this->assignRef('row', $table); $this->assign('isnew', ($table->id == 0)); JHTML::_('behavior.tooltip'); parent::display($tpl); } } elracodelangela/administrator/components/com_menus/views/list/0000755000176700017710000000000011061563561025567 5ustar essawireessawireelracodelangela/administrator/components/com_menus/views/list/index.html0000755000176700017710000000005411061563417027566 0ustar essawireessawireelracodelangela/administrator/components/com_menus/views/list/tmpl/0000755000176700017710000000000011061563561026543 5ustar essawireessawireelracodelangela/administrator/components/com_menus/views/list/tmpl/index.html0000755000176700017710000000005411061563417030542 0ustar essawireessawireelracodelangela/administrator/components/com_menus/views/list/tmpl/move.php0000755000176700017710000000270111061563417030225 0ustar essawireessawire
    :
    MenuList ?>

    :
      items as $item ) : ?>
    1. name; ?>
    items as $item ) : ?>
    elracodelangela/administrator/components/com_menus/views/list/tmpl/copy.php0000755000176700017710000000267211061563417030240 0ustar essawireessawire
    :
    MenuList; ?>

    :
      items as $item ) : ?>
    1. name; ?>
    items as $item ) : ?>
    elracodelangela/administrator/components/com_menus/views/list/tmpl/default.php0000755000176700017710000001165011061563417030706 0ustar essawireessawire
    : lists['levellist']; echo $this->lists['state']; ?>
    items ); $rows = &$this->items; foreach ($rows as $row) : $access = JHTML::_('grid.access', $row, $i ); $checked = JHTML::_('grid.checkedout', $row, $i ); $published = JHTML::_('grid.published', $row, $i ); ?> ">
    lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> items ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?> lists['order_Dir'], @$this->lists['order'] ); ?>
    pagination->getListFooter(); ?>
    pagination->limitstart;?> user->get('id'), $row->checked_out ) ) : ?> treename; ?> treename; ?> home == 1 ) : ?> <?php echo JText::_( 'Default' ); ?>   pagination->orderUpIcon( $i, $row->parent == 0 || $row->parent == @$rows[$i-1]->parent, 'orderup', 'Move Up', $this->ordering); ?> pagination->orderDownIcon( $i, $n, $row->parent == 0 || $row->parent == @$rows[$i+1]->parent, 'orderdown', 'Move Down', $this->ordering ); ?> ordering ? '' : 'disabled="disabled"'; ?> class="text_area" style="text-align: center" /> type == 'component') ? $row->view : $row->type; ?> id; ?>
    elracodelangela/administrator/components/com_menus/views/list/view.php0000755000176700017710000001421511061563417027260 0ustar essawireessawire_layout = 'default'; /* * Set toolbar items for the page */ $menutype = $mainframe->getUserStateFromRequest( 'com_menus.menutype', 'menutype', 'mainmenu', 'string' ); JToolBarHelper::title( JText::_( 'MENU ITEM MANAGER' ) .': ['.$menutype.']', 'menu.png' ); $bar =& JToolBar::getInstance('toolbar'); $bar->appendButton( 'Link', 'menus', 'Menus', "index.php?option=com_menus" ); JToolBarHelper::makeDefault( 'setdefault' ); JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::customX( 'move', 'move.png', 'move_f2.png', 'Move', true ); JToolBarHelper::customX( 'copy', 'copy.png', 'copy_f2.png', 'Copy', true ); JToolBarHelper::trash(); JToolBarHelper::editListX(); JToolBarHelper::addNewX('newItem'); JToolBarHelper::help( 'screen.menus' ); $document = & JFactory::getDocument(); $document->setTitle(JText::_('View Menu Items')); $limitstart = JRequest::getVar('limitstart', '0', '', 'int'); $items = &$this->get('Items'); $pagination = &$this->get('Pagination'); $lists = &$this->_getViewLists(); $user = &JFactory::getUser(); // Ensure ampersands and double quotes are encoded in item titles foreach ($items as $i => $item) { $treename = $item->treename; $treename = JFilterOutput::ampReplace($treename); $treename = str_replace('"', '"', $treename); $items[$i]->treename = $treename; } //Ordering allowed ? $ordering = ($lists['order'] == 'm.ordering'); JHTML::_('behavior.tooltip'); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); $this->assignRef('lists', $lists); $this->assignRef('user', $user); $this->assignRef('menutype', $menutype); $this->assignRef('ordering', $ordering); $this->assignRef('limitstart', $limitstart); parent::display($tpl); } function copyForm($tpl=null) { global $mainframe; $this->_layout = 'copy'; /* * Set toolbar items for the page */ JToolBarHelper::title( JText::_( 'Copy Menu Items' ) ); JToolBarHelper::custom( 'doCopy', 'copy.png', 'copy_f2.png', 'Copy', false ); JToolBarHelper::cancel('cancelItem'); JToolBarHelper::help( 'screen.menus' ); $document = & JFactory::getDocument(); $document->setTitle('Copy Menu Items'); $menutype = $mainframe->getUserStateFromRequest( 'com_menus.menutype', 'menutype', 'mainmenu', 'string' ); // Build the menutypes select list $menuTypes = MenusHelper::getMenuTypes(); foreach ( $menuTypes as $menuType ) { $menu[] = JHTML::_('select.option', $menuType, $menuType ); } $MenuList = JHTML::_('select.genericlist', $menu, 'menu', 'class="inputbox" size="10"', 'value', 'text', null ); $items = &$this->get('ItemsFromRequest'); $this->assignRef('menutype', $menutype); $this->assignRef('items', $items); $this->assignRef('menutypes', $menuTypes); $this->assignRef('MenuList', $MenuList); parent::display($tpl); } function moveForm($tpl=null) { global $mainframe; $this->_layout = 'move'; /* * Set toolbar items for the page */ JToolBarHelper::title( JText::_( 'Menu Items' ) . ': [ '. JText::_( 'Move' ) .' ]' ); JToolBarHelper::custom( 'doMove', 'move.png', 'move_f2.png', 'Move', false ); JToolBarHelper::cancel('cancelItem'); JToolBarHelper::help( 'screen.menus' ); $document = & JFactory::getDocument(); $document->setTitle('Copy Menu Items'); $menutype = $mainframe->getUserStateFromRequest( 'com_menus.menutype', 'menutype', 'mainmenu', 'string' ); // Build the menutypes select list $menuTypes = MenusHelper::getMenuTypes(); foreach ( $menuTypes as $menuType ) { $menu[] = JHTML::_('select.option', $menuType, $menuType ); } $MenuList = JHTML::_('select.genericlist', $menu, 'menu', 'class="inputbox" size="10"', 'value', 'text', null ); $items = &$this->get('ItemsFromRequest'); $this->assignRef('menutype', $menutype); $this->assignRef('items', $items); $this->assignRef('menutypes', $menuTypes); $this->assignRef('MenuList', $MenuList); parent::display($tpl); } function &_getViewLists() { global $mainframe; $db =& JFactory::getDBO(); $menutype = $mainframe->getUserStateFromRequest( "com_menus.menutype", 'menutype', 'mainmenu', 'string' ); $filter_order = $mainframe->getUserStateFromRequest( "com_menus.$menutype.filter_order", 'filter_order', 'm.ordering', 'cmd' ); $filter_order_Dir = $mainframe->getUserStateFromRequest( "com_menus.$menutype.filter_order_Dir", 'filter_order_Dir', 'ASC', 'word' ); $filter_state = $mainframe->getUserStateFromRequest( "com_menus.$menutype.filter_state", 'filter_state', '', 'word' ); $levellimit = $mainframe->getUserStateFromRequest( "com_menus.$menutype.levellimit", 'levellimit', 10, 'int' ); $search = $mainframe->getUserStateFromRequest( "com_menus.$menutype.search", 'search', '', 'string' ); $search = JString::strtolower( $search ); // level limit filter $lists['levellist'] = JHTML::_('select.integerlist', 1, 20, 1, 'levellimit', 'size="1" onchange="document.adminForm.submit();"', $levellimit ); // state filter $lists['state'] = JHTML::_('grid.state', $filter_state ); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search']= $search; return $lists; } } elracodelangela/administrator/components/com_menus/views/index.html0000755000176700017710000000005411061563417026613 0ustar essawireessawireelracodelangela/administrator/components/com_menus/admin.menus.php0000755000176700017710000000167311061563416026417 0ustar essawireessawire 'viewMenus') ); $controller->registerTask('apply', 'save'); $controller->execute( JRequest::getCmd( 'task' ) ); $controller->redirect();elracodelangela/administrator/components/com_menus/controller.php0000755000176700017710000005215211061563416026362 0ustar essawireessawiregetModel( 'Item' ); $view =& $this->getView( 'Item' ); $view->setModel( $model, true ); // Set the layout and display $view->setLayout('type'); $view->type(); } /** * Edit menu item wizard */ function type() { JRequest::setVar( 'edit', true ); $model =& $this->getModel( 'Item' ); $view =& $this->getView( 'Item' ); $view->setModel( $model, true ); // Set the layout and display $view->setLayout('type'); $view->type(); } /** * Edits a menu item */ function edit() { JRequest::setVar( 'edit', true ); $model =& $this->getModel( 'Item' ); $model->checkout(); $view =& $this->getView( 'Item' ); $view->setModel( $model, true ); // Set the layout and display $view->setLayout('form'); $view->edit(); } /** * Saves a menu item */ function save() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $cache = & JFactory::getCache('com_content'); $cache->clean(); $model =& $this->getModel( 'Item' ); $post = JRequest::get('post'); // allow name only to contain html $post['name'] = JRequest::getVar( 'name', '', 'post', 'string', JREQUEST_ALLOWHTML ); $model->setState( 'request', $post ); if ($model->store()) { $msg = JText::_( 'Menu item Saved' ); } else { $msg = JText::_( 'Error Saving Menu item' ); } $item =& $model->getItem(); switch ( $this->_task ) { case 'apply': $this->setRedirect( 'index.php?option=com_menus&menutype='.$item->menutype.'&task=edit&cid[]='.$item->id.'' , $msg ); break; case 'save': default: $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$item->menutype, $msg ); break; } } /** * Cancels an edit operation */ function cancelItem() { global $mainframe; JRequest::checkToken() or jexit( 'Invalid Token' ); $menutype = $mainframe->getUserStateFromRequest( 'com_menus.menutype', 'menutype', 'mainmenu', 'string' ); $model = $this->getModel('item'); $model->checkin(); $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menutype); } /** * Cancels an edit operation */ function cancel() { $this->setRedirect( 'index.php?option=com_menus'); } /** * Form for copying item(s) to a specific menu */ function copy() { $model =& $this->getModel( 'List' ); $view =& $this->getView( 'List' ); $view->setModel( $model, true ); $view->copyForm(); } /** * Save the item(s) to the menu selected */ function doCopy() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get some variables from the request $menu = JRequest::getString( 'menu', '', 'post'); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); //Check to see of a menu was selected to copy the items too if (empty($menu)) { $msg = JText::_('Please select a menu from the list'); $mainframe->enqueueMessage($msg, 'message'); return $this->execute('copy'); } $model =& $this->getModel( 'List' ); if ($model->copy($cid, $menu)) { $msg = JText::sprintf( 'Menu Items Copied to', count( $cid ), $menu ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Form for moving item(s) to a specific menu */ function move() { $model =& $this->getModel( 'List'); $view =& $this->getView( 'List' ); $view->setModel( $model, true ); $view->moveForm(); } /** * Save the item(s) to the menu selected */ function doMove() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get some variables from the request $menu = JRequest::getVar( 'menu', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); //Check to see if a menu was selected to copy the items too if (empty($menu)) { $msg = JText::_('Please select a menu from the list'); $mainframe->enqueueMessage($msg, 'message'); return $this->execute('move'); } $model =& $this->getModel( 'List' ); if ($model->move($cid, $menu)) { $msg = JText::sprintf( 'Menu Items Moved to', count( $cid ), $menu ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Save the item(s) to the menu selected */ function publish() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get some variables from the request $menu = JRequest::getVar( 'menutype', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $model =& $this->getModel( 'List' ); if ($model->setItemState($cid, 1)) { $msg = JText::sprintf( 'Menu Items Published', count( $cid ) ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Save the item(s) to the menu selected */ function unpublish() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get some variables from the request $menu = JRequest::getVar( 'menutype', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $model =& $this->getModel( 'List' ); if ($model->setItemState($cid, 0)) { $msg = JText::sprintf( 'Menu Items Unpublished', count( $cid ) ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Save the item(s) to the menu selected */ function orderup() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $menu = JRequest::getVar( 'menutype', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); if (isset($cid[0]) && $cid[0]) { $id = $cid[0]; } else { $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, JText::_('No Items Selected') ); return false; } $model =& $this->getModel( 'List' ); if ($model->orderItem($id, -1)) { $msg = JText::_( 'Menu Item Moved Up' ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Save the item(s) to the menu selected */ function orderdown() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $menu = JRequest::getVar( 'menutype', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); if (isset($cid[0]) && $cid[0]) { $id = $cid[0]; } else { $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, JText::_('No Items Selected') ); return false; } $model =& $this->getModel( 'List' ); if ($model->orderItem($id, 1)) { $msg = JText::_( 'Menu Item Moved Down' ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Save the item(s) to the menu selected */ function saveorder() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $menu = JRequest::getVar( 'menutype', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $model =& $this->getModel( 'List' ); if ($model->setOrder($cid, $menu)) { $msg = JText::_( 'New ordering saved' ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Save the item(s) to the menu selected */ function accesspublic() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get some variables from the request $menu = JRequest::getVar( 'menutype', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $model =& $this->getModel( 'List' ); if ($model->setAccess($cid, 0)) { $msg = JText::sprintf( 'Menu Items Set Public', count( $cid ) ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Save the item(s) to the menu selected */ function accessregistered() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get some variables from the request $menu = JRequest::getVar( 'menutype', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $model =& $this->getModel( 'List' ); if ($model->setAccess($cid, 1)) { $msg = JText::sprintf( 'Menu Items Set Registered', count( $cid ) ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Save the item(s) to the menu selected */ function accessspecial() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get some variables from the request $menu = JRequest::getVar( 'menutype', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); $model =& $this->getModel( 'List' ); if ($model->setAccess($cid, 2)) { $msg = JText::sprintf( 'Menu Items Set Special', count( $cid ) ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Save the item(s) to the menu selected */ function setdefault() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get some variables from the request $menu = JRequest::getVar( 'menutype', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); if (isset($cid[0]) && $cid[0]) { $id = $cid[0]; } else { $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, JText::_('No Items Selected') ); return false; } $item =& JTable::getInstance( 'menu' ); $item->load($id); if(!$item->get('published')) { $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, JText::_('The Default Menu Item Must Be Published') ); return false; } $model =& $this->getModel( 'List' ); if ($model->setHome($id)) { $msg = JText::_( 'Default Menu Item Set' ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } function remove() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get some variables from the request $menu = JRequest::getVar( 'menutype', '', 'post', 'string' ); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); JArrayHelper::toInteger($cid); if (!count($cid)) { $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, JText::_('No Items Selected') ); return false; } $model =& $this->getModel( 'List' ); if ($n = $model->toTrash($cid)) { $msg = JText::sprintf( 'Item(s) sent to the Trash', $n ); } else { $msg = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg ); } /** * Save the item(s) to the menu selected */ function view() { $model =& $this->getModel( 'List' ); $view =& $this->getView( 'List' ); $view->setModel( $model, true ); $view->display(); } /** * Controller for view listing menu types and related statical info * @param string The URL option */ function viewMenus() { $view =& $this->getView( 'Menus'); $model =& $this->getModel( 'Menutype' ); $view->setModel( $model, true ); $view->display(); } /** * Controller for view to edit a menu type */ function editMenu() { $view =& $this->getView( 'Menus' ); $model =& $this->getModel( 'Menutype' ); $view->setModel( $model, true ); $view->editForm(true,null); } /** * Controller for view to create a menu type */ function addMenu() { $view =& $this->getView( 'Menus' ); $model =& $this->getModel( 'Menutype' ); $view->setModel( $model, true ); $view->editForm(false,null); } /** * Controller for saving a menu type */ function saveMenu() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $id = JRequest::getVar( 'id', 0, 'post', 'int' ); $oldType =& JTable::getInstance('menutypes' ); $oldType->load( $id ); $menuType =& JTable::getInstance('menutypes'); $menuType->bind( JRequest::get( 'post' ) ); $isNew = ($menuType->id == 0); $isChanged = ($oldType->menutype != $menuType->menutype); if (!$menuType->check()) { JError::raiseWarning( 500, $menuType->getError() ); $this->setRedirect( 'index.php?option=com_menus&task=editMenu', 'Please check your menu settings' ); return false; } if (!$menuType->store()) { JError::raiseWarning( 500, $menuType->getError() ); $this->setRedirect( 'index.php?option=com_menus&task=editMenu', 'Please check your menu settings' ); return false; } if ($isNew) { if ($title = JRequest::getVar( 'module_title', $menuType->menutype, 'post', 'string' )) { $module =& JTable::getInstance( 'module'); $module->title = $title; $module->position = 'left'; $module->module = 'mod_mainmenu'; $module->published = 0; $module->iscore = 0; $module->params = 'menutype='. $menuType->menutype; // check then store data in db if (!$module->check()) { return JError::raiseWarning( 500, $module->getError() ); } if (!$module->store()) { return JError::raiseWarning( 500, $module->getError() ); } $module->checkin(); $module->reorder( 'position='.$db->Quote($module->position) ); // module assigned to show on All pages by default // Clean up possible garbage first $query = 'DELETE FROM #__modules_menu WHERE moduleid = '.(int) $module->id; $db->setQuery( $query ); if (!$db->query()) { return JError::raiseWarning( 500, $db->getError() ); } // ToDO: Changed to become a Joomla! db-object $query = 'INSERT INTO #__modules_menu VALUES ( '.(int) $module->id.', 0 )'; $db->setQuery( $query ); if (!$db->query()) { return JError::raiseWarning( 500, $db->getError() ); } } $msg = JText::sprintf( 'New Menu created', $menuType->menutype ); } else if ($isChanged) { $oldTerm = $oldType->menutype; $newTerm = $menuType->menutype; // change menutype being of all mod_mainmenu modules calling old menutype $query = 'SELECT id' . ' FROM #__modules' . ' WHERE module = "mod_mainmenu"' . ' AND params LIKE "%menutype='.$db->getEscaped($oldTerm).'%"' ; $db->setQuery( $query ); $modules = $db->loadResultArray(); foreach ($modules as $id) { $row =& JTable::getInstance('module'); $row->load( $id ); $row->params = str_replace( $oldTerm, $newTerm, $row->params ); // check then store data in db if ( !$row->check() ) { return JError::raiseWarning( 500, $db->getError() ); } if ( !$row->store() ) { return JError::raiseWarning( 500, $db->getError() ); } $row->checkin(); } // change menutype of all menuitems using old menutype $query = 'UPDATE #__menu' . ' SET menutype = '.$db->Quote($newTerm) . ' WHERE menutype = '.$db->Quote($oldTerm) ; $db->setQuery( $query ); $db->query(); $msg = JText::_( 'Menu Items & Modules updated' ); } $this->setRedirect( 'index.php?option=com_menus', $msg ); } /** * Controller for a view to confirm the deletion of a menu type */ function deleteMenu() { $view =& $this->getView( 'Menus' ); $model =& $this->getModel( 'Menutype' ); $view->setModel( $model, true ); $view->deleteForm(); } /** * Delete a menu */ function doDeleteMenu() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $id = JRequest::getVar( 'id', 0, '', 'int' ); if ($id <= 0) { JError::raiseWarning( 500, JText::_( 'Invalid ID provided' ) ); $this->setRedirect( 'index.php?option=com_menus' ); return false; } $model =& $this->getModel( 'Menutype' ); if (!$model->canDelete()) { JError::raiseWarning( 500, $model->getError() ); $this->setRedirect( 'index.php?option=com_menus' ); return false; } $err = null; if (!$model->delete()) { $err = $model->getError(); } $this->setRedirect( 'index.php?option=com_menus', $err ); } /** * Compiles a list of the articles you have selected to Copy */ function copyMenu() { $view =& $this->getView( 'Menus' ); $model =& $this->getModel( 'Menutype' ); $view->setModel( $model, true ); $view->copyForm(); } /** * Copies a complete menu, all its items and creates a new module, using the name speified */ function doCopyMenu() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $db =& JFactory::getDBO(); $type = JRequest::getVar( 'type', '', 'post', 'string' ); $menu_name = JRequest::getVar( 'menu_name', 'New Menu', 'post', 'string' ); $module_name = JRequest::getVar( 'module_name', 'New Module', 'post', 'string' ); // check for unique menutype for new menu copy $query = 'SELECT params' . ' FROM #__modules' . ' WHERE module = "mod_mainmenu"'; $db->setQuery( $query ); $menus = $db->loadResultArray(); foreach ( $menus as $menu ) { $params = new JParameter( $menu ); if ( $params->get('menutype') == $menu_name ) { JError::raiseWarning( 500, JText::_( 'ERRORMENUNAMEEXISTS' ) ); $this->setRedirect( 'index.php?option=com_menus' ); return; } } // copy the menu items $mids = JRequest::getVar( 'mids', array(), 'post', 'array' ); JArrayHelper::toInteger($mids); $total = count( $mids ); $copy =& JTable::getInstance('menu'); $original =& JTable::getInstance('menu'); sort( $mids ); $a_ids = array(); foreach( $mids as $mid ) { $original->load( $mid ); $copy = $original; $copy->id = NULL; $copy->parent = $a_ids[$original->parent]; $copy->menutype = $menu_name; $copy->home = 0; if ( !$copy->check() ) { JError::raiseWarning( 500, $copy->getError() ); $this->setRedirect( 'index.php?option=com_menus' ); return; } if ( !$copy->store() ) { JError::raiseWarning( 500, $copy->getError() ); $this->setRedirect( 'index.php?option=com_menus' ); return; } $a_ids[$original->id] = $copy->id; } // create the module copy $row =& JTable::getInstance('module'); $row->load( 0 ); $row->title = $module_name; $row->iscore = 0; $row->published = 1; $row->position = 'left'; $row->module = 'mod_mainmenu'; $row->params = 'menutype='. $menu_name; if (!$row->check()) { JError::raiseWarning( 500, $db->getError() ); $this->setRedirect( 'index.php?option=com_menus' ); return; } if (!$row->store()) { JError::raiseWarning( 500, $db->getError() ); $this->setRedirect( 'index.php?option=com_menus' ); return; } $row->checkin(); $row->reorder( 'position='.$db->Quote($row->position) ); // module assigned to show on All pages by default // ToDO: Changed to become a Joomla! db-object $query = 'INSERT INTO #__modules_menu' . ' VALUES ( '.(int) $row->id.', 0 )'; $db->setQuery( $query ); if ( !$db->query() ) { JError::raiseWarning( 500, $db->getErrorMsg(true) ); $this->setRedirect( 'index.php?option=com_menus' ); return; //echo "\n"; //$mainframe->close(); } // Insert the menu type $query = 'INSERT INTO `#__menu_types` ( `menutype` , `title` , `description` ) ' . ' VALUES ( '.$db->Quote($menu_name).', '.$db->Quote($menu_name).', "")'; $db->setQuery( $query ); if ( !$db->query() ) { JError::raiseWarning( 500, $db->getErrorMsg(true) ); $this->setRedirect( 'index.php?option=com_menus' ); return; //echo "\n"; //$mainframe->close(); } $msg = JText::sprintf( 'Copy of Menu created', $type, $total ); $mainframe->redirect( 'index.php?option=com_menus', $msg ); } } elracodelangela/administrator/components/com_menus/assets/0000755000176700017710000000000011061563560024760 5ustar essawireessawireelracodelangela/administrator/components/com_menus/assets/images/0000755000176700017710000000000011061563560026225 5ustar essawireessawireelracodelangela/administrator/components/com_menus/assets/images/page.gif0000755000176700017710000000010311061563416027625 0ustar essawireessawireGIF89a U!,π0sauo7QH扦*Z;elracodelangela/administrator/components/com_menus/assets/images/minusbottom.gif0000755000176700017710000000040311061563416031274 0ustar essawireessawireGIF89a2wwwsss!,2$@hlٲ{H.n;ZP6|[GK(l)%U{@wUmoSht   D& 0  {)h # ( xw'}  $iK!;elracodelangela/administrator/components/com_menus/assets/images/join.gif0000755000176700017710000000007311061563416027656 0ustar essawireessawireGIF89a!,qݼ~;elracodelangela/administrator/components/com_menus/assets/images/blankbottom.gif0000755000176700017710000000031511061563416031232 0ustar essawireessawireGIF89awwwsss!,J$@hlٲ+t]@@Ɓa@$.,Hd Ss 1}N/I,D(>&6t!/g(W%O#L!,dib:Zl{])`MB`hUp@ E1mQX>E`T5[ /D9(%gFl"zU~OV5lw"5''*!;elracodelangela/administrator/components/com_menus/assets/images/index.html0000755000176700017710000000005411061563416030224 0ustar essawireessawireelracodelangela/administrator/components/com_menus/assets/images/nolines_minus.gif0000755000176700017710000000031111061563416031574 0ustar essawireessawireGIF89awwwsss!,F`$dih)o DaB+: 0 ` (@A!x@ljx*;elracodelangela/administrator/components/com_menus/assets/images/minus.gif0000755000176700017710000000031411061563416030050 0ustar essawireessawireGIF89awwwsss!,I$dih)oq C/:08 p `JCi,|4l8bLY|NO;elracodelangela/administrator/components/com_menus/assets/images/folderopen.gif0000755000176700017710000000061611061563416031057 0ustar essawireessawireGIF89a鸽篲⡏]][ZYZWVUTSU}S}RzPzOzNwMwLtKrJqInHmGiDeA~_>^=O0N/I,D(>&7t"6t!/g(W%O#L"K!8,@@,p6`.WkB&S )'!elracodelangela/administrator/components/com_menus/assets/type_rtl.css0000755000176700017710000000455611061563416027351 0ustar essawireessawire/* ---- Basic tree styles ------------------- */ .jtree ul, .jtree li { margin: 0; padding: 0; list-style: none; } /* ---- Tree layout ------------------------- */ .jtree ul { margin-right: 20px; } .jtree li { background: url(rtl_images/line.gif) right repeat-y; } .jtree li.last { background-image: none; } .jtree div { height: 100%; padding: 4px 40px 4px 0px; background-repeat: no-repeat; background-position: right bottom; } .jtree span { display: block; position: absolute; width: 18px; height: 18px; margin: 0 -20px 0 0px; background-repeat: no-repeat; border: 0 none; } .jtree a {} .jtree .root { padding-right: 20px;} .jtree .root span { background: url(rtl_images/base.gif) no-repeat right bottom; } .jtree .node { background-image: url(rtl_images/plus.gif); } .jtree .node span { background-image: url(rtl_images/folder.gif); } .jtree li.last .node { background-image: url(rtl_images/plusbottom.gif); } .jtree li.last .node span { background-image: url(rtl_images/folder.gif); } .jtree .node-open { background-image: url(rtl_images/minus.gif); } .jtree .node-open span { background-image: url(rtl_images/folderopen.gif); } .jtree li.last .node-open { background-image: url(rtl_images/minusbottom.gif); } .jtree li.last .node-open span { background-image: url(rtl_images/folderopen.gif); } .jtree .leaf { background-image: url(rtl_images/join.gif); } .jtree .leaf span { background-image: url(rtl_images/page.gif); } .jtree li.last .leaf { background-image: url(rtl_images/joinbottom.gif); } .jtree li.last .leaf span { background-image: url(rtl_images/page.gif); } .jtree .base { background-image: url(rtl_images/blank.gif); } .jtree .base span { background-image: url(rtl_images/folder.gif); } .jtree li.last .base { background-image: url(rtl_images/blankbottom.gif); } .jtree li.last .base span { background-image: url(rtl_images/folder.gif); } .jtree ul .node { padding: 4px 20px 4px 0px;} .jtree ul .node span { display: none; } .jtree ul .node-open { padding: 4px 20px 4px 0px; } .jtree ul .node-open span { display: none; } .jtree ul li.last .node span { display: none; } .jtree ul li.last .node span { padding: 4px 20px 4px 0px; } .jtree ul li.last .node-open span { display: none; } .jtree ul li.last .node-open span { padding: 4px 20px 4px 0px; } /* ---- Specific layout ------------------------- */ #internal-node {} #external-node {} #separator-node {} #link-node {} elracodelangela/administrator/components/com_menus/assets/rtl_images/0000755000176700017710000000000011061563560027106 5ustar essawireessawireelracodelangela/administrator/components/com_menus/assets/rtl_images/page.gif0000755000176700017710000000010311061563416030506 0ustar essawireessawireGIF89a U!,3saPUD扦;elracodelangela/administrator/components/com_menus/assets/rtl_images/minusbottom.gif0000755000176700017710000000040211061563416032154 0ustar essawireessawireGIF89a2sssҩwww!,2$$Dh s\ÿV5LmT6UOWtI{R֩6m^W"t!,AaxΊ8|.i('yx$   ljjQ!;elracodelangela/administrator/components/com_menus/assets/rtl_images/join.gif0000755000176700017710000000007411061563416030540 0ustar essawireessawireGIF89a!,qݼK;elracodelangela/administrator/components/com_menus/assets/rtl_images/blankbottom.gif0000755000176700017710000000031611061563416032114 0ustar essawireessawireGIF89assswww!,K$Ch Gt]8B$HH ]h4R`BOTd`]dO%EQpl6|N;elracodelangela/administrator/components/com_menus/assets/rtl_images/line.gif0000755000176700017710000000011011061563416030517 0ustar essawireessawireGIF89a!,˦ Ëltk^v]!5F%t6+׺M;elracodelangela/administrator/components/com_menus/assets/rtl_images/node.gif0000755000176700017710000000011411061563416030521 0ustar essawireessawireGIF89a!,#T%OmGiDtKI,wMqI>&\(W/g˽D(}R6t!Y鸅VN/zO#L!,'^i8z4!&Z]KhlL p,`d$=P6!` DttdmJfd y} U^Fysi y  *A+((*!;elracodelangela/administrator/components/com_menus/assets/rtl_images/index.html0000755000176700017710000000005411061563416031105 0ustar essawireessawireelracodelangela/administrator/components/com_menus/assets/rtl_images/nolines_minus.gif0000755000176700017710000000031111061563416032455 0ustar essawireessawireGIF89assswwwҭ!,F`$dih,o E x8!<^ƥ 20"D$Bp,J j);elracodelangela/administrator/components/com_menus/assets/rtl_images/minus.gif0000755000176700017710000000031411061563416030731 0ustar essawireessawireGIF89aεsss҄www!,I$dihlo*YA)X|N7;elracodelangela/administrator/components/com_menus/assets/rtl_images/folderopen.gif0000755000176700017710000000061611061563416031740 0ustar essawireessawireGIF89a鸽篲⡏]][ZYZWVUTSU}S}RzPzOzNwMwLtKrJqInHmGiDeA~_>^=O0N/I,D(>&7t"6t!/g(W%O#L"K!8,@@,p6`.WkB&S )'! Menus Manager Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Menu Manager elracodelangela/administrator/components/com_menus/config.xml0000755000176700017710000000031211061563417025445 0ustar essawireessawire elracodelangela/administrator/error_log0000644000176700017710000000065211076171605021225 0ustar essawireessawire[17-Oct-2008 14:15:47] PHP Warning: POST Content-Length of 21143787 bytes exceeds the limit of 8388608 bytes in Unknown on line 0 [17-Oct-2008 14:20:21] PHP Warning: fileowner() [function.fileowner]: stat failed for /home/essawire/public_html/elracodelangela/tmp/d0b250214cec8345666272a10c0b6232 in /home/essawire/public_html/elracodelangela/libraries/joomla/filesystem/path.php on line 212 elracodelangela/administrator/images/0000755000176700017710000000000011061563570020552 5ustar essawireessawireelracodelangela/administrator/images/addusers.png0000755000176700017710000000365411061563437023107 0ustar essawireessawirePNG  IHDR00` sBITOPLTEl4 $#z xPdAǩi@qHώ6Qr33ߥfK1{?`ฆo={7 fuJwőX\J_: *S[3R1t}tة|S*vME̖yMhZmWzxW!JrIoJ&,1NiBK,ҖW~RRc1!nd?]u]ŁJ(>BhV#e̙D'ɨōc;iBuiƊrǧr?Q2qq%X4u``vT3vge3//"si&Z8nI,G"LLVz zI)tZEԥ<*wZ齊ff]>KFD"˴-ktRNS4~ pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATx[X5H녛aj#R"$тHb"P7,jYh}vGw̙6GN?SgC9 LUrux<~%oPXA v s]ܳ_q\Z<)! VU8<myG,5kY.d6,'?5"֘PaoHVY`}|&&Q'5ڃ'qb+ʚj(@ MU:t `X]8$vTȔܵssa%(^DI/L.()*ҫp{Q2<`ϡG͔*[H{ТX=ܫV(Bl.l#x"8BlpfQI+`h7XZ&*%gzrýmr<E ,uq&ZJML-:\RtՏm#`K`TT@c?+h9ΆuOEz ^en? Pa lG .*P 5ѥy?o"Y8u@)C;/?sw9JC _.,پ絳! h yֻviFKJ$Yt$fY^6 Dw}^3',v5r1|mnrg_ us7e*a,{vOۉs! TUU9YLoq8a%\r53D|Ym<@֣ż)Zpt8#uh4%m;rd0Kdru 1u A`KA,+U "nΜ'+ʓkS'v@`;~>,xֽfffM&o BYE6+IENDB`elracodelangela/administrator/images/person2.png0000755000176700017710000000214711061563437022661 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYs  tIMEx)$sIDATxڍou?δn/B/MQ1"V7L`|11dxR >b|,MkݹЕvdNoDyNv&78{}ygJł/i|QN\F:icSrݡA]D8!4xq1?[ ."u%nډK$01qcvs{K@oy%GZSwc @$MctPIYmסL!E:4*9A+.yĨ阈 (/54E%TK=>:-22u{Lljd1w;dGSml\(0Z,Znc,{,fqv1%Kvϳ0\[D~[:D)ᅯ*N}6...$>>`;{=%_{50Yh9mce~m>b(9D 7f&rtv,O[ *YnA(1$ };}ֈ0A%Inq!FibF4iL4Ja }O?i2D餂ۼL5R'L6 M}BF?*Lq0SO8B#ҁ'r^At<ܣCAc?#T'B?0D.25R;/T$4 N r8hC 7-g((dVHq r^Tf p0 \ #Vi*tIME #@ \IDATxڽk]Wu{s95s}v<1c!mLMK*@"UPQ)H}I$H«N! 88A`q8qlό_{>=G?1Jihy/h~gkm~R}ɓw!?v}/[BߞKK[fμh^ngL]N=|ƗWw'kܙͪ^G&T[$uq33zzov_3|~q";>[~_;HSz >X|O"%(%6-wݽQ[43 8(!7~;cM*o d2cR(2YE&#J vC-;n{&nt'v#6ެۯdTR `bgᑐj5ݽT*:mIpH!h6 n%@L썥 ^F5ž[o<_xaVdŢO|CDpB̛n)N H%" /ОZrǟ]ozT_yٜGK$'i6 w|uMu)ǩhmپ#BSO, '٬>w[#@-_/fsp&#2L dq1fEĖy&ϵf%~&Bn32%j[iNWهvJGZ-]}I(<_!%T*>ʪ!)3j)ܴ-O6\MISKiEU`t']В}}΁R=<__4)} LF25iJ `q!&Xjk XQ h{`C9COs!讒lΧocHH@pd{J )eMt>'DjKԠd\]@:CCBq!!. E9 O/38 mwϺgZ(W|CqH)떄{&Z -c^:&ξ`xD;˴]BlssȲЉ4: 4 FYZ[v,m{FCc6^S{KH)1RкRHeN-a(f=B }@n `Ͼ2ai1PQ]i ˳ϮQx 8pNXK9J)@H<-p868&sZ&;62-O҉Qdm351;k8ztfˢUμ:u`RqmIbpau _F[뮍l^%} 1V23ORpΑZqnK*?Gkؕszes)`YFG=FFK9dibd/xd - NF_Ai4{\ | cc= 8dsx,RH<%<L˕34C0q劤1LO7014R0:% = 4u\8z׾߿xN-OS+]l.QR`1KI`ͻzYa){_}m-JRÜ_3oe2 VkY+s{$`%MibcAz`I{f6πK@❘>y}l癳?gMe_Au2ڹj織KӴݟ믱zUcg+i@5P>~,V[u6:(gSz@$UnҘ=څ"O@Uoət~2GQ. U'i,k8Drרh.N(5 0 J@d~OuQ͏ShGWL$ص2fW cPP`7nޝ^d1(A$u7@<,iK i<9I)Fה~OQ `iv}juIAFc1hd_߇`ԝ2~X8Ctos|u*!${+ G2e4*i;"`ǾlRɬhEk`e@D .4 zkpTe! B,abx4FGvUso↿ø̵i(}y4[뀣)tjt&j4F[eݍY\dܥ"^7e ւa.ñȿ ](.9.= 9X'؜zB"_o?Z򯯧6=.g7{{/ZJ*joo~~ ؜ICy|@d,l:tIME3/IDATxڵkUWkf; ByXRUH`_4}X4MjHAc?%6l*%"20003wsgý&hwr9Zgkk:#Uy~SynKq0>{k֣f-OV6ն4,[P/TߨwsGKwgSV$R3:t_Qj1W9: Kvo ' 9X [:֬lq]GgCeNC>ڗ&aHȬkiڰfflLNNSݻ7{N,'X)D !%maNv˗֋!\̟qK'n뺧BѰSYĶ }ЁD+hM8bQ__ټvi2q|FNO uyyhm7.?8mdJ)Z"*ZJk 4lO/95M] Glݹ}/,  e2@HHE{>[@B?#p] pl;\advժpWxX+9`];G75lǢ<T \5ZIhi&AWy ?hGr@_p֝MU"()@XAUAUӁG@g47DXՒU6)pXs wҿm6K{2vPJ!РhYr ŹQZZ fhh3lY\C2Ybc`;;ޛy2=ݲoc$-_@ 㯒4pZpUxJ t~*iAYIw.iNI(ʬD|VwsG*޹p8}vqd$±sTEYH}df qMEPl4z(58C?ofE{C_(_"L!M;\"dEϼNӗr%LZ5,ksZ*69dpNO|͓Cg00e\JyTEY߸9J) ta?w}0@(`2B1S_zx@?Ɓ<_Ml||n*iz0BR]R6M/1 ZHB=~.3%?uׯoYFV% BiJH FiYp֓3~(0[Os.s}FVXȴ 0AE(-)R;SJM؁\zWg9gOP kq_eGtA)R'6|& &vTll\[Q{:u`6=pT\\+$$F!Qkoә}z}ȳr*:k̯zcsZ15|vIENDB`elracodelangela/administrator/images/css_f2.png0000755000176700017710000000336011061563437022446 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 14:56:25 -0000XtIME 8* pHYs  ~gAMA aPLTE֭νƵΜcsks{Ɯ{kskss{kcR{JcRZ{skJs1Zsskk^{ck{{kJkJZZg{s{Js)Jc{ZkkZ{JcZk1R9Zބ=Zs{9cFV{R{Bks)JsJkRsZ)R9R֭c{ck{Z)R)JRZƔsBc1R֭c掠Υ1Zֵ֥Bk眵֜c{Zkֽ筽Zccw9{ZeƹZkkkΩ{B{NZ9J){ksc=5ks1-֭B=)ΔsO޵{wֵ1!εsk)Z^NΜ޽p~焜ބތΔ֥ƭΥ祽ޥ֭fvtRNS@fGIDATxc`eׯ߾Y$ ȀgG67KJ+z>~BRĔ4gn.x|/_zھB{\pqe/>zsŞ'O?dBqu7nN~kk{g] "_8ac.vsh")8ݖ-gϝ@U)vG,pt?qd%lݶ}]ݷρ&D(de˗/_r5k׭PSS Y ـ]Qߢޜeojg̩+wTdS´gp̈́(GM0O61UQ0m:Lƿ'4VA3:`$d|iBii~'u0Ǧ(ww)Mpf`)Ӧ]TVgZ `kckk[TTb(QҖ TP jRhV2!&CZ 66!i9 Meee U5E@,5qT+֎1h*`,();-:4&4,rl;? i^!ѩI99yJJJ@ @?'D'i'*ygddj&00?? "$&V#.:-=^>~~A.^n!a!n^.jܐeemckgljM7Z:zF&f&ʪ ,'.!)%-#*'ɉHw<|, >07RfdbbqYX98`ƽ@ިIENDB`elracodelangela/administrator/images/checkin.png0000755000176700017710000000352411061563437022675 0ustar essawireessawirePNG  IHDR00` sBITOPLTE3QŮy\♙kp~Ile@c֠!DqN_u0Sض|:TTo֌PsWcjwq6TʪaXmTx(K։{mMhӳEX4Xripdj_xyzGb?Xʴ􋐤ڑ/PQuX|Nfë7Z+ORrιjk$GZrn;XˎImi($tRNS4~ pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxuWHC%0B1  D˱ḈR]AE)+ޙj8<;wHq!W o.'fO3(XLRٟ_ ^2v7{opUQ7;ggIͧy_p.ڭ˻8. rn5EB{*ިU e.+bBqA7I3nwV˻^~/_)wl~TC>JR!vl$ qgQO}ÃǗB_VCa-1`s< ֡pg򃎨Pc~J8bD1U8QR@!;vHR_+)Aٓ$TAְgT*pF٤ Aj RyMM|Lģak|&Axy c`(<;ujȭ;or!D{b)]]@^$7m1fK9p:fOo&b̙s)<89>GN nxT7-)ha OyAǹL'h"buA#!*8k@tAt}Gc"`2 D#mz\A w:V7/૆=XK\ ƷbjE6̳|<9@x%W$"ؗ7a S>Lӆ$A ~@W*) uaDڞ1:!`ϔ*#АE4  \>&r,%Tޖ0 Z^.z[%ϸ'|Z>^T9? v =6a>9Mzi7 URhYOlV[Fr9[#kp2R)-@K"UA~Q1܏\BGw25ܢ]޴5Һ<3}dCi !>\^T*׏`uD:`C P\]~ID"iڏOxǘ{l`$2iRܘB0e}|XBժf,NaH|*WtIME 8#FJIDATxڍKlg73S_j78$N:Dꄔ H]Q`UVlvGC $UTq\67㤶ۺvj> v"h>ywZ`x_̾~KZTۅW%sߟ:}6>?GrL.vn}~V']:l#B4PVu.= =ّsCj)A*DԴɐvZyB{{\&!HDJ:DN_y۩}Sgۥ6mY3~lc=eȱGMw͜:lX(+H .!DYݨ\, wMj۪ 3B \ab]yKoQ+Wrȫ{\(o1G9 "o}V/r(GQ~lQ6taa}H(Z2ek2*Ll3uްh_%Pjʔ8O%b~`CEU$ܶ } mY2" 2*S9 =UEr|džATP7JJRHؗA%i[J^s :=( HMٜoZShɃ_ZpyAQQ|/d2H7h^IQQ"H?'';eAn2} ;ٝW^]xebf9,i̠ٔKQiHS oO,sէ-Yago^ 6lv]yy ,ٴo Ƨ¥sgF kƮOק߽7ҼSzr-x็?OOOf3[)U=խi] ETS)\IENDB`elracodelangela/administrator/images/langmanager.png0000755000176700017710000000325111061563440023534 0ustar essawireessawirePNG  IHDR00` sBITOPLTEw{!|yvo.xOFVtKZ8fצ ޸T wYae8a˄Vd@3f3ޠZJ~D(ƜzEpHܴImIG{ p߷;h.}ogT t+t~X9^&(iffcs1;!̙f֧}^4Rt5R1uPts̙e?1:Y d s`؂Y)kxk!r ̈2Z_GE/eR!mG"'Wg;N׀L+WSŀȯzջH r@tRNS޲ pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATx}y[XSQL+!C**NhZGA\b0 t@-b0((&E߿$%\b(jƱi1u jo1#A+4ӤA|& ~AjbٚPrJEkF#ljNS?%:gFv8g@=TL\Y.ZJ a8|QR|N}niyIF$5Z,]ˡQcrSf3rS+jkmv9Bz./&%×6( c>';3.cV-a|og^nerwU_f(>>ߞ5{|;J$rASō!՚۩N.|j)!Yr5xa`<.*0 >rD7' *;ǡ5kПl"[Y))UI}?hu ]JE Ӊ vfPSB MWe0YRnjUW Cz~h 2 \."pDۘS36Vn-jȺd2 ւKb0,7H_ IENDB`elracodelangela/administrator/images/smtp.png0000755000176700017710000000257511061563437022261 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME6u9IDATxm[g?͜2d7ݜզIUh *DV b[(o+EV`h`Mdf7;9ٛ4V_>'^h]$)DB7Xn&2#|0/6$W*["/}uuÝ0Yha㡮@ _lCA@7_J1%דEIM+*v{ꃀ<6'jÆeEA [%<``ՖJ6^, kb)VTǻu'F^\Air֌U=q9}e#{e;jڀyvH.*hI1@&c Cl(!'&Pg>0/W*6IF))) IhZHW$`ѢAiYy=Ec[<(| # )(h&hNI_B.y;l?<|0AJײނ4tD )/]J^]yҘ}jHAɘm rbj;o͜y&-oܬ)(jkRe W.7)װ1 ?P4B0cFξ?V^^\[7>G{ٙ{wclN Ol//gOؚyOGȥ7;v?{6x/Tn<̯XMtJ8On/qg^WE~С}N:l}=IizVUji*vKp>G[G9BQi)ی{~j8q ;n,皎eW$bI^SB͉T,+9md ᲌%i֫ȩX*f5n i=V^ݲ} Ŵdf97U}NM͢#)`\ǒJ˒2(j@mUMC ٪oAꔼlUVE\W]UCvݕiތiw,Y v mvM[ZCKS(%-e>бbUQJVΥ[^4+dǿⳏ3eULƀPWr=z0SUf{\e^]J61<ӗ?Ƞe+&_xGt2/[ MJͩih}g^Lvɉ2'X vw?j^qΔƇ>F>vƨUu5ureE0e:%41pIENDB`elracodelangela/administrator/images/webworld_f2.png0000755000176700017710000000510711061563437023504 0ustar essawireessawirePNG  IHDR szztIME 'y pHYsnu>gAMA a IDATxڝWkpT~=gr*("XSVi`ڡ#Vkmed:ZEmQbmZ! $\$s{v텚hf~<~˸\+]#>V˒{ymY/>4?9:+C?f6M/]=?. 5vEÎEInǯ'վ癓__ܱ!O)_M34 q8Ĥ(B%A(ns3؏|0E37^lU*:.FUqrX_@j:;/EcuV.2"<͇jL=² `d'俅`{߆ bD"@}wOmx;i|.R n^J=U !h04)!@< cp<*a~1ο "\{jc&eðD վKX&@JA$2S"X7+8R% Iy?㧯Gg&A8a|_^&Cg`_.ݳ~ Y|9;"h5%5"l]D>-H7:v{ '9, :f.)  #`em=BUDC%p щ} cUU+0(#õAp8*//#.$ع u%.' 5xSY ᢞrx(`BFSdƐϤgQ@:8?bZPY_F8œ)m{W !kX|A3=\PWHa*+`(xӅpDA߃Zה8L6w@?tQ JuZ0Ԡwf2njd33B+dvm##ehLq(+K*ŀ"MRUd<Y 86DbGRhDdL1Cz' Xxp<& FȉiCf&js2"TQrAoGT8FDMR)X࣡L[k;ep 7]OjMczT!329 YR"IZWp! 㣡q8CZI# <9$FC%B祤%ٓHi(,\K%J0$P?4=GX֥c@8و;Ye>/ {r8ePzŰy91l}pJy9\W F!P?)p*ȕa czgeNfNx(1{uB \:BV-'yLwGS`v$*rNjaΦ&Lt|Y]VKD( A &D:no"((H(コYip6m oYQƪ IdE1u#ģUTl4̌씄a&oGkW\rgڃe9Ծscsxς%]^kJXɟE&e`B qS`3 hR dONګW/8uΫPML:m{>\|]7_>'H g#t49 Zu$5!M0Ώ#Щv#qS9ZuA_8=S6ݶn`X.M߸G0 ytM;M-Aυ(T}$T:G&j4O,2 7?S6L=1uu|p\ھ},Kte9p|<۷w/zsV^uN&Dnj:[&|ด_ԌQ,HgJy#5d2EkJ;v<@K/!!!Gg%{>y5 BϏرO"c薬ay0J*>ʱLd3N;T*qR׳#,#;>rI깳5]j7?65M ͔xQJGŽ{[^}ML"BpقUO&rw' RBtM<dlqHa{ PT|.7&FG==gi|DczڟRROCghiPnğ,?2@aŢIENDB`elracodelangela/administrator/images/address.png0000755000176700017710000000224011061563440022702 0ustar essawireessawirePNG  IHDR ,_bKGD̿ pHYsnu>tIME 28uR1IDATxڽMoW̌LqرEvkҖBP[tCE[¦V|,b!A&QѨb'nmDZ=xi\}VŔH1rEbNee 1j 4`$VyLi$u %PpDKCPaCG|E*`mSOxL}ymePKBMVΖؼn*-6N0w&lTWҔmƲ-[!w[`ŊiU]F-mW[A.\;Rً/p2DRZ k٢ϝv͢M*~[v<M{;ڶCoO_xۂ=->=^`ՒUmWRRRRU:73,)NmZ'R*F,Rtռ3ywe #M|PRU!gμr}~6?]^(?[1&bFvmjjf[}scym{WP?P_8wOܶ/4֛LYթ +~<]uܣRJ뗧sW'?ç.Xr;AMIENDB`elracodelangela/administrator/images/contacts_f2.png0000755000176700017710000000502211061563437023471 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME IDATxڥYlyg̝;yEI&iZDKrDY,vputyH.(T(RK>SEҴ.RmbӸJ-J,MR 7q'~̝mn`0;?U6<;|ٶB>'i[kK7g7֤|>)F^7c|ݹ/>8?{ذ#dx$uv5S`g"m4%{JgAkHMhk˚m&cA13{x'_lO~)ۿ?߶cx5$V7IjSGiIpM(ƊdM6I JiHێ\qw}sw+F+5}T)ǃ̭'T,)VK LKGE &4PRs}^+]&4BJW\D'bgJ Csck44~&]y! accT !nT&WoZY98@z8<z+,}/&~lW`(hJH 01L [ͳD l'==2>P|2 @#)0 q~!WsKxylf~%֚FA[QԚО3PbA$lBpaZR"4)C#^HcsRIy(5'~m')wQk,ˠ8 $f -hEJ-:L@}%oh|T2fnzuNCh- vn3fM 2+v, *uhn\ĸ7$XB%Z+)6HGG@#Ee,Z3,~dװ6P ׂXiUI+XB^  \fc|,ۢjL{Rdj;tpe{-OFk&bКJUrkERƂ$O*CixX&dm ԉvYHo[8qlBK#RR3O,{l@M*zLGЊAʭ07ϕFGqy k 4~n%YqnܬMCw΂0ۄDd]L G$Qؘ>D[i0]S\%e_NxEm)RSif%5Xu*,)О=@E%*t,T7I/7GƌiߠuR(²&4HM'۴j\PG77 28MT 2VZ oV*@5JS׶un.il]*lװ_)i͖;3zrf]̸~/ :[4]| S7`?{XӯNt:>?W[x\|zv]_.6{kS0׍A LPWy̅r;ucvon^c8W\~;=+~¿ppwՃZC0uOΙꖃAJ h4{sh1 9 𛧽S>RUp g}uxabq(]f 7W9S?Ǚnw*V^/q]BSjcby>L>X{Wޚ/zowi L-a )\_dJMpi[U ݫ owk6v.^kBg6e}p(?뺸 "Hm |;:_9C-GBXtjPbƧ%0 ~!'UHzO%KRѲB 4TZ͈zr-.ڴOE3rVOy(q6M_̝m8!QFTM]El<E`(k@ W}9vvgNjL}IENDB`elracodelangela/administrator/images/tool.png0000755000176700017710000000245011061563440022235 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYs  tIME'5*n9IDATxڍoUUgs޾Kki I$ā81ƁHLh 3bD T](}:=-DJΙ콾omQaymٿM~E>z/mVhj8'Ss_? 34m;m4q )1?P+C=bHw`gVdDDp:r\Ia p>rז-ZDTxU|O>E(oсL'iL4E(0 ؋IH;290ukdS,PBD 01(ULw0׉y&$@RYzI$C87.>1"ߡL@fid'BHf"ZqQ$2J\$> vt2n$H $ٵiQh<|Ҽ( f*K4IAbb.5g=%"(lq)(4(|Ft HL(QƦa+oRH<|Be'RDq(,n7R MH@\Q(J1颕, *ODW'T,_Dq%,lԸc$Ah$!j :($pŠ6a"y(-! B$E t2 `3yjHf&BcbhƦuEMEhijݕb)"$I5ץ,"\q~ʙlwO>>soRclb0A9+eWXd,%$ƥ,%Ǽ |[UA֒Lap"̐SCz~9l{Nݫw7. ť w, `uVf~ڿC r8wXΝ,6PoStIME i RIDATxڥ}?缷wf:;5kck$8В4qHZ!R$?jQ E4(C( ewmz;;;3{;?xAJ)VpޞGpoi$nt;!{MI bUF\:G sCQ8a6t ]L.Wٚ8" +Jh>*-Z_:O&S_]MkmX2V2qzHBsjVsEq_K>'kP{ v>][޾N{w0@()*/ORPZT}p|fTjWRC( C|+H#讇lnnkqy/_fI"lI !4И+{oQ@ tz"Şuk?RCsG}.f7LR*Hj5 A.iOd &[ॲ@/?lh~?Zg;1ZjO3s#5JŨ֌ k(6WR'z$І` UY`.۹iG窧>MhӤ8tK )iMk݈/əd,[6H6704/yr &uǞ pI oOtR~"q?  cǸOHUd|$G?{=uwXlBV_ L\?]iD8.d%=t l" Fܷ[W2_yZ4'?B*:5lu`cM|<5†$X+0MsG[n y8+sACwbZ2 R04tGi84m8d9i—j|@ICKX(!@1ܜ%j5hcvA"&VwnCH6׳w7C" ,-Ō Ict]A J2)jDH8"&,U2 @#4o 2:R b89rL;F~HS%Ocl2WT< MhL'L6R/,M41+a" &ۓii.APY>gʭKK8J2")I%2d%̨6T/~TGjT:Gwg5DjMQ:ᗲ|\΃#V&չ2 D R!b/hlj7mLz&.֖ɵ;M&x^"sًtIME^wz IDATxڵ[Uko~sq툒VkĢhlHLiM4McZb EVEf\aΙ3g}mbfvoo[{^m.Ç.W t?.#Ǻm˵{zW>E M\˂ t҆%w]QAm--$QMUm:VߛƩ::`0(׷^4Ypeᄌֶe?O2.E]"e1]AcQpP /˛eȅ=`@aer ܙMfUQ(A!G)($"&ɤcSpk1p~Hgm^<'c^#TﶳСA)0.Kݑi€ *!PHػGe(4߸z(!4iDTl4.QE430ahX90ܰ ǹd@<-8]s5FI&IupkUsB8'N0p=@#/rPa+WԄι OSNgeUqf0mR=A7.ۛ}Y'cHR2 F$׼ZFvi_&-P[^_=" ϙ<`覭zz'iN*|43! =0 E,!iqZ@'Oe]G^Vh=ʪ A4I2x@D8[Xx~4A& ]ֶc fulS Td@# 3 :^.f疥+SzX  W|0h^M+6-k_"UU$IGRh<%e$#ʎjľ8}l)2IDErrUM)iכ TkJEPs.u @Μ;ZM~J0 g,ϊ*R`(1׋T9aiδAgz@eNΗ+׽eDP%M.K;C45r- ˶+ XwW_g0>>DJIYs|"e={iGȊg ޛ/5(Ude+D9)DP$tMU}zf[7.B]O%T3ޫO "p-MSnR5 Vu5{N]{g8ٵ3Z$Ig4XZ=ѕR6㌻u"|3]qޭ095?uǏ^g~QLT ^do `kՍ䨿E-]g9{[wh7[oݤڻe+z!}]E`|lo߾zG>0>ӌ[fg[N u*R|E{y}p9Xfskc_l @]'yS:IENDB`elracodelangela/administrator/images/query.png0000755000176700017710000000374611061563440022436 0ustar essawireessawirePNG  IHDR00` sBITOPLTEyI*=g=WSNUs`xs.ܓL̬s폑ԏ*3ff3uhޒώ~ífGlߨݩٖ ¿j֔t߉\A=a\i]Z~I߰4sk?)]ݾ2UwFх#ۦlpMmf܉ЋV.fz݃YNsm?]mRtsŃEH0{x|ܒL^9Y_m^*g)ʾݓ=$AL,tRNSPe pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004v@IDATxmWX b (H4-bTņp4UDJ>& vV; ,9{[dw៺_|t\ӏ ȹ`8}`"n :H[C=SbE;ރ̪ͩ/s9nV\"ߤ]&SSk zE@9A%,vAMsc`=CQ4PzP.S}|FWTxYyw jZօξ|PB߫ҼVTBOPn5 zU3|LѮID@.؏#Ǚ:jǝw-me2k˶#ۃ'Q`ivJ1XM_:Zv2a9S*ԃ@=_8:Zأ$ITG(!5 D j$DK`1 *U?\W)k2$Mđh.vb|ݸ#ZŨ$| .H6E;BD:#E隚ɧvzwűKtUC^IjgiQq*@/ YADltUMN"4@^,:mPJ U_4 C~nd]("P/<"V%f.aO"Yֵ> _rDQlaVЀ##Cp̤yQPdu$E ߯^&OFÒSەz[jLkI)s0^ O4=2&IxQ[X=:g8V CJZMHecad0TX:'pnnP iŭrL={F(:$e?խlN3cM9:o^r @>yW悒DTc'k'OPW;Kd2y^%7fY͞d-Q-o,ogU7$ Zvo]N\sc 6mѕpr% 2p:99r@vZ, Lͭd4+3S} $uSDS+KւƜh8-͹tzǓ!lX@N]7CW%e̒%rY>6d>_9n*{fs?ܸ sC {pB IENDB`elracodelangela/administrator/images/edittime_f2.png0000755000176700017710000000523511061563440023457 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME 0z.Y *IDATxڭyl\ư}23wZ]Un4V@mMR(E Piv pck񦈶6[B$I2$6o{76 F8{wϽO>"= WGbvϩKg2J^|›kmoJC v`wR{7ȃ+9N{屽oO5v"Dz\^صHt'zGpTm:`I<;TFWz~zI>:4y6Zq$RvOL1l1#@YJ`T!z?s˂d"aQ,ÖvEWv>tϕ}/~QWb"~!؅@[p{ܠBKBĂT EAJ6&0$h.|ٻ]9 ;BKZ}S= HW=A4 A%xaJ|^Ujv* Wkv_;[==Fq%' qiWLjl`X`Zc&*4%*z\&֜8=o1%(󯗒9k Vr ʆ)Uv4  SYC8(hiRɕ![Z+VGW_]>~;jh "ULӅ{~B}Ls %8_k,R`I:X&T4M TC "S LrנeS MLZNYʐKF-S&:Xu`~2Y(ڌ$[3zn^|`t|mlQmh U|Q U+TJ  Eiru,ÍK"_RA1ac=ac:0:JC=UYω! m%hXFzp9!y)Wrm2dSo,ra&zDkJo#W@g*8?N/z =\"^EʐLI>eRJ nL}qAc}p߃Cstɗ $}}ᓅb&7ޙ 6_;~O&d&psQ2l!`iUW|fXj˩,岉b"iRWK~CZn.Yƭw;04Ƿvl9mfC삅i Su :[N ttt04ծAYS*RC簌2њ[VvI0n9v@[=lP ٰ >k3|]_Pk=ɋtU²>q{H婍x7ma)#;|u,pGV_а} WeɣOhHGNq4&Sh[]wT52|h$hݑJ\~s=|+NS(̜R +x3Gk?Tb*ĒP(ĕ6tZJ:?U@?l2-<7`U!+ iiʿ}HB״UlPݣVQv 7b!y'޷=u;M+/Vn吨?r/LJ3NW˼禇N+v}#E]0WA|sYXtIMEuӜGIDATxڍkW?3;Fw7k.N6tՐ&^hTJPV }(Bۧ>⣔>_PAK (Dm&1lMLֽdo3sCF[<3_{joJD;On\tuP}w;711(o?Njz|t6 `^{`>^Hal}!6"`cac#`aybG"UaۧL"'I18a52:{ *`cx+1L!XTHrsѺЪG,IFuxąHWKZV t" u4QP[npk4~8G<1fُb_2ouFOmPG7ވ:((ď"gGk=_(%4ldWn}siLLL 5qO$j=we9XظiЕ]nم* ZblwjLJŇ]|3uh .QSɧnqi*PȲ0Ee;]K֘2?i0412\+%G̒Ƅ`Gdaa z1{]i/L@(cq JծXpN\T8ŗSSL(rsͨ*j>3~j!8'1bTЎ^DlLtsC3w33?_JGN $0 %Y+gNOU 444UGgIh*ni*Nkh%WigV|Jɽw:DRL@#z5WpM8 2E~q\{y5|rw6 $H4͔ A=yS=b"@Bf/"1L"N:6{7[A%<ݝ)F{NDv_2޷SZHllNh0qSH#}|C3N'5%&gR{sG'>]՛GCuz~ |xgx`Rl Q)&..|lv*&#Dv(J1rD1}D֔QsIENDB`elracodelangela/administrator/images/help_header.png0000755000176700017710000000464411061563440023527 0ustar essawireessawirePNG  IHDR00` sBITOPLTE)%"Ծ+86:Ad/(evqg!ݫs }- MMBʜH܍&ܺ~2t4'}EbsLGz)x+:kE}; I͠:*읖k%Hc"Hٴf?x ͪj@|Ra_\keҤ/}|zͶi$7&y*xR#uANóye?ɾn?3*Zlő1Jr {3%I91iKmdmOJ02:i5W .q9WF2w`<ٷz̛/ Ǖ.oX0?seQLFwl\ ]Y;},P]TJ}zu}>1nmãjNHD{.w`UΥ[Gk{QIj'oR.ؼ虗siuO6}g˪vPx*̆#*+/kԮim&0-8+J_ٵt͢TY,׈"DDGabg4Y'0#ye=:@vUD>tRNS< pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATH{XSu1Vq2`kDc0hAIs@䠠 a:!6FH HN%@pmF0 9v|}yfFAA-Jno5ߙ~DΎLTHd;Ο_l(`DMEScn=-sϹ.%.#CO|;~eddxuI˦cK3 ]xs<~yywǤ"k|no*&Ԩ¾+O=\I-Gk^2X<^oLm|&DCk uev<&*/wHM wֺlP |CmiIYm̍@Xՙݰ9))isVVǛQHvY"KεgD8S.Nod jxԦcRҫފsx&K깹.ӶՌ͑ҿpi@ɻќlsYS񔍍N,Ę>呻p«xf!r˲TURޙtf3tRNSP pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATx[JEX -Bh"ЃFx`AЇKmf|33wEibiH"f\0y=W x~`yiӕX&BV1~pG㣉[/cm&Qo D4'ɔ*jBEX_< m)2<_/G&8S*|>N珗XEB:r dDgE~d&^O-krNڏp u: 4T j!$,Ϫ@W3ôX RiK/?`a5y @bRg]b0` Qb &z,Zh0Ȋ<di_MӐ_bHڀHsňSKk^MpmA.LӓO:1|XRAPv.{ErE5~aYWEtEmc@gi4mTj8\"P/A!_(`͉rY3\yXcP,v+fsR=j.͔'YI48Վ,ly '5'UD#j;X]h+bH:' $2x ~. :bQL]8<ܹz V8H&;˹שqm yjݰͼfRьFQk`zM?'0 퍆Vu%,AIC!AEĂ|T˖mnwgwvvvi)ux˽r {oQSԱ+{n?M}UdY [{? pL).CT%4=#XhxÁDCaN\.`Km(0A 7AlͭDqtgh̩1ѩb dRtm@6^,g *TDl (<R!G;+HXXS/\@UgL"y61.['4cܣqp;66+l2z q1HOȱד EnQ}F- q|&&iޤTԪm 6F5\ط=K?ԐKt2Y+K}U]G4@{pvϻ e7I10H0炧`L2 ?+P2ĆGsۀ]+VPN3,j!@K_^ uC),<8:sTh+Ш:^̧.:K#sŤoӧ%P#\D{ÑRT$ .2 NN,?QRHTDBĤ6~KXTQ`zH1A݄H#@;/o٩wpYaFN(E/G!R1(!eC{`(s #T3 :B냓*))+UHŏ% y8KaDF 1Yz]V-vjSr6H8q1Fhg9rAg ?wN'kXrxED,8"V!F 4M'K4$D@rX|Ta0( /9OމѣTdECDh}|ϙܾ/f PQmW "kG }TsmvŵPtIME.5Dw IDATxڵkly;gc /~ { zĂ4Egu}O-ybsb׹(1) 'D kk$  4zYu@6z/|yS;_=2Tw|k?o)_kd &0`xVDXSc_DQްos_QSO^y}PF#{T2]w)k *P&Xr&"@[yItw);z]E/.ڟGmXg}] [j^FݥTv$ٮ5ZXՌ myu);PL&?X%ӁROT00.g)`yRێDAJW`[- .I*+MT fC 4ˆ^x-^Hu ˹ajM" -c$&b>"wFPt,SXk/+’aYן~W-HJ'ЦOCl_'wohkO#<"d_;޻,⒋ñS.FMkU^`mڤ7 d '-O Hf36B(1w#@Wm(c4֊8dt5%RbPC&$"=`$]//huYruM#ӌh,Aa?q@GDRgoש;*])`*0,HEIlC4ˆtzt?}yT20m448A=E\ JaIihr$;7$鐎# R#PD`(TEm'α LLUiC5/9',:P{(UQ/ߤ՚^8+I\Fr%-;4Kw]фֹLeq- ݡTqy]}eJmE8]Jpjp@玽Ho31J*3q9}e.')e$=I kT!E_h.hTk̴"W(xȞwxԅjdOvL-*m,m`f&nb7jXH!x=+)͙a@QVc3KЅUg:ΦWt\pX(ՎՖjx N^4%ivljSx 8 uqo0Iӯ.GsHHhU)C)Rg<¼wP@uhTp*.;T;%e;b@6Iǽzk^V2'In)z:HAnP1$6z\&Kf0IȠZtlj+d|qlǑkS(MR8$Mj b00[5V`ÎVɘA(|/ _˞tw۽~ຒk?oxwƁ-=M5>D^~n{˞PjvǞUu16_fϟX'\yyCc_?A|}emSc=֏SjTYEoni7=zI ]a>/t%1 RBmfbh8 r^qro0)00c򽏼sofݔq)M[ʚ/ms/G|/yǖRJve&ﺧG*~5<9{,O(p&߿mnӪͮU|8^kx'o>bsܱ#}t٩r~(-W#̏l?A@7"sX֐( b4{o7K󹭟y3?@rG2/\۳on5fo9g{qsKRqܟ|_ZNc_{^,K8[Bx_B{-w_7}hva1pƁdώOn7 (eOr$;0osIENDB`elracodelangela/administrator/images/restore.png0000755000176700017710000000105111061563437022745 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 16:11:59 -0000ftIME (M^ pHYs  ~gAMA a$PLTEֵƽ77tRNS@fDIDATxڕ뮃0 [q !I?6 q@q!¤U(K ˄?mxU&mQ5D-q3c;jr@*G  ?ڷ]2 2h|n瀫Tiw9[:[ uh8$媤;4tIME( .Z IDATxڍ]g;3g699tlv&hX0DAҫ x`7(XPc#mҕֶind7&g7{f}ߋy?ϼX;?>Q쉶[b~?Mp]?xiU$B <󃹱*ݟJ׽2Cgi$~WXi V*I$g|gMv~'}\H%A$mלXP|5- د"n^p3R3lEYK,.[R BCn{2GM᳘AHH%Q##뺛hxؔ!_o̬ f^(t UR,t}VM2--KÐl B7:"Yt@b>#V`PU,5dPдU xǜu SF>fȚ[r!1uoxN:zLː -f~u\-*,AdzH5d ܥsvVճbv Pˤ~hVM^2Gq5T7)a m#*`_h|(٣A&; #HG[K==ZplqgA*kڭeAKR;pS*jΞ8s4+O%|@^sŴ#2+=Z";lj-&~R!W_nrQ5mGRLc7&5Ӯ Fb9P眓Y9my^ѺNTמZ]ɵY#2+];`,ɭkkTPK鑩kJ9Ϸ֟ś;S{D%Wdfg?Ynͬ-6]ydZ&/:t1˳GuQ_k;m¬tg%)4,;׿M 9rIENDB`elracodelangela/administrator/images/help_f2.png0000755000176700017710000000305511061563440022601 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:10:24 -0000_tIME 'y8 pHYs  ~gAMA aPLTEεƽֽƔscZkJJkD?k9)k91kVRsccsswZR!!)11BJRRRJB9!1sB1cJJkZZ{ss!!)9JZ!c!k!s!s){)s!k!Z!F%cZZBZc))ZBcRRJc!s)1J9{)))Bε!RH1cNkZ9ƭR1sk5!9{kcF5Jƭ1{ZZk11{ZZ1{9k絵֭cZ1OcBN9%΄!{kZR9{kwV%))1ckkB95s+ތ!c 9kƔ9Z>.{!֌!ޔ))Ό!kZ9sV1sskp ޜB1c)9cq1kcZ99k{1֑6BBsuRRRs)cZJ{Jccc)!skń Bsޜ5}`={){cB֭ckƔ1ΜJΥcƥZJcJR{ΥZ޽ֵ֭1{ƥk罄޽{ֵspX'tRNS@fIDATxc`@l_Ȁpԭx옒2?z;aB|[u^};=`BSp̕fμ|굪GNi̙g:wsUCN,{xK6QrP\#G-?p|(={[s\v 8}A,؎v{˴m߾ `DT׮[߶a#lڌe W^cDW}B,h]ps-;oޒyM]ʁWӦO1o9sΛ={'L4yʔtIME <8 UIDATxڥ{lV?sy߷}{}Җ^vPKM6L-sKTtn$,٢fٌd"^FE*"B +m}^a9嗜sr.n"|CY%߯̉4 5fO>s_H|gZb!9UEk<- ) ;,r*4V @ Vnʦyi hmDo(r8Vx# E.m6+dkfMS:3Tʼn(: ?%%={ásBuS-LOM  Ϳ6t o;ZW^3]JQELHK,.!e#OA`@m}k6#`ex0BAB:tp<gId(D ^ Co)2S1aU5/.Z H$l<jǚ=C Y&~Z"/ʰwY.5gڹ7+Cpom7&LIӂRA  }9PTX΃ۖ,*d)VMmo.)whsuM[Z&6ly ,AhM#/,z+b^τ8<Q],%.KkQʳ=3oIsvJ.&_};a$aVza" 5pl0-<ʕ^q-Z6l[cm]񳄥r y[tp_GaarͳQŕ(5q_b7ނ,}ʵոOP8sgJ/< z>}am4ALC&*p]1zxvg P[Q@>J=B`RFcj@A.x^϶ p'R#Q{qY3ze/-ZUby躟#B!&`bF15>Q.N{0b<_n֯r:eڽ̟@(^k#K6p@ д58>,Gw)n@bq?#L &8v2jSt!.,1}1ΎjZ*6b-(/k޴!HVHCuHt_7?̲ZbqGPLmAǦ@fB/CIs-]]]J(7}h>=.'8aNOQv1mnH[W1}Fl\gvФZh+y`絽mwZLP~J12mSC_n_ADQ Nxj0~<9Vn B`Y}p ˀG(>槛LZLب̻z1W$U<~`}vll#`rxw}{S6 IS/=M|EU*w>D|eND{;tv}鰙`\([Zx6\t˦lT`;)Ş ]Կ{cs&`WΓ3C ~IV f?xd7֒j1H(+5L&fbC=O|##; ؙLI;7Kn BpʶÃCv=:02Q&O@W]+ύ |Dl<0(cR etf6 kDEdukIENDB`elracodelangela/administrator/images/downloads_f2.png0000755000176700017710000000421711061563440023644 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME UA{IDATxڭ[U{ss̙3i7)Z@I."$`Pバ5&>&cb| &J#)-P3Lg:N;̙3>tBJR+k^%ӋYc俐ںreۭwSSg!BKI.:F}w zkvuw|h<߳Ϟxk+شb۞H{7?ՙG$dk2WRH-{зL@󊾀U./pj^C,ZF>=yA$nņeXRa+KJm$`\qqȢ뢴!RbIVK*!/ ä\8R[Yh)eGr{3c Dmre5m;J;;څm;C >~TK)TJĔ %-v2Jvת=I ^ֆX[wX4<&664XRc&Ѧf~ o]uΩs'釓& rEm}cBߣ5 +z[YS`6RML)Qle>C"\N߿m}ę-@LU#74/EuQ3/RǴpMM GY,׋podH%Mh7/O~q|T=\3'yP6uZ혼62I3oY̡ ֘Rci[IR|e% $$$չ^:< |wwvO?|ׯqJϮJծgbMG{z61|tQRl=R)wƸ{g}D^# |bR3{vw>vcu^qƝ_?dU=ؿB:\))y|&6E E#! tu8&B|wdsd mV,,,,aBZ;3ZE` h,R)LZaFc83I}ReScDṈ b[f0o4"0 AUԫT |0 L 0²%(ӷlA#j>v:v I&.$IBIlk ( =R) "ߣɶ1ю9@0bj$e0 :Z&9#@!%N:M:"M!vb &m<˜ !.Q_S3rVn\مm Z U$N!{y쀤GdbuFԁB>$i-*܄ RY,_cyȃ֕gx>B Pd:'mB F/90VhCƖfb$Iї1%kR#tthP<8XǞNnҽyno~ϕ*֎.>!M !h6¢?2:x[hf0Z~';Ŭf6ak۝ouUt-gN95F%NƁe/  h߱^|Cgt4pfYϓ/ŷy RD\]uhIENDB`elracodelangela/administrator/images/mail.png0000755000176700017710000000201011061563440022172 0ustar essawireessawirePNG  IHDRj sBITOPLTEݠIvAv(׽S/ɸģMmMh(TnqqL1y1]ϼR3zLʥKxlQ~NفujlȚHxwWV՘Ձ:#X:)ldPyᴘbµ@抓Xīf]^:|x`;oݮQ ^t׳iпY< B(㡨{߁˦V|ƣUu[M/bfɽWC'k^<ܺuIյtRNSD pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vbIDATxU3p>ѕ,HSףV\ĴUv^?<8LMdWt=ߨqﳜ[{Y, Nف9pJ /C~ƜӴhz/+g!tڲ##'+~.jE5oã%I/&# Όʘ(o!0 OSH Ea쀏T"M (SH@|2"uZD^5,[PAvn>1 K2*]HkgS/_R.u󇏋MbUuJ?O0w0LJL;^og$^*7.hM0sIENDB`elracodelangela/administrator/images/week_f2.png0000755000176700017710000000456111061563437022615 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME 8IDATxڭylܙώgu,@8!@6@H؄MJZTVR)R+T](QABB@Ygc'vDZ?% TF|s^WxVVcLshu ^qp鍙[}s_ŏ|FDj.ҺT3DXk0Ƈ)7S#]w/;aJݬL&,+lK^kYZJ0|ߠc,AU\QW4Td^yw9@¢՗{ U/qXRiAkMl@C(,E-B&]QXL2'&XtQ>@JhDGHv |i<_c@J!4$m<#(k6H Bkg߶&gpvmKc3g}%e[ !IMFZkiR}`.G'> /Y\6J|#d2ceg*=ǭTsDMcD~ uEj!Kf]8EZ`قLqeht_8Y.asU"HH(cךT@Y l%/̀P8"#Hl[b`yaJe{,oSµ%7-58Y![4 !;^xR^K tL38 ,m11icYPc3{C__%54GIqQa"$ǫsT"QP 7 eiU .ct,ljbK!SaH$hTGj @1{nB\Wo?a@CH[.&LU8BcS'ݱXBHɺ "\Y4ϚWY7q05 슝q8+Bc!05 qI]4CǏOtۓ¶ZZI$E2Pu\0mF ӦŰdl rH:P""+~\I6-aBD2F@uwapzJޫ;z?3κ_G ;;q{ogϑ+9Y0U)4_twu]꺻ZܶQ.mS:ypkW]G`2@w8U@cc+zg>;bzn;zcF{=J=܊  @UX* fIENDB`elracodelangela/administrator/images/groups_f2.png0000755000176700017710000000521511061563437023176 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME?6 IDATxڽ[l\}sg\IӢulXI-'Pj7`@j@-(C^ i-Ҽ-ZvvRMj9veɲhYWRE%Lv%[(8833?maX|`P##ykͿ~QKѷ?zm)tSB,cTR~:#mj^ j:B0,/Ԕ:q-9_ TڮwvJ&Y7gcm=~n_y?gn}q }_l|!G7U<7yQ83cD%sHH\Oeȧ}e-SذO>M.3p:||/+JIJKSōcÅ';/݌'`o<2zxr*w<ҶKy?EM#HO8ez_ԑ Q]r\2N K03O՚)`Lyp<([G0L*P,RY n)ewuoGh-A,Y9s)>c8N]f ߕf*s~Ds~{z,)?C6С  EcLJܣxlyvywF|d*=7Z-lx`ߓ~3H\뵗oT)GRWAH;!Fm |+}0X~ӽ+Tv;s^ŌlαS/6\, twkB*≧*%38Q]@JRjSWnZU0 P1geݽa]7cgdPc}x J0A``zQTi5uG;')v/[7p{w 3}m1➓W+?=?_ؒ61ioz9Y&& @Q]|۷ݺ886IG}!=|>VŴ@߮hLeK8iЩ4U x፩PRl(e<2N> Az]{,e-}̝r !nAPn :ZD78gV:n@4E!Iڝmp^OH^! ,C.S0oKS?x~66!n@kT!0w2LNMB =' R q 'ŽRe5gى3M z}a˔o07m=k=mwl.~sZkwa~qg '$Z;aDP1 ˫5C8{w,Ki9p i7a 1X?T*  'y.Er/K@ pC69(ZT q& N_l&d Dzȥ|GAR+"^&`cQMWH k$IPJBAOH @{q=LWmqpm]c,zK%E.R]=0kئXwy%v1NYF̯4Tc'f=D)f|Bh:FAu )0FZAG*ZKRPN\ P%0-Hd 92A#D/u#"VXJ$aGs]m"l$f"QFbwwe X|zs~m(֥СrS$JZkQ~ ZJ'l;]L,DG]INToszrxM/2<P a !PPlkxsz_+[ΗQ0kPk_tTu]5U+^h))*R&ֺ#.Kк|,pu_ޣ`;hSFP]\U9t.xSoƳ>/:?Z⏿ e.lzHQ&F!LA`TnΆAe*oKZE`/ŰN+˟\n!n'}KRkU ,/M٣pTz# L:::I=IENDB`elracodelangela/administrator/images/tab_new.png0000755000176700017710000000213411061563437022704 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIMEIDATxڕoTU?~tfiK)C VFjh ƄA1&paݘpҸP$a Sfi;m{>ڡ&{ܓ{:}_(-.Yz{cc1`I 5|luD}mGyL9l=r7^.1 Ņ-+PvEV0?"k…f~뽗!w*w:Ei.rN<D③^d_7/_ixܓ[Q\\†్m8@.m_X|ң9`pqQX&@Q"N/s@^9w'tD8 1h?{oGkOJ".^8]Z%q4 #&zX17=}Gԝ4M A(fç!.ziWQFƠHIxEHnɻ+G!iՐh$R:4@cc0$lbfTh!z BD^-hAb<k P?]<ěR#GmQa :p_*'NOSQ45\G1Jbm83)LQ$ϒ*. PC@U_.,NqFg)PBq˿~2p)CDMPaWf22w y'8pv{jHPj\&3v{rri,S!hR ܝAcfdfȱH:CN<Bf<`Y$E\̽Xeoq os޲6*ɣT`̙qおʹr%v DBI+m_ߑ˹c^c6|9zŌ7JPWkxfffw_s ȍ}I(OpZs`iZ$ؙ؎V<}( (ؙ̙륾xco穫z|<@r칈|{G::iS_弿x tRNS) pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATx}[HS6ք[8Q/5uj)F[zIgݞi=9߄K+{\>?DWāKe0Ц+,+]k u8tgVDϋjmG E@/䪂%2,Z*,ZLK,'/FYΜX- maJ}x-er dGp$ X©h B8xz)tFA/#)!9h uP bO"J#R3l2'E]*ZS%r;F955c(@ȈW^ =q͋فZv]^kuK$H(1pI9|I<.YV]^^ 2$H;'3LlķG{ ,%iUK͙ohJ@L'H2$)\\+l7?R43'Bii0w33gB0: D{6d>raNΙri?aEsv{Ֆ,R3ΜUR:^NbW, J78rDmөMU ʆL3)3҉t DU?`+^vhy޲FNN0 =MOޫX -ekWVV u !rxCd3{SIOӅz׆+Pi5-qXWd'`g} M=Jb[z N0 b X cGj.'[PʬG&ĭzN<6u"v V#%^k)쯍.2rYQ2"O&xQy"'-),:oJꑥ礗_ps~o>-0P]ha.PvQm<ȜŞ2F5 h* _eRB\ץtI{rJil*/^:@}/ y~^=؟\v/KH 6U4] n-Z`o 8/Dm`Q4Jbepp FÅ^qTg]Z60=i ΃.P5T/8 4q߼ 0 QH5XxdrwtIME2[ WIDATxڥkU缗\vfg{˶]ʲ JB)?(AQ@/H`15F1!(%xU4 lݖmv{ya6Nrr&o;s%;lx%thɞ}_|(_nEbg:`bhDB~= 0  oF F5 MIqz֞2rz$=ɹ =z׋O.Y~4el2 킖$ըh+(ENC+HF7Y I@C_x8b44U' |S..+L~qBby$!֒ oةU@ZU*wmX($E:)`WK?gI׎. .sߣxd'4בlh;:2s㇁K棾RȧY^(lGSsa⼢V\a[Yn \A 44g G  "MqdY:cYJK:5Gq`flBa; )7lM>܈ Zٷ-<~ D#>{ڞ`֟R '7:Z=jىZÚҲtRt$]-sFN *2Orq1L(w=ߋ ĀKZr!=pGq(@sm{(a~=Yڮ'`xRldG-O㗪 $]4 gq.S MIu)ffC$i ר |e w/%/WVg쉉jŽn߲yoJsAlع-J)l[쒙bAuu<,##GI/߻\tE54m`t,o13e)(2¶q%,f-OZx>u^fw1՟oy3eȮfE H$ݷhz#Ǐ8ue邢\!Bu?EŸq6B3ZԆ'G_j]jxjӶk:vZhÒ?d 8H ݀`XiF~E.e"KndWm@Zp{jf6zǔx 8qelΥtE9.߆GIԦ$R;˽]$t ezjQVX 8Vu*WUyS]7ܶ1bSJ)1Iww|$r%$ԱDi!ӫaU%ٜkMpGhK 4 1dݏ9m&R]6vhzߊC"@_hZx[]עi=xFaTΣw2гT !$-ƫ %bWQMJM[R.xؤ3 M7NZ.*+N8֒Ki)k3}QM,7;W^Yۺ -Z{UY ?{64CClE'rcTj6u%)MQN{__5|۟9h\XX&Lej|֥X5U2R,z 3N>wnlLLCfÄ7ؒE036 nɗp`28:YeuDVVcS90}sf']^@( ~M oo"pG:Bڥ m_đdw~o+ٴcd`_ͩS8}䪨yWP{]|/ȹ&/ջ *˫ӺB;а_` @_;^1[IENDB`elracodelangela/administrator/images/restore_f2.png0000755000176700017710000000241211061563437023336 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 16:11:59 -0000ftIME SR pHYs  ~gAMA aPLTEֽƜZsJcJZZc{{ΥksZ{BZJZ{{skBZRZ{{cR{{RsJR{cBkRsBRsBc9c{sBcks{ccJs9ZcRZs{{1RksRkkRZ1ZcsRkƄRccsZ{kBRs{kJcZBZZkJs{{Rc{ckJcR{ksBcZ{JcRcRsΔJZZRk1ZBk޽JZ9Zkc{Όkƥc{ƄνksZs{Δckc{֌ks筵ޜ8btRNS@fHIDATxc` \ƄGmry-*ve"|g嫲̗a[___T`aYPUʃL(.))=gy3¥gk՗deLk;j2|U TPE{iS&˪@fBk]]_[{{dz}A &tuO!e wBXAGЊ\&./KI0U lNV:P775e6ud6v20WTZZĖVi *+44ɜ_`X,XDf&K*)iF6-=C@@%3+˗#;5W!VPPE8>$*:F 6.>A%Q?')9%UBEDBO.#LKKP?M%0BIb-MC x\= 0sprqCeaaś ɺ݃8IENDB`elracodelangela/administrator/images/forward.png0000755000176700017710000000215211061563440022723 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME .{IDATxڵoE[X{XB*A&&4*7'ȽzkD"AMTBn[KeKvi;7^+ 7$ywFy]2fA<g O!94y Z^&h~U9_/?&=]Xx oz/XGlDM($A[Lq/Z:^moB4/6 Ca㧯&Yy}l^B"q(i-@$ցmC{;8HlWhqD!]G>n4۾8ɻWpwEs~yi\ كv+A!@C`B|;قMWDkr=WF ɥYG0]@hLA"jV& Gq6CI F&4TBQn`4T,]aC'Xu\QUǏ@@cPTZLY,]  Yh! 2аsWS't.P@&&ưi&(TK憍5lLRAzw3EEx !ɒ*fs٩9\=UɲB'c_̌|_s0VMI?9&s_& 5P$?D /A)2G=A˄4 xDF_Ng~ ۚ͢k 0H&L9ı1&Cya_Y D,L6+3Rl=G !oy}X0nOyv@5ml hhh&@.-}&[:71n9T|GP<&!?R:mSҁ)#a=+d8i%AX䝷k)DϞh۟N{iԷ|m-TifƒݢoIIENDB`elracodelangela/administrator/images/generic.png0000755000176700017710000000435311061563437022706 0ustar essawireessawirePNG  IHDR00` sBITOPLTEIm*M3L1I+*8Z C[8VL1I,92Bdc$RiGe7V1T*M ( w>^F[8V1"!UwWu7V$[b_}8V+",@!3 (  LrMmL_}1TARq*Mͽ1",@&2!3C ! 7V31$6CU2Bd,6C[C  yMmRiL_}=]ARq1+3Et6CU{[J yj_Uw_wXmQkRiC[*Mjtwjf`}Ro>*ytqhj_}\?ImTS.+*Ⓐ愨ꃥhZX|Uw\ O12c۞BKaI+JsV3? r ꂦ}{{trzqmnyiie}~cZg hRxc_Lr\*[Fk:`1TL itRNS"""""""""""3333DDDDDDDDUUUUUUUUUfffffffwwwwwwwwwwwc pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxOIDATHgXV]t-t6M{{;{'{&]IiP" m6C`ۀcL O |9νͩ;jn F]s˒,xN|UF_y8vO􏬾O#4[W:陹z~FUnN6*Q7䍭HIhlnz]rsr6{!-9QOڱmx[^^.R^'pM@W-@kt|M$/,hHBnKT}&O4 wD h,n ѭu[[;us nٟ1i^*CNSпalgKmnRU4Vho)0🏬# H:*F8KV#$/Sp. @ۈSX $·?d>kK:lrT` !_Jތ`f J%e* XYp CR6 JI854r8R.Ua+/p,3E[d.-_/W|U$ɠQcl(6 0{W0Q4oJ- zS}lDI-\78趠&ݨtH5@ݵhl {:~`8 #4E?~}U\0B'ǎX֣X1 |V^1Uly)vptk٨VDOe@⣧͞Hw7E6``2Q|7&+ztH\0Q0&9h < gE+)8n̂E׭yRcc_0-Hּi^#v||nWԝQ8wQDUn;_>xiHG,HFCDh=KԜʻJ:iӉ}̮HNIWI{F9IENDB`elracodelangela/administrator/images/cut.png0000755000176700017710000000230411061563437022057 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME (UIDATxڍ]LSgRK| FYbt11Ygfblf>ٝ1m`pͰJTS h~t7Ն;!F:_^Yodb#5V!J/Y\~},Ho?im1sK60"L)MQw]HQjt%/er0ㄑY_Iz`5a˜P bY -+< P~g|HH DQzSTf(đcDԈ8LyhPKX^[V 'KMdBBTU^πt#2rB!{SkЙ^MZTC3ڸ!"j=CVC{nCKgX`UBfi,ݓ@-u? #1(!`[IFd4 Slc,HFwi]A0݋.T&hm͋D'^e krb"rqy.j(DmK<ڰK-Fءi8ʷK$LdږUX_#s+)EaLuqH4YϹxT.NNLȤ!qyй;Gtm 3 AtIME 9&f7)n IDATxڍɏgOUuOLOwOOO3L@,X ɉE"!Hp/r@X$H-8&^8tϒҫ}U>*0inG/>ʲT&:3I0; ׾^ʙSWS3t*V5=ppW0PW-o+SLdU ʢ3d0A.W52H&2bdՊHÿd[Yʵ\඿mCK"[R|j|ML4kyF%v\k`#xҗ*.Er rMLbYآ]Gѡ#;n'̪ug+_h!:^O7x _^(N횟\:tIMEIDATxڭKlW;矫رcN⤮cҖ\(HTBBB- bŊ;*V,*UT@%`@6jzQMq.;{f<ĤU[#fKs~w| -l}13C~q.c,a>t{ [CHc`W;] /qL|ߍy;';3P]X!Ydrȕg}rzXhS֗sT3́?L*Ŀa5!bжx W _xOk>k okP kg{Bza`'w5eD $*6l M'>8=8<m)V!f@5%{>7xwۗi%!zHV"dC4.!>Gi;v% *X!ezH;lH.F>'incR)ʻq%щ H@RIMDNcMjbx EܘPϧWZ9_$O~w& ak Qv+9VkҔT=pC-,l)bMB\X"IS A$fz \/zTg)- -}X^~Wx=j Fx;XL`QUT!e+x= B3yCgF M¦pw-iC%OpMޡEZAAA-5Γ `dN}[݆f!f)x_ >K{ճ=].e-PqΡƠ ր jįSC,,$cT=cvzh̢ƀFBƎ3=ۡ0`Sl3rgIšSܬ8{m`߭wtj DaPQ*x1tW/4gf!ddܳ3¾Րi ML~7^W69k#QD1.2T\ש:eaKGkC pPL`knv'^<u0ƀ̆p#U@-3.2_衫]%f!f#y%q)9ro2<ԵO=1zx2_+fPXY$3-nyBCFܾpagND<%iξ-xhcD'xi4UD;I.}RœÙѐU.!,b7wPzf< \_B_O\<큌 č#vpYO!ƀxX[wP/{ .-V]9fZ#72mF*xOra7vHĢ;l1SYfDz#ԥd>ոU,8" !!;9FrgN|[z BiHΐ=lN7_ǁY c9PʮxēL&ѿZNss^{J\#쉝)Gߪ'5׀}&hFQlTT@DR$Կ&.NV\tIMEUIDATxW[l\]ܙqy@ABPDP?*CUVhUJQVTEӪҗچH І_c;\=gݏ#8_=ҕCu^lgL̺0V{ώs+ j-R8U ac->\_>|f&{>D}ܝ/wGw{ "!ۛV#G2+8nfB@rBo0?9 3< >( TUG8>6>Og9]?>qߎ7Ghk/3 FP{2(ShFu|ys``r7u7C~88F~1.xSq}~fm~rV00\1-H&= %RŒnY9>𩃔۸0Lj+sGY~CG7rT׌d=baj):wbt2|\-VQˮ@ZY3OOJXh0u6l"& Y!Taz0JQ5䂼 |CH.e|-"ʼ9}!]]!rC"m3cXE>ByQVTvMz+c*@JRkP:+HS[!* e5v!!0(:4tP(US8+j`èua<,r(eshOYX[2.-O2qN!Z9κoֳ3s>D trs"V 108OE#\6L!R!]uN 2*vvJ.e8GpN (8:o.Σgi"8 x g0A,S Y[].5s"v7f"֎{qwffgz7yt[Am_kҀ`y ѽg4{L~htѿ)20.#}z?}C+NwyhUD &wSY:Po$MŤml0 .g^Et zGdÐAR4?tTbB૶nSRRpzZiCˌ0*4Tk0 @D$Q,V9cؗ^eݮ:ah2Z>8捴Z0a3h@q mMB0?"XY2~DJSn܉OѴ*TB: !(~[N$l>U} g-KYib]8NAͪd=5M|RaS0b2Vê1,*_YAڇu*-B{7౅*3*X&ͷf3,j8VEҿɜQ;0e=Han󯛾g8f1j12fձTz׎aIZNΟ,N- .#%,`a&Q@, z"T.pdLk7vRBD1N *JVnó-\X rvr ] %' m( [y= 92 ecUe{,PUةZ˭v-4ӭݗW ɱToP4Acf5p灢0Q"@8+h6lѰm-9yGDOٻ+^qa2}-ضꁤBB.e 8ֲ4vQjfҲ}: E󥽻kÝ;^^txWrNձP#Nu֞-&5vTKμbiED:/dfm5?T=vCĊH5IENDB`elracodelangela/administrator/images/upload_f2.png0000755000176700017710000000317211061563437023143 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeTue 3 Aug 2004 08:02:12 -0000' tIME3h pHYs  ~gAMA aPLTEƭckJsJRkZs{{RJZ9sBZ9B1B{9JkJcskJ9sJ{JR{RR9RkRc9Z9kBsJRZJB{Z1J)R1J{B{ckcsc{csckksRsc9!1J)Z1skk1RJksksZs1c))B!c9B{B{sk)Js{J{!sZ!!9!s{)RBc{c!))B){1Zs)1{1Js9Z!99)J19s1BkBs{9c9k1!!R{ZΔBkJs1{JB{R{RsZ{Rs1Zk9B)ZZ֌Zc猭1cJ11焥c)ccBZR)!ksc1R1cR1Zks)RJB{R9Z!J9RJk)cBJ!c)R9R{9ZBZRck1Rk{s9R{cRck{sk{sޥkksޜƄZ{kތc{s֮tRNS@fIDATxu_P[K*u""YIPMQQin^MIPQSUIq?|iA#_}*|ſ}sFFnOމc(H5Mʿuc1C2v;߀ߪ[17U9 T"YxӪwc!!Bp<_I՟PDRhY6e a|Fa ijdsIAy=Y_/2 e}y@&d킀St3} $/`.݃!~!<$''k].`FozUtU^v|Yv~a9W.z" #9DNNZ}L3p,]."ɲ$zHTѲcǍ^`^ ԗ1,OQd^"[B]:Ca!3gwqSlL7FNKҔ$"jjujjv A,kXЌ )y^}LrޫdgM77e_0k7?<-?4>uڴ3fΚ azd P7A I'B^k(у 6|Q ЯjCuVRicb7 3r)¡?42j- >}i4vޣg/jбVVT~_<.{IENDB`elracodelangela/administrator/images/back_f2.png0000755000176700017710000000312411061563440022546 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 16:17:40 -00002tIME7?: pHYs  ~gAMA aPLTEεƭƄc{cJkR9kB9c9JkJcsc{RsRkkskk!c!BcJs{{cJcRΌ!s!)c1kss{k!{!!c!csk)s){!!)c)9{9s)c{9!))ΜJBcksk)J)11)J9RJsZ9B)skZJcc{{JB!9!9!B1֥999J9sB)ք1c9R9J)cRscBRR1!ΜcRc9ZZ1Z1{{J)ckBZ9c99!֥){11!cB!!{sZc{ZR1!JBcRs{{JsBsJ))!޵k11ZJ)kckRBsBs{{RJ)ZRJ1k){)cR֭ބR{ZZJcJssZZ1!BBRsBRRJR!!{)RZZZ!{!19kk^G7 tRNS@f IDATxe_`ԲPXy1)tjtJ(3'Xy$H˲;=?}ޟ %Wf##gK &:W5CdGW֛f UUkuV-bss 'yYUzhezuNJl(#{8KA0G@>86>{)&n΂|;ns 4? D\\^mVtLz4H_vyhRqQ!FvyyA?qTP:R$!<wq ƹ1Hb$o;pp@:F֖}a62v79z.Ev媭V}{:Qa;ȦbfUo޲"KEYW;xZh!Il (_eeE^2K%%KiA"~2ѲHઑBB>EFѴ&Dƒ f :aHzSPWa Cg-tP0#%Sh~<UMFJKR㦢OJNijRѤ024щ8TTXJL7idhOaW?Q!>"):j記b#$()k IENDB`elracodelangela/administrator/images/xml.png0000755000176700017710000000167011061563437022071 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYs  ~tIME5.hIIDATxurEofZl?$䯒bo2K6, /y Pȏ-i,<‘tMu=s36Yr /߹4HFAR 6ںmCYa % $x Š`$8ufjCizD{f e%ײ3Og85($Dst_^B$مuwQFŒ/LOcLqhmћCvuKAZZ3w%=dOu+`enx54"0G6aɦ\_7:fܼP37~æSN9{,{>K.[2AK>rر7'z.wbOHd` iuss}]_?N77hcBj.P+Xs(EYY بڂe8 VLHUl"%+"U Iee8LXxS z搑WPVWfu|B"bX$#;'7+/̂jWvuBHrIENDB`elracodelangela/administrator/images/uparrow0.png0000755000176700017710000000035711061563440023043 0ustar essawireessawirePNG  IHDRRsBITOPLTE׽^  tRNSHn pHYs B4tEXtSoftwareMacromedia Fireworks 8hx+IDATcAPFsa^a`KZ ^*1 IENDB`elracodelangela/administrator/images/print.png0000755000176700017710000000227511061563437022427 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME7hNIDATxڝoTU9{gt*P("6($'&>L|5Q> II" wlNNat ˹ Mk[kk-%'}' Sy>Af%2&:8?Je"QxW) zI{53CR ҦkQXIrZ7}UiIIENDB`elracodelangela/administrator/images/archive.png0000755000176700017710000000116511061563437022711 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeTue 3 Aug 2004 08:08:18 -0000ÄtIME 4 pHYs  ~gAMA a6PLTEƽΥ{{{¦tRNS@f~IDATx}r ENיI<9GWRn*@܀a!fm4W7sws(h\\ߣ)(6c@nI%SXkDWbf999 <tg6ָ ]&\DDBT"I72G;^K *Ϟ8ZW>' oѨƻ>eQk (V 9tTe-DžtkF[`(| c=!ѩzy\(СsS٠;>7B XW@H)Kk8"6Lp0}!(xS\Wt\t$z  i'!9m?8C27sIENDB`elracodelangela/administrator/images/uparrow-1.png0000755000176700017710000000044511061563437023125 0ustar essawireessawirePNG  IHDR(-SsBITO9PLTEKK˔ddUUУttTT__\\եff <tRNS} pHYs B4tEXtSoftwareMacromedia Fireworks 8hx9IDATcB t`E`daEd`Bdn.;0xxtbe],RIENDB`elracodelangela/administrator/images/file_f2.png0000755000176700017710000000473211061563440022573 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME V gIDATxڵYu֭3GHEQbGA-6Ȗ$$F,06ˆDArD)(!9tU;"[ KYG IÌe]gEq,竇_@*Ch#.rChiLsZ}V8IDi^|`ǟ-Fs -8ͨOqq*SaV='Ǐ}#[.vq]ʣKC`ɢ"to0:%D07Arq˓8R`b2JC2uVu^oz 3#t߯rDsH;F=WVZ`{8 ւ鷈n^U {,Kv$aJ`R vY=Ӥ|x3/GU t`4;skzg>a{mcG')6_zYх#拇N8X7*6pUYw42mØfGsk ]JBgmy&&F)Md@=lӉY+^jߌR KRޫfB тu=Z9lt{)&wQ)ˬV%=r񕋧\|_96SԬ7mu5,צ:ZWL@2H3d ~H=Ŧк#ifvuB^Jڈlb7nҀR %$ԔyǁջM+/OTPwnXX𺯽{Xz/V|̐ z{3w$x|맖j/84~TkRǟNRo\}ګ5J<>ܟ<ԁGœ_{(y.^}7^[Vy8ي:1vw?N[g8 J_ySlAX<|;/VWvSÍ@l7gYXvplxYF o#_ '#,1U3oOͭ`v3{>35\[?!l|=yuw{c@X^o]}cqvIENDB`elracodelangela/administrator/images/archive_f2.png0000755000176700017710000000316011061563437023275 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeTue 3 Aug 2004 08:08:18 -0000ÄtIME' pHYs  ~gAMA aPLTEֽƭΌ{{{kss֜{ƔΥ{΄ssssƄ{֔sks{΄֔֜s{{cckNJR)!!R^ks֥TTq{ƄƌΜ֥RRZRR{{Ɯέ)!)Zcs΄ƔƜZZcΥ֭޵祭ΔΜ`]k++.έ޽ޭss{ZZZ{{gcscZ{ֵ֭kkk)))JBJ71;ckwkkwkk省skkok=9NZccssBBV!1)!9{sJFgޥpmskDBk{{RJs{{֭ƽBBc{sskJBs{cZνskZcmh֭=ZZ11祥c^-)J!!))9Bք{kc{skc{sJJZJJJZZZR!)J1y$$))sskcVRckBZNJkcZRJ{RZZ{JRssƵ{ZZ=AZBc51NDnqtRNS@fIDATxc`@Lɪ,@FQr:$tIín)~_~U@|޽nU&~_\dJWOfzh nL}G3;@gpa._q߽{II`X4sGkN,j3gϝ``ذq-E[m_c箝0¶}آK/[bUV^a݂R륤9@>2u3Zf=g 'wpuC^1ʃ/ E4Z,++ʫrkkb(7-O)?(( 0HT# IAtZ}FRfPB\U|Vv6GrN*؀8$dd^^<>~A!aQ,H m x]\]]]$<<8/3j:30733742bCKz@:@`d@SKV[HHFFFQB]*0P1y.q a%e"%(4FBXNXRSN.n1R3(@c@Tr 3+;3>̄"iIENDB`elracodelangela/administrator/images/move.png0000755000176700017710000000116611061563437022237 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:04:24 -0000StIME6;? pHYs  ~gAMA a$PLTEέntRNS@fIDATxuS } ٧ikB,mzg!0A1|>17bv1XRM}) \.^'Cy\ <f|I)QrQk.`K[(|4`"6VdAuFTP*fU"dT خ(87o@!Ly(fJ"S*+UJ.'8gݍbw$:spgNn!kEp2NU0`Hs`ERCI[UlP<▇pNnMzQU8G^qf/y"BS!q/<_8;T"Ig>}#콏eǯߗVߙoRIENDB`elracodelangela/administrator/images/publish_x.png0000755000176700017710000000111411061563437023257 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE もRR:: 夤((tt%%66붶oo 䒒CCcc??{{))33mmHH\\rr22;;LL99** ##{{))MM88ffssta`T,ϼ{[Lu=v6 >@@l&A0-Aw<8< <ǹiz7әrL` Jhp P& 8ph`A.XC͹D"0iioKm_b[qlֽr]Пm㎫YS95c\~֤ zj+r8ufSTYmiFT'#LC`4(#.^8P?W.W+W!ޡ tv6Fv'~i芃Ҽ~cWz>s۞jiraah|0V/+:t(ܶb&]ݼ884<R-uGsP`D, @IA `Ҹ,4KY_βo<\c3M>.a7:{O?{)5B45(Ni@aA/I&g59l20]V7y70DLb?~AK)eJALRW+S3' U](r)W+<''iL~$J$;=6[c36óm@ܺ[vɟvjr( ]H4? (ՙ),Sq2^`,g{\1Z1 j%¹) bC̆DG,tY?7qjݙƵن@^?T/ʑ#4O+`}_JrR_l&",RairjQۜ9[fg rxKӠfKC'1+!0maVᓁtIME'|mcIDATxڕoTU?;N;LgҁBhh D&h7 nݩ+ ;@ 1qePPÖL0ΔeΝ8j9gs:W?O8y[jlX莺hdv ā\'|0`Qi{}%*a5۷Ǔ| ]%Fl兵/>VZEC#OOpbs':CJD ̾sBiD]o|.PHEAE#:]:Js¡A I.6߼hk*ӣфDpad21|~U Pcx0>Jd`B" ޒė d8ćqY$ hmF`MS#u1 F(cx_tי? ]k`GOj`7QLb"8Sb2lB"Dˏ9昃`+1&N3ML!#$;ف@"TFT c,G$ ,ye7'P7IL|@6\R!woeb0 af+ji}燵oeN b9L4H P#N֓'O%"1ZIh:A-DL4 +Ep1F:Đ(4x%q4!5'i&b@$aLti;ȴǃ?'~FU||d@RbY┑XH?säGw͍2E ]/}* ڽ7RE4L `1"{S`:hsC;`a`bcab`!dNW/0A0 m!_6׮xBcsSjo )gƚN|Oo_udsD@amڦbongQo x8U|| P&A@|vBYyYE%(ṩ*%yA)dWPuL-*N/Ipd6{Ir)000zY}ss A|򽼒xK&(/Ɵ2=+0+I7@>( o ԟhbT`(&lnT`kg7p2rvqqu3gtgTd&)]=}5 #0c0)*)(khjiɳ2@GDTLT\BRJZF($ \<|@3Q`b(YqPQIENDB`elracodelangela/administrator/images/calendar_f2.png0000755000176700017710000000242611061563437023431 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIMEdIDATxڅYhiwwfmiҴL'mS۔tQZA*"" z(x5" 0՛A+2XѱS3]iIr-^4vg}?YO]mw`מ`K/ϟG=LO0ܖCᴘhv'?]}WLq΁l!#z֏>fNr?"ߡ'۞99DftVT68ٛ,j=P=>=VXlP*H36<9CߜܼcJVUi= 9ygByFfHݺQv30(UhDbt ;)HCb]KNO;` [CkImI;-ZU2%o H:l5hFl@͢>+*Shv}?I,$m˨h;Znf1kf|27>+`#X1lŒ..>/ t Nyo3D*-tUK U3F4`Ĕ Ls3ww$ʞVsy/_U֊_9IbHj]Eł9P`ΈEJs7L8lq}d y݆ji){K9i\l~1 @QԺn[u]bY]2irÜ$#IDӶfњyEmg Vdu^;LYi*޸M{S=nJ',ͯV kVNKV*XorN(P3,Y_V8:g9M:=[sEە4,(uOIcu5G$7i]_W%ߛK%Ox/ ~TWo{n燬OHÒ>IENDB`elracodelangela/administrator/images/html_f2.png0000755000176700017710000000332011061563440022610 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 14:57:45 -0000`:tIME 9;hU pHYs  ~gAMA aPLTEέֵƭ֌css{{s{ksksks{{ccVwFVck{bvs9ZBckk{ƌcJcTeZc{k{1R)JksZk{Z{Rg{BkBcތcBR9Zk)RJZ{Js1Zތ1JƔcR{Rs焭Bk焜sZc{1J{΄9c޵w)RބJkޥ1R1RƥΌJZֵ1ZsޔoҔƜ{c{猜 kkZ s1J{BgsƵscss޽s)k9kBuU^5b^ZJ{{cs{sbέcsB9B{kNεB1{{){kw֥wkw9ZR!cB{޽ΔΜֽބ֌Δֵ諒祽ޥ֥֭=tRNS@f0IDATxc`|ԇ?}"€KCC^JQUy:wlH̺?޴ӧϞC(^coνu;޻wr2]Y<._Xze3!px4s&<!){Y2knGgAQ`1g<ٽc @{YY~M7/۲u;ڍ` .Zd+VZug汞^f -tIME+?LIDATxڥKlTU3scfFvB4)R4Tt! WB\؍kݻFWn\1#FhH\hU1$6"aps P(矜-/*p'mu.]ZiuRp:kK+ wʉ 1zK$͌&]G&Ei$F>k3G@>y, bI4ck[~s .ݚAG>ˎ-~%&F!i };$!\\ڴqq ЀFяQ{:- 1H h|<ڴiQiS$|FF B!B<\$xx2u k`6I @"(K.'O+\a @,܂XX(2{- OYnq[ؤI1XH>*I65VM4!EC~ KUXĉ#x4|6Gc͗4]xQ&q*9(N 6*!+TX{oO5I f-6*S }ОwO!|4%ؠfn`T8CTq,}8D 4* +b "X|"QJloCxisCݣ434Tz<@`#à},k̡xjTfڭΗЊ%P҈ܷ/m1}tiR_(0i 132 6:s.5F( 1 V^)ܭXD h53{ k?%6~ '^MN௶.}ƧAy9w/;S~Njelk9zQ_٧DLJ%iIENDB`elracodelangela/administrator/images/person1.png0000755000176700017710000000217111061563440022647 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYs  tIME,$IG IDATxڅoWΌglO1I@AJUHn?P.JeǪ ĪRWt *(4( i8~NhlFG?}|9#qŁFޏcJ~ZU/])g>]e"BqgZc/oFM )u>_{ҍ0KcFi"Kר ȸ#=.&¤IPQSY/whꘅ"%M Gww^N Q2$1AROi)4A9E/3Nb?@4p hҤEDo֛]]<&C djPHF.Gb1M_Yàq"`&)f ,Gy  vKj_c4L2hB!Z]d7{(ZXx`awvQޢ7b$f[?2~pO~x $,LrtIME#IDATxڕKl_<{'cQ$H J*RC,THbQ T J7mET (m!I|gXx8szw1G.}dLqh5SNDrƿe32Bdz[䡑}~;ѻ^:ӻ.6v6T+U=/]ජo>3;sCì*ǟN_#VwC~lힹܫ4 l\dVnuc-|մ!pO]0wOy,7+ E )m&P\蚣&9_{[?#gSo/?K㳁.ή hWo|4;895؃raσWxLxvYBp}8)]OgkaxT]"FϗFI4S6:%4b0nl&ѹՈ<c9k܏D PPm:.6<\׃W\ς[GZ) c_M $hTIhcYu㯸{$BR4R>0(r\fEE8Cќ=-ɐw8=& \58lC.sw$℞OHq ID8pW@' A*4Ȑ$((. (tC~JQMh"äN)z@1M5D!An%СI@FJJ4WI$"PQ޵DҦAMLqxL YE#Cࠡ YeFIhRVͲf( >&.)-.1 >m4Rh\9~kU.,RG%C )/y2k7vs}7,ҠJ4)$s+4b'\' #C@DD|*U,FAҦ6ͅYt;k泖mΌ>&Ҩ6Z N6W ЃHRB:D7o H.D-$^IENDB`elracodelangela/administrator/images/card.png0000755000176700017710000000253511061563437022203 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME9\IDATxڕYlTe. Y:]-BikhbUŊH%>16(cb/gM`(Y eхL;̽>s';Tϝ>uq%>{оv"d=J)ms6Jk q͍{'F+kRイ` ȐAMtSG-.@bR+58+cō73a/3f h t2tbmҖwf1eez$Cx@e); `&7a{~p|[*q׊T zi 3ONݺ}r3n$~pfl86A2H秞M2 ?r칵ӑ}ito>6P;+Ϲd|ǝ_z39<1{^h.IkyV@]g쏒Qittv4XٻZ}gLݒ̙f}t惎YuIljL[AdUz0SnyΦxQWscuytSnʙ].PcSb狌НdtRNS>S pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004v6IDATx[VIQMH;Mq"f4$b%[p脢@p~y$|88s soȭ +$|<x8b8g.>H;Mqh)4M#hV5M|stqt}`XNkQwAMLB7Fն拀P v'ۣZ|H e O|[ I/Fd2_lʲ(/qB:״^vJd7 XnlN?c@IMIIVXF!BKiɍxlduu)Qbcf&^!p׼/#aG=Mm..=ֳ%q1QO]8NQ :Zm $׶64$brkcL}a+0p`SRt*9F 1 R9MSȬ@-y$Z18t; nwmC$7wnzT^Of7iy֓p#wT ,:Y&/BOO£?U I*„toOePSqyIp c@=a>M W mR=2M^"2 co)ǛJ0=uZ2ad\w'(D"0ÅkVI+.NeB)dùB#w+ߋ2ssx?R9tݠRUM[#x!DW///1 c)GC8q;屌* Q Blɑ}T;.ve"$OJ6h45ZNqTQV|"G |/oj\v_CX\ r/B[@~[e!=?x'+jQEB˄p}ǫ>g"y%Ő P&r/0EB3Ο?pBG@R`Ӈ> XT Tb0}v )ϧFTT)o/gg_<"0HR"[<>1LDFH! 0D#UR04l_T. \F@#?6ÿ|QIENDB`elracodelangela/administrator/images/help.png0000755000176700017710000000111211061563440022202 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:10:24 -0000_tIME   pHYs  ~gAMA a-PLTEέƽtRNS@f\IDATxmSY0YlP&sSQKO/ˣDL3򽚪Z"4 ,"E6!cְTrBxL,YP҇[.SD&WEP);.5! ߿$ aEy V>]UjSgQcX{د2?;M ˦MZS/KO;^eV DSǹ#$E2IfIh㰀"Ys8 L,D؅Wo 54fw W sSZh auzrVTX{~nIENDB`elracodelangela/administrator/images/bookmarks.png0000755000176700017710000000205611061563437023260 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME)9IDATxڵoTU?{י鴝lRKbD↍&?!qƝ1.]K`eFҨ $/ZNL߻Hin}y9{M\={?\vBp6=?zR١iĩw֞Fim˘MR_X0~{c D,|ī* 7eRnqFW~t|3G/L YT]K`z[.PHһxOEmcwJft-D"ʴҳTf]H40)-!cnN Fli)g8ļ˹*Ih`s N0:VIrN=9y.ez.QP<9^`$.[n 3@aO G xDTX(~`\藻{PrNp/CQ5kPS%iOWhu$Ai wh,uV)qS6LoJ+`l)V8W/lu7G sγ?51Z.̺ROs&\G70&\L<(5+#r ]Jb6}()%S(uhѳ:=6P"M2 RWrU$w])]ĩ>vRI?ʹL1CF.J ` FDq!dj-pBQ k4F<#nܦR&Nap˴e x-tRhiuULQU{qrMZ$x#&`Ġ/1\0X@ 1eVt{_b6@]]:+Rsq,M/gK%Q8q#w])Ii[*mLxl<97so5oA:^n}Y3pJgo*I CC |0 ](IENDB`elracodelangela/administrator/images/tab_new_f2.png0000755000176700017710000000413711061563440023272 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME 8IDATxڵW[l\W]q3qlN&m<;_{x{=ŋoNᝲ!2$ȝr,VѼQ:l4n qp7cF*KueG|[_{ƻKd:Qvt2&Е`K rXnN?GE;lHt%dCZ.<aòH||LJw<7^,?D DJ_oQ>Z>V%wܜ 3mF*C*e`YXl@HdsW'{?/XsB` S=ukM]:l)DžcIN6y8 9`;lǃ681К@AS˜) ABJ ]gQxi2%F~X,^/=Ӌ(]k`93Q 8К)&HMA1"t:+^v/&>DĚ)@A) UJ"%s#h)9g{g&NJQ* sHM]<DژlKlELngJM,kWiHiwV-Z㏈ g9eL;뻔ߧ@2^i}IENDB`elracodelangela/administrator/images/downarrow.png0000755000176700017710000000044711061563437023314 0ustar essawireessawirePNG  IHDR(-SsBITOtIME ! IDATxڕMlU3sg}~U_W-XZ&F16H;Wnܸ7хaʄ 1ncBBQ( մ)m_׾v潙3+ 1!x679sG㡱NbOkSl{Dw:X|x8@MMuu1-{#}TIͩQ3o }> -;]Wo8<=1zosnloOtfYETqA7_U U-7Fvn愕$a ,-15Moh,"A zuTG]K4 ǡ,d`@HzU-;St4JRA#IX()1yn# T2ADDQhb%L+H\("!ZXT#qQ E@6`I:hfh\A!K$!3*ԄLDP@0,2GE,ayƙ3Dג.j~"@P ؤ s23"h"<=A2TZSֲ}@8AT(t1pe,d Hs2X,Tj qpED'D7X8LD6c/Q*K@L˅!DQEf-C (3I A "I @w&B<\BJ, DX\R[s!"$bWxIT001j0lNSE5>`NL@a  &VcpW|r*j:EGqJ&+~W#vKEBX$% RXX&i.?x3eP84! I210's;.+SL]@1dtIME i IDATxݖ[UvΙsΙέؖҚ4m *A}A/>Q_ԄAQA6P픡S:gn̜99}6JL\ٷ^{''zާu.B;4b6|'Q޲7ŧ~nM*#-+8:@t]|aߏۜ2k]veoϖ?UƮoݳ[nٴ1iXɽwq÷W ZahD5Hi6|+|~7ěo{ϮTWwg_O\mMc[փŞ-g9S@HZ̤յ޽-kSg{$S&N:>H!n@ˋΉ̥-Hvܵimݸojѳ9&6BG(p@+A) dPRJe㣗?+r?Mnwkk;l) k  \J+5Whpd{Dcw~w&@vlyMG{{ipB׊H J^mJ s5xA`h^״ى{*oW]"FT 5C@AaHA :|=D]ǁ ФGOv寶4`k4-T*AWؕvXi@8s™^97C9p(}g}wx@44PFZP+X%epzZ\[qiEJ96=hTI7G날!e@ӄbUQ.KrbERqf+2k:UxMMK5T\Р7,i=J _jHbNI H4"uiĢ:J t €dp#;TR8R 죯/>$0xRC {h޶IҘ*cI"amWW{wboP8n~0s]=@c 2B*bjlEpZ:kj1Ujo4TDja[p.!I59\ޖd{TV:ɹUa!@Q02YC'VTxOIoIYrHDVy,KLfj;")! z`<$J3m2A=a4:`AS|*R̮%>9ŅSNgfuH+Im-vytJ[8A:Pz7BRugBtRNSHW pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATx[f `P(c P14k; Dt(¿ljk$N$0h!ۋ C<Y Z=S^%X3D9^ >p' KɤO\z8C_e۳?6R|bYw\! ETn_Fv D~X0~T.Oyt:PХ5~$,r[|>SKǸ ' SYHPpolG( HFu{|{HGm)WwP2˔bCȁRiag-(6a)X {#[NHp;"fR2Ty-jimĭF)wC,a]{O=<1SuKrGB* 7_ϲFXn_kE} ƄM/W!ӑ=Kc@*idA:tRNS ' pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATx}mCH"nF@P# eQTi0.Vh*E6i{'gwzai InR^z5J@)ST=M$d!L"#NuIN8#DmK`N[-SVfY "@; l%H}z#OQ,kץ$l˺(s("ة6$ Sކf @t"Wۣ@0T+ bFFGK θI| IRj4q!RP,ϭ^a]^6W ѭ(sU"~um|W= ~RP"soKg˵Zm˭Do C%>p*60ߚ)ڌW\_&&,G.i@&zR~9(T8;=99%u|+SFr6jmL(D?%d^t3p\sKD:/R Ǒ-⿽{+F,0-Â|,Lt1޽/9WdF?(s+?C̟_HM lW#ޔ]El|Q/8s1G0;)}Y%yea:+r4MK64|#M)J}LwЈH:ep$8 \˱>p]pGHFepUDr9iam $ɃzɜRJ5<]!C&]I&,CU4&3Ep$/ .Oo߇vue (_kS_Fu N^֓d&3M1O|=D~>]fn6kA77 C?S|uWC-̶IytC! }wW77&UG8nM#@2DVŢq!Qyja$N(J<>pbVGOlEtLX,Vlʼ6[HZ,zpUުn,TqS ]p_ǣ(FO(PF0݆ z2!XJ̰>_gD]_펆3.8ms;vu&vpW퀇@dbhHJa7c9=go/vKb{hJCti|`+aIENDB`elracodelangela/administrator/images/next.png0000755000176700017710000000121611061563437022243 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 16:18:39 -0000\čtIMEQ pHYs  ~gAMA a*PLTEƵνtRNS@fIDATxmSYd!Sd_w몮LLX[{1a &fM2ͩNh~S\5aÙEߌ3`D''#pNvWhjYNQ H{X Sk$E+!6 cR(D W㥰Ϻ"I'p㥀$l4(g'|e$@p:fp2Z8 Uo\ p*Zћ|) oǫ (` 'lh"tqyr$CǛp))40˚@8"G Lxnp'a:P[~wjÈsjg/k@J}VSF?UE6?߻r@Κ7վwβg:ɩy:j9%}IENDB`elracodelangela/administrator/images/copy.png0000755000176700017710000000115111061563437022235 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:44:40 -0000wEtIME/DSs pHYs  ~gAMA a$PLTEνtRNS@fIDATxuS[b! g I@R5w"6.s6h+O 59SdDBA? w%BZ+b6Y0m܌ <ځ2fUdB-.z*O'" g*x岇v;;OKNL2ՔDd0[%6ع ,g@{5 +0oB^ >|utIMEIDATxڅYhiwwfmiҴL'mS۔tQZA*"" z(x5" 0՛A+2XѱS3]iIr-^4vg}?YO]mw`מ`K/ϟG=LO0ܖCᴘhv'?]}WLq΁l!#z֏>fNr?"ߡ'۞99DftVT68ٛ,j=P=>=VXlP*H36<9CߜܼcJVUi= 9ygByFfHݺQv30(UhDbt ;)HCb]KNO;` [CkImI;-ZU2%o H:l5hFl@͢>+*Shv}?I,$m˨h;Znf1kf|27>+`#X1lŒ..>/ t Nyo3D*-tUK U3F4`Ĕ Ls3ww$ʞVsy/_U֊_9IbHj]Eł9P`ΈEJs7L8lq}d y݆ji){K9i\l~1 @QԺn[u]bY]2irÜ$#IDӶfњyEmg Vdu^;LYi*޸M{S=nJ',ͯV kVNKV*XorN(P3,Y_V8:g9M:=[sEە4,(uOIcu5G$7i]_W%ߛK%Ox/ ~TWo{n燬OHÒ>IENDB`elracodelangela/administrator/images/addedit.png0000755000176700017710000000350311061563437022664 0ustar essawireessawirePNG  IHDR00` sBITOPLTE&# k(MFV> Ѐ{18,ʱcc㙙nczuof3)/-€-pЄ(Ilsfh|kk㌪wT(չtR{{{~J>IpxpuKWVp?d|RNvv̙JHBӿ4)gxzR棈ËLY攘յԙПsÕ`˩|飅gxv2Xxj|^>#mH}igtRNS' pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATx_VƃY--qN C1b})$fk;PNfil؈L zϽ@~>'9P0N$gѣz.FCyP((evn#7W!p|"O=C14x{]dy(;֤o R1|GшߋD"+X FhH̪ڍ=985qe Xt5udd^tqew}PLIZޡUUu _&c7ȭ0HƸj޽V|;:>5L tZ>M|jEZ"ZmهWkGO7RٽqG^ST 6BcZ`Tn*US·Zi;i^CguiM>|kv,<XUeE˲n]x|[>VÂUϋ<]4Lj"Hxb0d)d S\$j euK)  zU[pm< |Z۷F1,'yyj ;:X,Sg>lDxoPŒuMKO\C ì.W[^Щ8AlAf3$,v\ 5Fзk?&ژ_c*/!WxTm{Q7*ˈ(4Y#{_Q !/6=mT9/\hoPT`g@&*Q^qd'K3Qt|cКb  7X*3W.!Hbro.BM!vzڷ\l"6eQW<1k _M\t\Aȳu2>&e sr7_D}C*TQvI'˱t @F)wxDT*5ϐIx48ņ\`ƄtN)]pзjәQl8"ÿl'k e;8RBQy>+eO1 5i‡Yagc# 9j 2)EAc$f-w>s|2B?`rC?`X_@e7IENDB`elracodelangela/administrator/images/cancel_f2.png0000755000176700017710000000266111061563440023100 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:07:00 -0000n>tIME bя pHYs  ~gAMA aIPLTEֽέΌs{{JJsJJss{kk91!1)))BB119)kBBƌss9)R!9)ΌRRB)J{BB)kccsBJ{{{ƜZ1Rk{Z!BJ)!kck{{11!))ƥcBskR!J1{11{)cckƄƌR9k9B)!9!RR1)B!cRZZJΌJ))!sZk1c)Z)!֥{{ތc{sZc1)RRZRkc)ssRs99B9J!1JJ9Zc9)1!BBZ1B!kBJ1)ZBkZZZZ9!c)!B)JƭZB9s99cZcsJZB{kRBks)cJckJBZRkJJBBJBsBJ9!kkJ91){B!91Ƶss9)kkn?@tRNS@fIDATx}SW`m)4"Zh օMBb'B A4UjUW@[Ľ~KDxOsNw{?gѯaL|z; }7~3щo%8 %^6u DRM|Lv7O{s#8* CÁ֮GnE1 =A`G} ;MKP,}W1~߸)>9: %hH DQO:1'W)З$IEe ǝȀ'.SS>J~KjH׶c;yWE\r!O,|h/.ǎH-:ySr8T-DOMҠG2C4A̵a>/huI FB{ZG#G8.P,\{Q`{\v ۱S0ÔpАcض=M7AXM rPԲ@؈m]0!74|erWIk hK$好@Mм,y:żxdzd4M -C(3N `Ϝ5[=3gɚ[m̘ZTi%RSzhܓ'O %4?mM3i:΄P!IENDB`elracodelangela/administrator/images/task.png0000755000176700017710000000253111061563437022230 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME 7IDATxڅKlTeߝ;t: S նR5*`DC"1FLXA4.Ldh`1bRGY s;̝}}.:wNynӷ;^rWjeV/Q %?`]Rms7poDignQ N 7 <:X5@VtgT4 ъz|x]$%A#kj^ *n$ M~%޽ &%zDZ{B _XHl, }'Zwc Kݮuu c'>+-LҎ 0Y}H yؓ_-!;tyS&ujW,F2G\#K"y+=rIP[b )q0~4!Q,#ed}1rL` ck۩e{hb 48kI0ܩiqM;V :itQ`aXF'>e 4&9(ވ?4R5XFQLq,Di%D3.|E2LO+E/zp5Of.%qcr?/ u\GI ^\x !9>G<L8H$0Jq2,ȑ.x<\.RFDb#YrfI ^$7~tIME"7{D?IDATxڅKlTU;w^i;}}Pl!jQ))#FHF4ݸPBv.t`Y ҅&D"-iKKwfsg=.:6';pP21i Ng=3Oʏ6lz^Ȼsj)dcoMyK*%0co~j2MRm$W1U*uvops'/,z7јd jl4j<=P#Py#C/}U?Ҡ$ rSxKOhXh4> Q4ӱ~ax4$hYYgkMҡJLvƛg@P( 3ȱ@2I*\4>>̯R;'DԸ5p,Y\4 ,2q* S*^B: |\c #Kw˹3?ZH !$B!qHtc@Tإ >K6 JP2▹>Rc1sCK-DHDh*H eV]Ln:QY*sH{M^V-g6RSy$r׶uᆙ+ M@'J8Fj&ON۾5i?rxMh9=o 9n " #(&nd4BtmCЧ67f1oGck@ 6Tl8Q{5Η W fd蕣odo֥LPưϴji(xd_fߏ1d+2U[5mWƥ#hpg`CN|m@)!46rrEˤ5WړeQCJza4W].<>F uvs{mXZ(ÓDb hc?Bv],K!R4YwF[9 w.  F`W8$`ո; 66IENDB`elracodelangela/administrator/images/next_f2.png0000755000176700017710000000321011061563440022620 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 16:18:39 -0000\čtIME3z!+ pHYs  ~gAMA aPLTEνƭƌc{kRsR9kB9c9JkRcsk{kksk)c)JcJs{{Z{ck!c!JcRΌ!s!)Z1kss{{{!!ksk)s)!!)kZsc1{9s))RBBcJ9!!))sc1{1!J)11119)kR9B)B1Zc{JB!9!9!!ބ99){RsJ))91Z9J)cR)c1c9RR11B1c9RZ1R11ޭsckBZ9c9{Ό9k9){)1!csJc999ssJsRZZ{Zk9B9s{{RsJsBB!1111!Z{RB)ބsBsJsss{JkR{))cZ9!ƵZ9Z{ZJ1ZR1sRR)B)cBcc{cBZ9{9BB!RsBRZJR19!!{)ZZ!{!kk tRNS@f$IDATxmCPڡ4FЇE,VCh"ѢL)T%ECŀ½ŽOPIν/ɽ-eWw"Ue>z"]Oe'59o:ɬyX;mSm_&tx9qT3Ba7Ўwpi`@̦wo/~x+0LUb\z[,o̸u6Y 6 m9rf;{Ɋ* ȋ.c<o5mc!CqVP`,ݾ֕7f/64(AF@iRZ%G`U&$~  <[]V^ҥ܊&&7 x<"IOeff2 8@@ƥql*2uZztџ:(MV7q'1{cT "$?2*Pbhel,Ę8 #BA*#LJE !kAa2 x,w}CBKa/X"z #IENDB`elracodelangela/administrator/images/copy_f2.png0000755000176700017710000000267211061563440022627 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:44:40 -0000wEtIME.7f& pHYs  ~gAMA a%PLTEΥք{k{s{{Όޔsk{ks{{ss{{ֽsks֜{{{֥{kk޵{s{Ƅkﭽ{Z{{sJssRsskc޽c{kcc{ss֌k֥Z{s{Z{ֵ)RRs9cJk{cBcޭRsJsތcc{Z{sBcZs1R{Zs{Jk֔掠RkΔc{ޜc{{RcƄBkcsctRNS@fIDATxmCA,;3mf(tf*Sq,CќMJpC,4ʹ,JӲN3;]~s~|{7F[2Nuk/_`r'@t :Y/caO|"xBj@ [3LAPj%% ^͍li&}wyH>U05ǰg.~,Xj|b4:t5X̳T4<օY_~!hYGѩ'O'e"t\p/'n)}#:'Ր0., .ccpa֎ =w`[t8crtP{a`D)xY=:eTEHva!Zs#IT ʔwbGws yij6$!ʽ>ϼ+H;D WE)X&NX[dz*3TAwS<AFuy0)l]l6\=OǼD4Mq4K(;::)떯DŌbGglZ9Ś4 @sRkT44o̩%щ6m$LG5c9X 4PqUIu ZQ*eH'1Wp5&Vtg̺kԢ+``kEņ}gfelݒ5SZz~RoH3-EҺd11 HIENDB`elracodelangela/administrator/images/install.png0000755000176700017710000010204211061563437022732 0ustar essawireessawirePNG  IHDR00WsBIT|d pHYs  ~tEXtCreation Time12/04/05tEXtSoftwareMacromedia Fireworks 8hx.prVWxzD'&VA2Y쐰ڵ5%yo|@<_2Y?//@2gI?;Aꦩm]7u԰/4UTeS"M)!O i)Z`Wح* I]u)jQ Tm7hn7UUV-C˪)?*Q RIj(vnlPB| )kRVL BP( BP( 3~8Qqwd>8:ݎ>gؽn϶>v j# /Nwu]wƣ~O 4#3Czd;ޅP]>Ftᑎ{mcLi?d] gjL) _,$Uj} ƍ<5Rz{v;285JXw\<44O}_>];WQOO)=t X7ivAma>46qz=R yr}9=y2O9 }3Cًͯ,J)v#_ Z}Eǔ?ynrt_g}',qG)<&03eN&gQF<2xR yRz~v?#L@D W!735SC9&`"xM1# f MH Ḣ"!})d`6MHƁ3Ȁ/a~bf{qr~f"b&7Z߇*˷d`{CEp D֛g&#XPG"E3ς5dG#cqO:Lֿ K6X71TØ>9"[l/-7/S&(ǴsYwrU \8ڭ|8o[׾eZl7/;Ev Y} =yk?f .%kͫf>0o1ZoQ97Kn<IBXeB~^\5Se'h)~ ȅ#(pCk'IG>LwxPǏ?sWram`I;  U|D.dw!!Yc7/(^IQE!i0* BP( BP( BPoHwHmkBF)3mkTSx][sFfؒ[2}UmmS2(弸@8%$+e9A%h ΥͻI;ޯ㉩[nu6g]O߱Ö?Ӄ>m{{?Ӟs:>iӹ4kw3ўhkMnMpZjZJ/Ѵ:Mw;xbfp<ͣd8N䴱 MyMc~6tnI{mA zf{`-Vub`uZ'&ަubѦ Mؘlcf1lzڕ 6/BƟ!=k÷ qOt {ꏌQ Z3F[hπ9 ja:XEhx>f2LBƤ8 9y0|1v33T)Z:FCiPzu%_f#9pk.Wk_8!߯T0 k +3zJ IDw3\Kn2,-c]2Cn BO3fAYQ~~:Ƴ"1t #/Z-"NȦ)VQv^X-֨.GϾ[pD&texis8&c#^{1Md7d{azJ$¯yUʮ2\53hV\$Hvo͋\Hv ˉDF n@Ox>Gx#Hn-_Y旈/?y%17 u΍{&x1ܨ.jF 3hcVAVYIu=3ɠcfe@L?FZ/dKfЌB,٬s/hY *CЪ |+q୸sr$ubH.ZE( EbJ+.L4@IxUyU; Lv$&8=TR=O/ΤټgZRgFC=X8>,- =ճE/ d,HWU(TԢ\nPq2WS“?+Nqpv4kxv A3htΠ3B\B|4&D^_KUBP^}@ݜ0pbLS2\npKFL~mkGHq(` sw9:Μ6֐IL# o&3S{+pڃ*pw,):N^8Z/8#*d@ w-Qp b1[ߴ@̄#E g(lIt1fv (qۂ'8l Rac4˙>ews6ON.e@c:w=ó"||K͈MJٲ7Ҽ Ζ!Ɯ<2kXRd0f>h\; mYIIcmȬ%3ĸo%;RQN`{ޣf1KyZEM,*GA`NBsШ jC7U*6[īZ%L!m-ڲ[7;hB Izb:4MRm]5m=`6:N3 '7tĔ&#1_<1F*24V V$iL;bSeتE죀AbUO ༨@qyt{A>3Gz4<4*i|Y2%V*hz`A܁ځO-%-?]DdOJ6 1=Ur}1 R `Ci@?(qf\܋ 籙BkfY9_Q(s%: qiv\"yf$e!<)MRb0bG{~(]x|c F^M1!&E t3Md!R9'ЈG_ohs3O'l)UVVIT%oRmq.Zl`M0otz|<&'S9 OG}-=Y1Jld6,eVĪU?M8^LZ#&Q)"l+70\vRVLr>VF#mH4 'ۅsʋUܶٳ"{vdwN)]DM_p5}Y6i.Jz'6u I bjG* !$š${p+2Vو[/> 0Nff2}d {Yd3 9y1!dߛe=d߽vnkCԌ 2b\lq^׹vk4mcxMWvY4h: ]4rfPkkGh5*j|t~oxlHzñЙ5m@ M#OݘQk_7OM:-M`"g? -f.^3\S*5{pp 8–Ffr⯨]u7V-z 0Gfojl74CD7쪠-P Gs"t/LW/2N_Xo}sZ[Oc/Ʈ߀| ;|t `Q?ttC ՕK?Z=ߥ>7qpHI ^ί}&M-46Q3^թD|C$4NgA'_ñ0la(n8(:;opvo%C tJ.d gh,9s]rt%Gqh%DA|v\s9r=@ }d蒡ՒK.:Cځ{xic%g/͒K.9;W쒡K^:C\[2t_3C+4ygعyW_gyvfޕ yW2tYkyWrCr]%Gq|3Jv~\μ+ٹd<9g]˙w%C ˙w%g? .gޕ]rvyW2C`r]%Cg1읋#glщy粗z-I2g3,` 9L[;74>C_}!&=ȕ|eЧ툮=1"­u[:j[U^S۞sm } s`7-$rLDv-g=QCۥ'[3>}ƿ>&D m ]2te` lƧ0_DMb"mFV2Iq1 =`j<`kԉ}9*1|gfe$M_+Cȝ|U>T>O 85p~>7_UY%kK{A=zPni|9 `oGu)9`v1l<Οym࿠MxO5`uM'=o]ioG6̘{oDKLO;WP ^`ܧàiLX4RzR?s#BfYqJ^dGgHF9oWژt ww.wl33+vLcČ"5 Sazu1+0mn>8msϷRʗY緦[pDҾ«6 &BOjUE\,%뉋-}o==0De&T-eVJYg%Q/y-0n, 3ZE ~G;{i!6e9<&󒏖93E2>I>ӸlM'I`l^;n*6iem@O2E3t:i6UH CElbz"MHk51QMkBQ]!."c" ф-7 W\40djc52FF>)EZkK8=;_)*|5) >F旺G b .![j嶮Qߊkl<2 , ݠ^X]bOn$yIOXv0( FG#ھ|.oVb܊ĸ?\vIH-{CVo{VRXF98{-GY6|dgdX:m,6dIGzge+?u|IJT#"EۍO&.|O/lnsi=#^#:[FÙ7^LҘE9mҧUFZWydA5A6 j>4rz}j>q}lSzW!htt#9Z9pK3i=-Y>5J5G* yGOkbӟ5q\6olbt~cP^Byb3ط鈹5yX6honh?e~|cP6֦3I5h5cW -ZsV9X+%Im^Mo1܃YC|XF h‹CNnj2MIu]ժ H7.,]<ɐ~$Ɛ*IbgIxGȷ QsxsavU=yX!w% ,czf^",<=rݝݤO|3m=ӳ`21>uwcibIu2v9^6xb^<1^NXۜf?kM؃AXn ~:|9V[I>eڋt{7iQw;=t;!;X.M}Hӝnml.hmFpf /Ǜ_':lmx~78x =4 N=;"udz֦*Q=\ݼ}7ЦG~')m|1F6m>)mwqoXQ(<: [i4>p.HEc/53`.uH@vk}v_c^4h?8pvҦUlC TTհYC!4 {:4Akt1؞`-[{t׺쟜aOƁ= wlXJ?pE |=ltj] >!8qvHkmkBSx]N0Æ WM- 2*5X|DZ=fLc(F? hҶ BLrGpodgd/e>f 9]WA\\Lf[xilϣTs1H QlHاEt(SAZ_Y X mkBTWx흍8 FSHI!)$FRHnw HYx3ꇤsaaaaxIǏ'U{o_ھgW9 o'GW {>~Jlo߾)*/N\ϱov[iZ_ձaJΝ/:6O- 92b?Tlk%?_21B sY5>:>c=1Ow y^- ڶ,XzusM#גU]>H_yYv!ۉ_mi Rus]Xm_g)YY)m]y,m z1aaaxEߓGקo/Y\k6xjgH|yu.\aæM&wk#ϐ$?]Mo\Ⱦ,/ڥQ@~6s?)}, l gX #vQg Bٙ^uのuhm?}{].~}v_J;xogJY]޳@.)oqC?}>@Xߘ'-(W? źvƔOʙRv[K?[A}?-wmՑ}g\=c}M ggg DŽ-B^k_g?F? v0||؎=ǧHPgs/hؑI t~{n^}ZyD5XWvO)"c0vY Z|~_%/,p\ɹyΰZ/;/xs_9?Pܯ5ݻ\[y|č8gʱL{? 0 0 _k3>z_\S |<)b|7aaaxn.ta?l^Cvkؽ#~e)3<3^kdlc&jK+o"e<.ʞ`^(3zu l+6v<ï k7]/lc[`On}򚄫 G뎱zt^v2)?;Wmr5ocIz?Ozx{&!ez."ѯ 1Gg{+ҏlw<=}GݽFƨ^)zIpG K֜{{e G12ۭqiumf>.}~a? 0 0 [u+7Svq֭y΅ ?ނ}XwŶv?ߩDZۓ-q/?߳=<~#>Fk"qzrQo 9r,nY[;o:)@-`ק-7({߯S@µK9֠ɸ>:n3 _[_*mtcmC>qSL=<6;ǫsaaa{xˌ\ފpx?0׋#5zяc]x^l򼠕(f:~٣^lin59W~\;?vn6erUbS~v^U O7O(|;+SG4|?f*?rW~2oNٟS9~daևmH6mX[J~s.ym4ٶO|Bd/b5ɿyU? 0 0 0 0 0 0 0.P~*1@G\⟿KrKXs2(ߥ纎J8'>X@▼QQbqwx b)_K|v 1M6kee-2Ǜ59?K^E~9ϱQﱮYF8N?~;:=J<-tĒyNAgC \NXKs)'^Kg\~2}6}Գ)n]Or^j~"{p29w6/.z-v:+M{WJYZ굢`% Ҥl9ힶկ#OUz+U?;sd~vND7*.Y+v:ye;8}~|+ÑޅN9}{Bƞ#txխsXɿkSV/uJ=o G<ջL'L:D]6jfgLz/+ؽ[{rCMYq~[{yy czA;w9zszWHVax3 % mkBTrpx1]&[8% )Lb0 Dr&\Tb *RpHUAC7osK.3/ЌF۝}{O{sb~ _?L׬MW-L[LL]O>mŽrgewͪ*jnI{uͦtÇ7MKze7ubn֟}t쿃qv:mg]A+}l:e?>.m{wuz8<7Ň|ǟ{y?s]n~GZw Џ5xLw~wҙO?XĦS|;e_ZxG{=fZ861sh&[O.t]?ή< R?nŽyG}6xE#Mz!=G ˸sjO5<ػ{8wS$oi؞5gީı\\:>kl|#^cgwҘ6h-QAFNZޣM^W>+9Oʿmyl|z}E"xmJ$?py/?}u?7m+qӘ>>]keYr?屢EWy0s#1{Ā7ܣH̼}o&cHQ޻3F4P<asg4OǀUc@o>y(q󢑸ֽ)$V:>QG xΡ_b~Yqڑ\Sޗu}Qv??Qx z>c;pvc;#ׇ~^p}Fn#;(Zf؎}õ18!Y5u :c|1<|9kzOH3\7w?c@cvz]RnÏkϟ}⺾5@/p. !1 c=?2{A-rsy{swq6gx>|w=ݟ [WBsw[x|kAn=RQ:P{B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!]xmkBTx흍) q ĉ8D^>׻gI@XjjgiЃ`0 `0 ?ϟ|:seQ3|ӧO|:2|.};7eGFO6_Qv]T]^ˮg{>pjzkuo{yye?{-x/ D:3D&򈼹e^Hyi#/OGzϪ߯_~ :sMe#M3Y#=2 QЙ[\s=E8}E>GȩT ڲTg-}VfoSVwzV}./>~!?U1<#}=F[ ~QڋBN..+푹^edLo+[\-k dW(}6q$#?z6Bөi?L7!3O_Q}Пuo[=tkȋM!'}/Ƈdr2_Cﲨ: `0 :8o=+8-4}۞cĥXdq{bUq©ήm!ƶg*ΪU\z[GA=^+ru{LV U?)V>ғ)x|Yҁgi\yi^cUo*= !TY?rfgWsʽVn*VX#=Fϫ+[F~yH\L~[O҇h5ݵTow|Sfӟ+);F;:x )/OS yUo2e)Ve3'wgGg=J^`0  ľu kU,Ksؑ5nY,bXw{ w&3QהNQev ]ƷgcH˞i{A3I8hwduwUIWq8I>+@pQşGcZ\ƪUߝ]/:3d;ɫ:gB9R|GW~w2;fzt|+i5nΟgZY|<1NyŬ|E7k?z/k><=Α}N΅>uWydʬdz `0 *\?W8GY:Dgcg< 2+'W6qn؟{ru"wU쏘~c#T?+y{Q,,^qF/Xv8.֩g3}ȸOP ~n%hUG4(_sn|W}Tg&x^c,Fѭ+ <#+}/Uw8BRh_|33!mr\7U9m({ѝpvew[xG]߱?g;,nҽow8]וb?OV=Z_#ve?vN_WrYLo;1g9pV^G~>[_vNOS3 `0Q[ veO\k^8֔v<Zbz\Opbn$~}oz3ј mK vU]^iNWA#x딫jt q :E= z%օq)CcYEqyRG-+u (K\hP'*^ء^q=m=y|Kvūe\rȊ4={W1;=ݷxp;o@>ȘT\Ԏ+C=*ɫ|GJOCW]x1.ﵠ9_Eб Vq)v(ʑ}[GwǺ{-oSdו_˞׃2;iT&w*w:g׭SOsj%Z[~_˯d֮+w]7 `0]kIu+eL]ւoA^;=GR?v쯱;<y o$N1紈=:ߥPVu< <&3KyC/4r)i=*/|Ύ^]QNН1qGw>ù{ ?Kv:A}E:_n+{u=rq͓̳]>>d}+|L01`0 leg:׺񶊝`W,3O?]\9P~[kOWiGc~)-<w.3q}'vuw$Vnv(r52S;Wk_Kϔ8B/hEՠ'9w?K;x:x<|@cϽVyc@ۖSw8Bq]=2lBe6V}eR( VeZT4ade2ޒ+nYBTqSߔ<[&=f[|szP)G}{Zׅ3n7jpWwftEw[ǽ;`l? `0 `0 `{~i`oLy>uoi\qK|}7Svu9G쯿c¾#>,jow{ՆݲL=mW2u_8دjo?kD߱mw>#}E:OۡO;y`$jwymkBT6x횉m0]HI!)$FR?6c>>~sm+vuՑνYu8uN?WP>1JsWiV_uKEϸ/rˆ_gKW]ױEYcl,[TYHT}xL#}A GV7^}>iҞ-i;}LJX&TP3T#ߨgJl e'=?͘ona|7>?ǐU%;/mN/IfQփz{G}?v✽3X~j{zTAO^ʰ>?sy|G)PU{ ..T}6ڳ-F`p]k߅~b  О$wݓٱ|sCoA+q3lOx@(0a+? T,_7s\Ϙ^Bl1)C+k(FyN"8dPC_9>O0&l4Im+nwGrŰ)/tihf ѸX>E)<,6s45zb?J\<OM%O#(76:= ӋYAƒH Ls6MXBcX&ǘJte. 3.je(??Lj=%wZizFTx$kP8Em jAOހ>~؆B9 ֤8UKCvjbL Cy ;mj P. DkwUE€3ܨ8xUJs\ɟ+;}sFQ(KIXݛƨ 1 +KdX];Jģcx$D׷X`i @l̏rnm$^9΄zBGϞQ=nfkDe; <a>,⢞jk0B[p($Ǡp4 nq`XƓ vϵ.xHnorJ5Hu뇗 f a[Z:>36[g RL؍?( &w.7C#~B{] UW 71jk~ecGrD.=K@WDZM0倐0\xvqNZ ># BE )&yA}t?B Ym(WIpɱ |2+\2 )l8tl@Z.Be񅋍RSƃm>dIl'N adĢG3%#)?$s _5=YBR#-k"qGP-e"f%֩-ϓ378M9ϊ,_*n;HEBƱcl~ ˝[/sagIE2,z1t:kLș壋G){7ond{@rP>kwk׽ #kXfyEAB9uM4P=_lgW؇N#_nGpp ,ZUu6ȓVӰ0EK7*|]{75F\ԶzQz! uH>upT٣o3P)[^6` -d&*=%fY<^ط`_6|h3ء>2 Pq7ώ ,NsjF=B` 큳CiU)R鐏@LҮǧmb<2FHRqùFXi䎲OmGA}:*u f:@ʫRH.66jcGOpO- 6HKJU:Jǃv,3DZEƮqq7p?ȌK%ȧ$;?Qr6pP7`a^=R_)m>D3#£ _' Iɭu͋C-Rne㯄ssL<ȭ/R)|Lt_1Lk=rr 4/gEr~PnB[\g[{gYvRW' {Fem1{ wL;7&$xc0 n&u@5sCCձm8Heft x{q(aтa?Q%l4ςxmWI׆GC1kQ3iJh,KRO`ʲ4)%b6B8\pe;u)ko)#WSncRx{[sXv195_0Kՙ7>Tp5ٴl3S"؝LX睫[5m Q="u}pϘ*xbՉ#iM+@Z! Ϯ~jYݬ$?5mtu] %@݅:4h8ۃtu3; ΑO1A/r R*5i&j#Y2:$Z(ad@>'z L뇶6Z8|`6"X1_z' F-я?X^ A:?1;h/KVB' vOnFS ƤQ{=kh7MwXQp\v͓O/. N3HKRlK"q^Wh1wt h@3e6N|I;y?8t[[! $,ήLe"z%IކAkRl!3u8ځy?_W)AbCO!rza5Sn֗#<43y6"R߃CQ&>[# BHǽ{vekOTlq(UH͵h ݔ8,@tՂL{p/*L"d_y k,4 G̖bD>,.ok"D;|7[.DCA#ilϟI֬Dq]+eE _-- ڰc^Lq1~CCC9gNH8BkhJ#Z-`VoMa 9r$պZ-hkh ?C$ ^tď9d(8P݅]ڶw[wl;dn׆oKd Hބ(DInI M_(5)6H/Y1 QRk,nXHʉ?>df&6^EJmt{CCc`0ʅv5x<\9Yc}106"״!֏9dl:' 1H"z'7QqɌ#KR./CVgQȬ\ `?d1yuM6Ƶ8ZX]8^pwQE &1frRKi$GݜЕh3'{;;~FK37ku<pdʎ+C RMzƏ7)nҀ lEGyl:̑IoBS%|ЕsTulebA}Aʹ10A{KʘӺtjdLI=r PRg_LbR Şl?␔)![Fo wi&k^CV(t@pW2{hxHGRn͉eCbxԉ6GQd27\ثdS=\Ff*0ۣOP5(rZߙxQZ>~GAeN-jY7Ҿn;n?ӹ"Px}/NW:݊&׾:x" ꭥу;R펔 c䛅љElmG§a= h¨BG_uYnZ쫭FYs U"zM&:Gnu.DX5Xn;}ԫ%XO?~2&Frjj8 yA*W I9/ub)Zl: s 85J>~iI3Yԕ;:#hELם[ROd^GA˩f~Y!En0~/A Km>^WYq"<цF*c:xw|͞w%ehRgd9̕v3v Dgh>>?3hYDkgC(ʹƒԕSԜ| 2Q94(?OGQ34 fccPopTYaW(>@tX4`LGٞpɄaŰl\[9c26U M6f,'C4i?W~psϠ?kAKrŵk@I|>^xs?\`,D̒5W^w DMXf_8<%|8_왉pP1Wlm߃f?4:́_Ԕv M;k:p_sj؎qw]$F}y ,b'N=o0, ~M YR46+!}@~ujctCP.Y(x׎z?70WXFܣo3z0c8RGg0 TU򄽻w"/4֏CQ`[{Ocn]+{{ N!33+5]qpj' r9FDȬ)~: 9Gmx2-?sraG"yvUpa;Ră A\& ?#n 0eed~oq嶭!!DzP^H)>oȑ.ļԶ=Hy7S-M ?8ycߧq|#5"2Б lm#UeΤVbM͘jAc7Z ]> 4gb s 2WRsKg6 's8qzTT[R[w)I95xWj #!nN+zPڔ KgTE,?{^RDݥ=Ru^zîc&D'i74SJߔ&HUG[crͦ<׿~4}څh;lpAZ%XZ;tQ?yk1+Ƴu6[ Dc4Ɯ*dB#!}e>samhG3c^8u9󼵕⸈߂UyB;f "Yi=D =4&|C3g]~WgjhSIXU"1A5Fr4{AljwTt6</N \Rta| i>T.Wo>>xϯY{緷m,J{gg}v~)]s!?wXGFl!7U|Cnfﳅ:.@mq%臔Ru?.:aBֺE#Gg'yXDuSWNJD)21ѵVagWPqȒ s?¶@g")s\T{f3go^w:^"{d#!φt},nyWFKv„X4|VB~,˘_&fjp/WԍwaO H 3I`u1ͤ+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_Wݚw) IDAThŚY?Wl뙋/yNGR '0J ]C YD6?JMU9%"!VHP %քnG%yd6=3,+ᏙNW޾>>}4e+FtҒ.m[A+Kq:7F[5cv- ZibS9\0)tiKt&b_Fga2Pdzʯq\`HOP}ĖViC XLI'*1qtvk:i:MdB@,1o%5A4^Be7l)eC{ " [I8rlJ >Cw͵$`\0?uրrA|L%Mv2m _Etu$HXKEذ{Q0([ ѸD[ž?:{1'kQDvYoM.X7X2KDQP z6 䋔˷ iFjz@ $]lS "6G@x#GA4X&d@3"K%x`^>foУ܋errv l=GO2kC< Dɀ|6IPK7V|G0㟹m 0j?Ng6,DQ:7 {$\lR`x藇?H#JswY ueK 0y N^_t1op _Rp((2aRBD6,&sss9rddF̹;t]~g>zQj4iۥVGǵeBDQyE#S`GgΞ}ԗjf&w5>PCkPui?>pQT*fhZ8)%1v'jݺMZUUZ?ăO+cLL>ߝVm*/C~\:?D>d>Od;p/J+B䉓Cfffj׬="Fü2o |혞N$Zk ;$ "J\fIѠsǾx q/s ^޾i\*ccctIME+6a5^ pHYs  ~gAMA aPLTEֵ‘"tRNS@fUIDATx}S @ iҪ])l0`r]_"\jpdͨ(8\cDS2w ɸ(=!"@&Hh2eVP`,+]"&mvJGu ]4t6^$ZBms[a78{F]Aap5(釗ō){Vbo#fTla>NR` ̦FnMеU:'۶p ;lv]x6c J' *UCPP"6^؞x\Ι9sAXa}k}[+16>`@Tpnz{o >(ՑI$޶d^mT*3WTm8i>0Vtu(X {?0e5* _۔jْ;M$%P +:2\&S2VXlĤ3Ŋ} v{R]X[KSfHz}GerQJĚ"3#vlu 3m<`Dhީ7$T(ȨY-G}^I,ƈc_~4WГ[Wqa[; %+Rϼw?ԊH2!R@A˚e55 y}s6WF{:}DY!H2MY|sskA\k7_D "ӏ~wWͿ_( j٢zr{5-Znc/#]&?>Bo?Kj5%\xB(rl.&,X&ֽ۰g/>Q"獵ֺ=Fͩ3ho~|7ͼy_OicÔՙf9YqVS/-/{w>qxo.>{Y?M!PӔ/4J(б}]IENDB`elracodelangela/administrator/images/person4_f2.png0000755000176700017710000000425211061563440023243 0ustar essawireessawirePNG  IHDR szzqIDATxik{}ۻk},3,!I&PPAZ_ JUU!ZҪ @%Q8J p%lz뽼z<b(*iӄ/_fޙywyΡFo \_|*$_#,_=kIQj :h |@.fJܲ!wɚ#S2a9hEɠX)O* Z\)EUPJsnb)-V, .v.m[}]QTf2ǨʀeYX? DmtQnۈ~Q[h(2w'DFIv q$j\9Ծ_Ǩ5цR tzp=t&tvvpq*esu7_T`$m겾z^^PM\φ7rɥ ssN4x'݀d`󊵽o#*VaS) uo ojШ@i Khcg0 ]5 A\-ٸq3<@-`s`9%G& ?g놕x|A`iV]ATOyeKlz -) g:X&hUd3`]8 Dp&I5at泓ۧǁGprлcP@Z)\J'LuEȦ-Le8NnM[,.#X6lU𙫱 6_STȵ%tM# PT1-A% Mvq׾N_``JpB;W^ mEV N'&yǫefTFrdw{lrEȉIi&&HNM驥jT9MrM| R!SŐ liʖeyӦwoh&4*2sdf;ΖzTuV3)`XUj@탁 g vLL6[ZX |Ri,gFy`iVLW!)Z[ST)R0!ӌ,6#|DoIhě5@4&8v̒IENDB`elracodelangela/administrator/images/disabled.png0000755000176700017710000000050311061563437023032 0ustar essawireessawirePNG  IHDR [AsBITO0PLTEŵ癙ﭭ̙ݽߦtRNS#] pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004v]IDATxc{ ;:T3|!qƟ!QB&}Y %Z zz|fPݟt5h 3|QjTԞwH_hY( IENDB`elracodelangela/administrator/images/delete.png0000755000176700017710000000124611061563437022532 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 14:46:37 -0000vjtIME /#g pHYs  ~gAMA a*PLTE罽έ–+tRNS@fIDATxmSY03;_wI&mWjYH, CyYꮖ3~S.3M"3=HPTkBxpS$= GR `n ?10 qd5A>C: x?˲) {x*4 .C|,@gq&IENDB`elracodelangela/administrator/images/contacts.png0000755000176700017710000000250411061563437023104 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME#̦$IDATx}oTe93sLi2CkK)J% 腚 1'+1zaJ"x!@MJnӅNٷ3g֥ݛ|w V} z玽{^׷ѓ^÷+rQdpޏ2O@.v}-6a^Eh1j((kvҘtE{vWd4P4k(Z^_{:!!* XL'F {}9 7?iS"*.6j!|vBǿU 9\<& x<&$|e"eZRXK **~JdP )vC]ln>Z5z0ŏ?A 1p\Xam}iӁ s$)QF)R"XG& S@Fj0pј##&bRAW \!:z ÇByP#D!Ntmb_3{@v&9$FQ.~֐#9Ț%)ƁCJ/#!b%RŇMLn+>;Ntw ?sy$>@ 3SUsgl; R_wc৉*g(E?* y\~jbzt9@?)ֽoip\.B!ᤘ#,y,A(ƢIo!n?SIENDB`elracodelangela/administrator/images/unarchive.png0000755000176700017710000000107411061563437023253 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeTue 3 Aug 2004 08:06:22 -0000tIMEW pHYs  ~gAMA a0PLTEƽ!&2tRNS@fKIDATxu D鋢,흂+Dk9)=)ףʏZUr5T.LDwԲ#}; 0lnm\I$gCzdwu#biCD[+$t%Rw 3!&^}m|,ʍ1c&bǽ@ 9K,+c4L1RKdl`4&<, k Ŏr0?V̰7SLBƍ͖  pu ~J/b+a6%g#6 ar9m= D>Rgl/',+08DD;3c53IENDB`elracodelangela/administrator/images/history_f2.png0000755000176700017710000000500111061563437023351 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME 9 IDATxڭ{]Wuk}ιyybמ,& !G` ABhQ"Bi?xPQiQ!Ѧu( (8'nlر33xfܹs=ДWBaKsq7x+-l7"W 'dw+֏_yZ?'8n +JΑ:GCkl|x?VhCAF8pYD,sTcQݡsɯ;_ x"mS҆RJEQizyQ䕢5E%#1b̆sfl5oZߵ' "4yDP Y"8 " 4B^Z]w/XwzTWsjYӘEegn-{:K 7Ε^t"ЮXAZ[9Pl*Ϟ'}vxKڋxF%D t0n*w|Ik|<Iyc!Usogg.PDm^_IGw# -o/:ƨV<n$héGX]z?7Zh9|Tp\L ͍4) (c >Æ5bO09a0^7X@ 4ϋDR@pRJOđupo ot1616=<< 0WҌlLeM>[HME 9ug`Y %m('.yX)\iu# "gf??FL͜mmv&"UK<Z(L!)1J@dAp(4Q#F0򫮆b_QLv+_  cnVX6ާ3_ɉ2[ju=d]+ ل\ªVBj_QO/Ei6ndj ꐔ-D).PFMƑ0/^ׁk8Њo^ugwm_:$T#?Ƞ~ei(-$YVsCpN+#eapDiJ0zz&"cxX;/yNV: ~6S4в 1RkVu:YdM?;Ffgj"毯=yC8177I I\I6K|MC h@8 q\Q=@aR*Z^PV@%@lh0Ik$-aC'x:&ט}0+q$ntfG`>őXGg88v,K3v}}׍07W#ZT{}UU iž(M;9,sX%$MEeb4 _P1u #dr>_Y,= 9&ڦy6c_up?N/Ӻg_ EQ#5c;%Lg @ 6`gp[)BdBt;Fmx~8Ϳ){~A+T1+[Vi>u i`|D3mqyg?T(/̤ m֟{+芵FG^i )ha ȏ¹ >s =.VFȹ-M|;l~m&~9|8Hp 1y g { ST¥x^5Hgi.L =?0fv__ %SYB F Ȕ0"M- g#P!CW\1d!@Qz=d7j<&v `7X}\6=rZ#hR'` GtI.2{Q?EQ9a>Kx& ;&OW5&EQ+GVy^GTqÒ *6|r!ịa}asY ٯ ۜYy\_ wiIu L.N;bgYLSG[~ n Vm|[ksjmwIR#H˹,;s"M?&t7c@[®PHjy=NET$IENDB`elracodelangela/administrator/images/junk.png0000755000176700017710000000250611061563437022237 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME U*IDATxڕKlTU>fN;}̤`DZ D7l%,jҝ NcL4A*hBb[;:פ~''9|/#s_EőW}nsI.)~-]husuwY_8pxp_=ϦQg#JEĺj8pwh& a6.^foQ遘AA"Bs-rcVm?Qf4\9x(-۴b23a{Z&4\vo $d%[ÑDWÄA 29(U9](Qp4H b!Qt1Po5JTq XlԠ0P݀f\_!|1P'O *7iXƕ H Ab$AXT0A\'&< ڂh^ *wbv☸H(j)"DF-_}ͦ*PZȰixI3J5do2G}b22wc8w Mv  Q̝=g^ۡwhL$AE!1"@dEt.Q㝣z}:`qf, l4bo`F=s3ܺ\*(.::aĎ{+ qzu('mQ(NƯ\ƚ|4iQI1{W1CsŏOO2:[=$҃)f(NCÚLx /7aI&%?zcr  s"/X2C^={z2jNi.d?yIg7 Ţ69{b!"L 9Jc W7I$nIENDB`elracodelangela/administrator/images/note.png0000755000176700017710000000253111061563440022225 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYs  tIME6#`XIDATxڅKlTeߝ;t: S նR5*`DC"1FLXA4.Ldh`1bRGY s;̝}}.:wNynӷ;^rWjeV/Q %?`]Rms7poDignQ N 7 <:X5@VtgT4 ъz|x]$%A#kj^ *n$ M~%޽ &%zDZ{B _XHl, }'Zwc Kݮuu c'>+-LҎ 0Y}H yؓ_-!;tyS&ujW,F2G\#K"y+=rIP[b )q0~4!Q,#ed}1rL` ck۩e{hb 48kI0ܩiqM;V :itQ`aXF'>e 4&9(ވ?4R5XFQLq,Di%D3.|E2LO+E/zp5Of.%qcr?/ u\GI ^\x !9>G<L8H$0Jq2,ȑ.x<\.RFDb#YrfI ^$7~tIME5f'IDATx[l\Gsݳwk{=4iӦ)JVZJPyAB!QHHU!Em^h'Iq^zn3:!य़t43o73!;?VnIT)mEB⨣ 7g~϶+@6)aB0 + kaFVPCbRa;;ǎ7 0a-uګ̿u;@g>|O!HvN EҦ@p  LeӒ]C Y P,_ө5yuVۮg6]WI& $:hV ڧLP}׳g-d282F2)4>3/ξ/v r`cϑ#T9¯cq~߃ Р5Z+ QwnahB6UR"hUT"}w N9`cTι{n=FKL?7# {B(!IMv4P_k )|mr{#L0zIX+ jC{ %^CbҌaFr8:,PnB:$j5ٚjzo/)/+cl 7MG#@k]74  @)PH l}~{22VH,FtH /e7#vqK"eJt4BMW_o\(G.J(CZIf7@8#sfMZB4}Q~|Y^t% %clN1 ᤝ=<Dw.ozzQPG{V-) E] 2JϓLey")TeR1Sdǎa]zqQΔeKR(a}uѽaA& ˶js4.!8 }f7G:m['ؾܾ Zc,-Ra2XD*tLk(*fdF. Eŭu|tA>HG+lv$(s 9ө}; #%B:36r:Z`Fl" J}$q{.;΁A.TPtՂH682ݩ̞5NLjqj1p=ֻ/"hLS`GmbrrkrOyc U8, ^t鐰SSllZၻU(1:9xO jj;ť2-ZH =Rjg 3!RRݖ~pp3_d@>㱽Y+B9rcZ+׼O==n'NsW)K.-vA$.@7PխRR~iN;օ|Vo1Z]i-l*P@ :־zt$ 9Z(*Ph͝[Ξ|u1~M pyO6*z-oׯk~~/t}luSL]|o\ 8]Rcr;}L~+WVnt7w*u3ԟҽ}s +NlSggN_>\i͋f~~+X@|_ yOϽSpuf][[Tҹ 1y}@=oĉfߵrivIENDB`elracodelangela/administrator/images/unarchive_f2.png0000755000176700017710000000276511061563437023652 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeTue 3 Aug 2004 08:06:22 -0000tIME' pHYs  ~gAMA aPLTEεƭ{{kksֽΥ֌{{{{{{sք΄Ɯ֔ΌޜZRZ֜99B)!!RZ{ks{ƄΔքBBJRZs{ƄƄƌΥJBJ{Ɯ֭֌JJRZZsƌƔΔƔƜέRJZZcs޵ޔRRc)))祭ƥJJJkssZZkccsֽ筵999RRZcZs1)1޵!!RRRcc{119ck{ﭭ)!)kk91Bkk{JRRsk99Jks{ޭ919{sBBRss޵΄{JJc{{ΥZR{{{޵ΔcZkcֽΥޜֵΥބ{kkccsk{skcssskkskccskJBckccZƽRJsJJkRJkZRskkkcZRRJ{RJccckJBZB9Bss{cmtRNS@fyIDATxc`>Ȁ>~b|{zY9M\wܻ[ ^>Kޜ6Y9.^dNǕ3{o8*Mr'N:=g:ݿ <ٳw/H~-# }Νv2{k֖[i͛goeؑ_pQeGMK.[tƊL25gZ 3gΚ=gWnhrse}ٵQbu~~aor|Pt@^iX|{?aֶ|KoasesKc|2UEiiff>bލlkAZɒ|tRNS\H pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxWXP UKdX ۤ"P-9 0"%v{,*`ϙλQb B;ۧ 1T>#.U͌=$|˥>^89c4.0(pk!KaTٻtj M"& FRo#(R Z888 Ga5)tk |0]86:ZVMWQ'4A<aF~}AIǸV ]96J ,Ehz "3G!B. [a,eP G?H iF.JtrҎ]g &ur+CgPV26#N m$9"2ߤQ cood(1(=mLkhĎFChPB6BEy$k@$R(bVeAS! &׃\oǚ  a4(ʶswzezLĨdv@r"evTGl?M XxOr\ hiYJNZ=c!`pLiN)]tjw@bWL8Rql~V(%3L7V[(D3u/LW %z<dSW8=z^-FQ{~!gP#X*_uR&KĬpO}0\2~MVJ=C4 bx\`^2~4P3d!pYɕːʶLEg.)Mp{/}VHV\SeqpjqW-ި`KM(DY?}i8Mrpcs~&4qEip~bD`+Wao|g".+L>Qɍ!^I&ϞEOp˗\v oޖ9'-lrh#G?O=u̙3g ]WW@0?7?"r7PGIAaPPwxzza90IN^!)p}iP^^!`Pba ƇEDG)Fŀhyzzꂵ*rXY׳wpqrvqqtd&F M--m]=}C#cS3s KU5&VxWPTRSQUSgaE· |B"b  `dbfb^&d0IENDB`elracodelangela/administrator/images/uparrow.png0000755000176700017710000000045411061563440022761 0ustar essawireessawirePNG  IHDR(-SsBITO?PLTExTŒ€BWܑۀUX̭Аa[Ը蒯֑~VWr\tRNS+} pHYs B4tEXtSoftwareMacromedia Fireworks 8hx8IDATcA t`BcCaaffA`!0308XYtfJO,SIENDB`elracodelangela/administrator/images/properties_f2.png0000755000176700017710000000477111061563437024061 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME > IDATxڵyl\WYlx;YZ'i@PA *(KEZJi!El*W RAh*($DmZLcN=x<ͳxq ߓss—7!zn׾֖76zO޹ >7jLxR5/`wn۶tB7ڵwٵkP_]>3ъE&`Jm7xnwi)]n:{{?pjod?ȮpW-$f]GGyHG~'f]={O.thnnpt蠵B2V|\z; 8a |} iUps}U?VٿM*6]p8Np8R8xdh. 68!__wcgc**`F[Uwl|`pm-f;uJ\ # Á墾!%kkk/P(hP֨s+7lb{{8?gaqжo`fr3 eh*R ǃ ɲ]&R]>B1+rGĂݛ{lsXoi.MJcmuLT`gUD"E$ c@?fabkAUA Z-sMu7  0钴~O4`Ī&P0,zo>\%{״Fȥ!DlL(R" [!ga sEUDD+67$Sq;Ėĺ4ԝ>J(#ri6o٣ `Z)HCU-+$ 1NLZ#1:k"ش`x+xdߍXt5R\,,52=0bs*_;5prX+@DkB"4hhq7,xxC$JAɪxjsUz)4gF+Jcc#C{nayp<|*Й3 HRv{zNQ7W5N5@R*)S!/?ʳA7]|$}&_;,7#QFH4 597m+ uo PUy(hb.ܹ8,B4Z 0wBla(a x>[{'t5P.d,H)N'x  LA))%.$Ak^=ϱc|s=Rí$c/9LN&3 e6^H,T),EX^>JXajضW=="+9BјXʦOƃ@(T:ZƁo=#7{|\#*ѳƢ:Xȯ₡ځ6^ PXVŬp IENDB`elracodelangela/administrator/images/systeminfo.png0000755000176700017710000000365211061563440023465 0ustar essawireessawirePNG  IHDR00` sBITOPLTE(%'xۘaZiEH@^wxxQ7DgLY!yB|tKG+<7I|P RMr MGrqV4(J%v=-hle 3f3Υ_[uJh?%eC7.AuLHlWG(2!NJkD@X?`;G':%=b`ڊ&XS|(o'Otkvo cM?1]-{ʹ.fA4I/٦*{Vff"źB8UGb>f3333="&4q-O=][#95Cxm@6\Wjk>ZHKGd،#~nP}B%;tRNS{ pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxowH*B@Ѥݴl)tSbm(Z-,a>P{\ϋ9sܙLL]A`d91-?+ *4d6A% )pXhf6 28'M|vXG_oƢ-d2,\o`'T%r"7=ɇr!nR}0%xbX"&$M=ɰ'e25Zt1^/Xu'`^zF>2}älkJ,fШ~_d̠}SS]RmX{wSZ)m F#@d]ζ_ܓ,WwjEm۳aZ%^ }bVސ1wƛ ;Mļ|GJisw+eNK9$׿y+"2_ݗ>IENDB`elracodelangela/administrator/images/downloads.png0000755000176700017710000000212011061563440023244 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIMEȮIDATxڍMEꟙٙgvfYc6 ^ 9xAAģxoDA"EJ"a$&Mdgݞ0I&V]>W\z;*#/L͔ 2|wWcpo@F|1.8Ӗ@HM  D k2=V_&( )1{67v/Y 3[~D}6v|pr Axw{<JOO-/b oE{,O~%cE2\$*PUᇾZ{v@:c`0\CRaܾ^CHD F̅=)WNH(yBRg M lwd!>kkM \̅ ѤZY/&ě{5y(Q&E4HS˟aΠu7:Pe4] "B(a,_4oeA gݵWOɒAcH1TE pI( L<GFdj,rdh"!%#r&2@0\,zYzs:|:_ZCF bFKŢ1xPIȀLlKt*gG$.6Q0D B.b ! 8؝J`%E#!}z!1H.1CdMә5$EJƢpqp nN pѼh>N߯.8bI^M45w37"]|PG࣐xx@zxei9Gt$ OyuR$X$Fsp![I72s7~{|IÍdccbRx{\f&m:lglnB1{ 0EL?Fl}CIENDB`elracodelangela/administrator/images/filesave.png0000755000176700017710000000102311061563437023057 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE̙lkkBB@333𶶶)((L^>zyy癡SRRg|VΝxi;;;JLGֱâ^]]UiErrr"!!7@/ѨZRRշΥRJJ`KK6tRNS H pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATm0 `LƺʼnΉSOdK6$Z7]~1~NE"7~( C\#$ ]3i0#ZQ$JU0qMtFA7Yx( ,p=UUV37wju:3IENDB`elracodelangela/administrator/images/index.html0000755000176700017710000000005411061563437022553 0ustar essawireessawireelracodelangela/administrator/images/rename.png0000755000176700017710000000211611061563440022526 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME Z}IDATxڍO\Uƿ>( ؖ15MEj#|'bƴM1- rmA0s?̹}3=[kZ+}!߿]ݸQiCj{/V5h vr:r+{k'9RX0;@|~04} 'pI,A*};%%QM;A z0_+ۙixzG:T#[pФWQ|#W. MСCG %Yj=6( ``@+:LM;}۪Sz_ֶ\b hDe2 86i;ĒAm(@On̡׭ {rKM r(B A _1{H+Bnwb (!0P?/QHcT|CEէ. OW>_1EsgINY! )qk:> LPP,Rz6S%qU> /F1]u| ["Zn+jo}]B~H&)g :I<}'uP_Jͦ 5C9@VcHǎDtύH!<5P->jdLe)w$.BхF5*XCKId$ K4Et#!\kSCYE'秐|pVB+E"$,q6/Z=0UPH[(ǖ&V HH7,.\n&mɊiыMèw3 ,H" 0m+ylt|vZ0Б*"rc: Q 1,T5vH'җ#go'ј~[ceao1|ԡ_my-=rX:: HW'*j"IENDB`elracodelangela/administrator/images/switch_f2.png0000755000176700017710000000262511061563440023154 0ustar essawireessawirePNG  IHDR DPLTEU$$U$$IIUIImmUmmUUU۪U$$U$$$$$$U$$$$$I$IU$I$I$m$mU$m$m$$U$$$$U$$$$U$۪$$$U$$IIUIII$I$UI$I$IIIIUIIIIImImUImImIIUIIIIUIIIIUI۪IIIUIImmUmmm$m$Um$m$mImIUmImImmmmUmmmmmmUmmmmUmmmmUm۪mmmUmmU$$U$$IIUIImmUmmUUU۪UU$$U$$IIUIImmUmmUUU۪UU$$U$$IIUIImmUmmےےUےے۶۶U۶۶U۪UU$$U$$IIUIImmUmmUUU۪Un.tRNSS% pHYsod/IDATx1N0s rCCH0^G SvԙwJ燨ߔI0|:=Xam+cDӦ1Ej~j3ҹ/eo܋Ofw^ bGIENDB`elracodelangela/administrator/images/checked_out.png0000755000176700017710000000125311061563437023543 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEy;zɘEᇈ ͡~T#5X^fQ᷂! @z"ȷզMDf{Gÿ ˙D5U l! S!L˻СLϘJ*yHW9{@9ΚGiT,)RtRNS pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATx=̋0u%uKP׌aY͝85I;'D'&.Y!hWcTTn"EDZIԹN}aw\t˭ (F?;ecw)lxX7^7;*E)g@<L*#3@<{(TIENDB`elracodelangela/administrator/images/day.png0000755000176700017710000000252611061563440022041 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME )5hZIDATxڅKlga3vl'q8N[?6m*@E(BP%* RXbb@BTQPɆDEEy(in΃Ďďx`Q+$4sts <:z:vGza2۸|sG><;k{xݪ,ě˳op6/fѲĢkԉ,j9}'T]7eFUMX(އW^5 e0*Pњ/w/-!(C{7j_zز>T%RP,RHcP2+ G8P|ŗ}Σ-k;ݺCvu!rg=K-VpQHEzOezLCa 2"%Mk3nIo|enkVnLٵMxO.1% W]U{KfLKڬ+T}r S%C$Jl?:mAn>e$ᵛcڞ,Ȍv{!`3"b帳u3^Lsh1eZVEQY18PHU$Bm(<Hji7aBQ&(.;S٣p@̈DE;djb"h,`ks >w]Ƥ_=$3*F%dA2GbvK$zDBG]q>ȓ2e",A{Bh⌏2 ΛJƫR֪fu02P($KE)Bs#rfq=4_Rde~ d:9:K~DwӈgV\Qצ[+ Ȕ^ߢf veԱjG9'Rr䊾k帍M&ejMXEbT Q7fĜ`I=V{e…-nA&.`L";Zg8hAy[_ [Ċ.Xotƥn /68y'<]l~MA,wQ.7\ruuV]\~;]Ҫ ̛EjلNȽuWjVt~d-,uk&2k-s(?\y39ŠP?L~[}AIAX`T仕κ&{p5E;M keL^0y~:ʽk5m=MkW+ƍY_9ТdXbQUU~`S"4zIENDB`elracodelangela/administrator/images/inbox.png0000755000176700017710000000353611061563437022413 0ustar essawireessawirePNG  IHDR00` sBITOPLTE*"Ty.Swuu7ٶawjvݳXc̙3Kyv˭budH؁F1d:ʔvഴ׈}xd`MxT33*Jnҵs߂pWsKT@=ɍ2cwqʬFӳtByXƇ+׾ťaן?sjlek良CGSfvҧQ>c݉p|ѽķE'dwቡ{&aVU*΢{'tRNSD pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxWXD V!#PHQ+QZRHd@[`z;>熀/["{MҳBw"}?IRoB093Ƀ dVB_Nw|; W|B(ȣHmrNѝԇo 4"'1(R,SCCCf, =f._XZz sP'HnKdr{{cY\\T͋i&8Hd2X(1%:R8W-j^WHH[ it1=jGNJEЗ'or|>^ߜ Da++exm&g1KըDdcdUMQ e>NS23Gv}_JdCCcٌkٴi^Y"vugʶJ(n̰~3Rnu-ͰmO94Gjr RuMYi:X|yd2Dݹu`YpI&Ѷ[I^؋1+shdX݆wd#9*Lbg{|XvKҦ)S*Kd*XL˿M&l}JޛXo7RÙ FF2C,k 8bL5O'ф, yx| |^aYщ>d:˒O n5~qZ19QѲԪ/4M<+u {UucU._-aj*Jtsᦤ۲f4u\]]]lH jv,aajEEĀ\tk4-3UW3jBQwOzUsՅ?{X]x#:٧ Ip+Zƹqo\o!IkWxlIbM+1JΫUgm}z|4/UljN'Feƶ=fjX*ّ߹pӷ 𓭢+oMQ4vLӃ,\dJT5KjVj῜c?P]|f0,Q+%ZCܓIДyeݴ838 3c {o @@HPlƃ4DUm΅$9E$f/>{@!!ƒsE!VylS;W6Be~LhKL%7~7 z:AQuA@ǹ6gf[^!p̶j~wkd ,,-HGb, w0_xڜы ۹&qNɰ nnZJ\-R[BTmUٟG!Li\0o i͝#\#K2n !,B~p@a7턹2f)mqx(HVñ, F&dR9#8.5¼;K>7ENJ?" \[_~% >mxZuvƶm\APИ ۟x2>00[n,,o55&vtΐ1VX`a(5\Y-2:9ŰI`Ǜ"he}WJJw<K$N8hu vsDboYB}"GVqW$ŜnQs&sd|x4NC2ٓYwߑý JA^Wy,&Qu6m} YmĽ9R9<gtkZ=eYe^OS/i^D"N.dCӘ ٯs_bK IbddUi/>OYPhok%wfKYr+_}}}$]ss3U4R8M"c]O`}9wi/23W:e2]]`vn! V`]:ݯ.ɲR{[:ߏyzU>|/q}(2HEr*H553_,#ptA:0>s;3keǎ}rϲy#ȣ"z<(,A29~\YXz {?OXDQBǏ'P}}R 'ض$+4$Dc*B_.lF>YQP<*">%.˟9{:lu`]l)Hߩ45W8.$ռdI˧i(G$ Yu(zVlZ&CCtYŎ;4Z[غe .wmX5AeaF%3Yn( \ϰjPS+D}tsӣβGh|{&Y,NsG4IOw7?!P.&#EQ{EXW81>`oOS_m{T$ۂF iM`~TǡP4648>M#c;S(̓fCOطhF/ {c뫯OzDr<5gt\$!Z5).,:.W8rhuhddb6;yرKCCٙ鳦i^dQȪkLfτ¡T, BAU7 9 ˕0pRٜ/ΛaFP2::r0i`Ȳ/ FD(eQ_Z\n]Mkj0eDRп#\IENDB`elracodelangela/administrator/images/module.png0000755000176700017710000000321211061563440022542 0ustar essawireessawirePNG  IHDR00` sBITOPLTE 3Y 6i㷶?,'PވN{cCio;OChM1UѴ >㯪3ptRvB8X<`?E*_q\ȇ]ϒBqhuOu,/˲(I> c/'ʩsY`z`z^(H̰a,Ͽꇗz_hNZDi\6+VJDbqq3薂g;!- 0MK(ׇ$vPxv䤪q=#!oA״ ;;-A8 G<;"Xcj2/t:/jݩa*ߧqfdxċ.L%l6hljRT P!:ê5k~3)-4 VBUIA`'t BI x>1)jx.1TZ!xh@ R?ТZ | ^t+ ĥZN'LtTR _JvVyUxN`\K`[U} vuҐ[ :[8cuaFuepBg 6O\L }gЇS dU !_ cShP0MgZO"^8<jg:Km֡_>܌ל.Q4,* =r)n| 4A 2-~DҸtKq?X+Z l \,4fg ,qՇ=,m+y.x9gWA!̒ ;  0,|IENDB`elracodelangela/administrator/images/categories.png0000755000176700017710000000337311061563437023420 0ustar essawireessawirePNG  IHDR00` sBITOPLTE>6Z)XߍF)ޙhgWߡ.X}\goA}hvyw刺^ckeFGk_xրof;[Z8:URcA[>;4#qҧZ;!Ž֦Qu;mǸI[|ޮff@c7u5V{}`:ݣkH!~&ӛ)pH@&Q0bxw}S)usAWPs\Js\Ჽ`;.\RRmQ/ϼ"z@^q ܾtRNSX2g pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vUIDATxm[H"F%(kh &YDTDl"6.667q-_Ly狗x眙lU#7Ձԯl3c_ ~VI ̿`f|hLi+O7nXZLz=c*kW!fSXvpV(MAdIob4r|<KJ=,!dVX\"2L<K Є :~r&jH( dϗ~v3t"J4M5(Bjv!'7} dO^QAn ~ C`t~R0"h B zBu * 3D QԾ.xU/٪ i CXp(m?7(SDpр(۷r%iN_@!Zi,7H`]7nL,)A(Mhweaƀs3 `P3k B"JZ W#G9ve]αiJe?BdM pfgPfVÒC&LZWr1`؏W04;zXLghºp_&.דc뜝9IENDB`elracodelangela/administrator/images/reload_f2.png0000755000176700017710000000466711061563437023137 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME)N DIDATxڭk]Wu{=>;g<3#8+NI"TQDJ-_CT (jc<}9{~8qI֗k I/;ӟNj#N,1;GG՚5y*gS.5sۀ|]}[KfLݜ CO o.6vi" k2S3k vґ _٭Wr#E>x!O-_тTa%ZB& I q\}US0ӀƟQѽZ!{*Y(9 P`ACT裯DzTxOvnk}hlEb*N 7;:ߕw>1q^A%ǒ(eh{ ϤTֆ ߝ\%~:,K3+֛5x~K$}rA\=_پ0ЊB" cE3H '(e!;ۛ+}pϞFK[cg[>VTy=ޝU \^t _I>(Dil)ۆ䇥'0C}=ݙ|&ZZJ__aXJ4ÇGG_?/綇 S9ЧeLe57GRWf v0"&%%VuٿgSI|@ EBQF1ҷ12m3T>Wz>8vOTF#é[˛XR08ơ6Ss(qmj| Ɓ8ЄqD+ZP`@A@^kxggOgNwo꣯V.[ӊ"Q؄J#Q.ӕI` h^'¯V+MG:I2H{. %8$<{ !WKԙIH֘\g4|s\ (QDEDhz-/`PAƩZ,.eeX=FjZ@!ߛ l6%1,ֹRXaR$6XEF_6ϷPxg:;JKXY%E|o[1҂JC%&#ο/6khB(֫1KVS~z9LJ4x|@*!w&]8F D;HF\ +Y`?;;SJA)5B bm@*D,.Uo61f-ߗA`^H"EJ{'O,hE!+h-RXf'(0wHt~4 FJc;qms,<ƄFsU4>5Z0Fk6X+bcbEn }Md.;}(*ilҶ ;;H RA5B)9OfυNf%uuSz\Ʊ,j&I/!>{' յ_7}+.9 or\[/NXxׁ~h@oOGn0%nj6`#K7X:S?b}+j·K٬O>)66fBB ҀH!,Z5~s;7LϟKGzAFFƑ6 %p<\&=\wfrco_~ <}7Li~1@JeKΞ/pŊ~(tF/m>4)%JkV.+9鉕oE'm\H]1Qtw[' Fkٍ\֏%0vӔV8"Hf6 ֫^VqmiUA*i5IENDB`elracodelangela/administrator/images/bookmark.png0000755000176700017710000000232111061563437023070 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME/pcbIDATxڍoTUr.3v X."Px D0BM|ȳA1hb%Vn "i:P)zmg̙ss:"$OvohRꭖ|&lp^>mSҖO\M';k>ݺCz$e!}U~BTuo՗qѬ'I:HכJ)Q`"yn8 Ěvسr+,lhbq<"Ak\O.M&0$İppq(|B Ac!Pظ?ū EC E bdLظ+GDERÌbh!E+Kb]3#4# ( ~^98PO\LHDG<_6,A@ѝ2~-\D.IXA"H fvt6J$#QU PH&1Ģa~PO !0JTSHt#}ONff 2e`y." (6k QЅ u(,PQTƦ e9=ůJET秎U . Ƀl[oC &Ra¦k1!UY+(5^;FapCY&)OuMZRĢ@Q5o>ЊrpWf9P"ԕR\mju:Q# M:7xt2LXSѸݚq!*+ \\5ܙD lk2"Da3׽߇'Z_?z2ēXdE#+&AmYWo&#sˣ_2],9}4}A=' 3XŰH{k[0`cQV7 9ՁDc86{`p?0LqԍS-ku.KONc\f7ɰhx~3=bڕ{'3k{\P$ifQ ?ڟct7IENDB`elracodelangela/administrator/images/xml_f2.png0000755000176700017710000000321211061563440022444 0ustar essawireessawirePNG  IHDR DPLTEΩνƵΜcsks{Ɯ{kskss{kcR{JcRZ{skJs1Zsskk^{ck{{kJkJZZg{s{Js)Jc{ZkkZ{JcZk1R9Zބ=Zs{9cFV{R{Bks)JsJkRsZ)R9R֭c{ck{Z)R)JRZƔsBc1R֭c掠Υ1Zֵ֥Bk眵֜c{Zkֽ筽Zccw9{ZeƹZkkk{B{NZ9J){ksc=5ks1-֭B=)ΔsO޵{wֵ1!εsk)Z^NΜ޽p~焜ބތΔ֥ƭΥ祽ޥ֭zMtRNS@fbKGDH pHYs  ~tIME5νIDATxc`y/_}^ϵe  ʚt717͛7o߽Ic⴫^1ٳm7x+w޻ю?ĂaĕYWIm,Y 6ﹽ6_ɄKIe䫳 )? d=`cXH  oVdIy ,^de˖XjWWWmDV0oy`d[p"7g"€Yݳk$]1Y^L]^P3 mMLMb䣦AL5I/.)1Jf*0.o3 (_R"_+o:dFO-}u1%!}]}N\ P}}#c[嵺KKsMJݽض0X$8ǶfFDŽ r107؂&;zLuW,fH_pjIvVcSiiV[zY;CeUM!(jLckKM+ XYR\\SUbtBXCf/TਔD윔\=EE<x]cSR=34@qbde R'vo_? gOPw`WOgUp.H沴wpt2wvqupst1VReM-m]=} C#%cS3cs%y fXaafWPTRVQUS@;n^>f (;R2sp¤d2intIENDB`elracodelangela/administrator/images/tool_f2.png0000755000176700017710000000467211061563437022642 0ustar essawireessawirePNG  IHDR szz IDATx]e?.rBO "@A`1x 8kfcbOISd"& FdX ZiKs?g}]{u{>H$oN~U?W`Bv ֍_67w{[z=zXXudhxrhphT-kdžZj/|BWA+Ljrg4:|ͣ[GUoO"2NFge T ^>sS_ˀ}Y>5f^kNm۳{|H.h퐥4آ5TkMf)w:Ѝ|Iw>҈SkbMN29MlftHHDBchꍔՕN'W>Ts?jA3u@6?}o:ghyX/bq B a'eq1b~M 3r,#N,X]pE:ıE)S·>#MNn"sXbVW\YP%#xTƆ;iB qիWx~sss >rahqE;Hy .:+x)4Kh!wc|8}r8= Nޯ4={-Z% qlTNhJ⸠FkZ vH9~tA Iq A Qǀ(jŅwpZ*[)҂H2Akpa 1A;bxh0 ߺs Ð$I)(v,¶h2iPhX(4}. ܴȁ_S/H3("7#24<ܳsQ5٨bvF bQE)pF]7y kߕ|\TT"&,cdd hvByJeo+C ah1&# Os{{ \7 F $lWD/akvڅ1c3K@d YpK k,N4˚5E: ھ[ SqkeeAVofz`ŊgrfU Oiwk۾|ioB < Znwn?ʰ+1`A;]6څ#-W-?%V>z@l]HOU^"YYH>DBIK/PvmL|ƀ+t,զpi0pbJB|c#?te*&Ț" ZM4Ty3m ՛ M?ǃw~5ݲ^6vO^Tׂs yOD/]=@ (rimU!ms&~xޗwDG lfu6瞎˯7_8v扗_'Y{Uoӝx(9H[a"E&bf騉o\Sqk:҉󃊙~-MNr=A T=.`@c~`ywD>ǐQO~7pq`2/ b6N]_jKMlϿ*n[{_97k:4|gVN[6 *tIME ,!nIDATxڕˏgw93̅g`ZiIA,4ii5qEw.0111Ƹj;ctDӪ$ DS"4P  0 sΜ9j>=%чG >Bu>;:SNn^>Y?MQZjrPG}{3??-KܐPJ}?w[_]f%vlVkEͰۮψ?ZhH+i2w\+'o.DB~% )fM$ +`p =8bB 3삽:$B}ccO[=>*ֹB(pڸ.0bB.!kxHP w&g nk-dcSVni*RU}j 1:g , -#&+.*Dt\-rHiM+c^Ge+ ^O J2B& as[HerRрLI=B  4*|;?۹mVE$QWwIEPqe3VיT(}eLhjzƄy',sǚT(1#7iX]UͲ~?w!>OuSG݈\(2`Ew4f]R}ʳoW4'ce[ZuU L"SUȵnٌ^k۾`b=Ms2 ڨfMO*ѕ*ȦO6NW~i"cV"%ĊQmJ1{qwN.T+KP4l7!Փ/~[/ޘ=5Ց"tMj6kɤX^>st k^;WE* \$)<~?)w4i6?Ж( dz+j$SAοʙW;\41tp7_n,-._m^KO8skC 4VWo[4kÝ~1mqp0PDښZ孧I>Js-j+:GGgqϑSIENDB`elracodelangela/administrator/images/themes_f2.png0000755000176700017710000000436011061563437023144 0ustar essawireessawirePNG  IHDR szzIDATx[l\3xlO8;BV*-%BU_Zx(-<(HHM)RPDq)Iq/>{./}8&ttf^K_q!Hj@Z[w]y>I~7\ ;ΆƆX91>Ì<}i9*7/mnnڲrBSc#LZ;굘0T+!SI&&6ĽvƋ-æ?vcK:; -}X;@ShmZgRZB'rO#n~7?&fs򢖖]m[XWkM;|đ# AR.ΆLOԪZ[(O 9(O}}5C ?F7y =mBk\&gAk(c&CFFj̄T+cR 3?A]{n@:$HXڋT4(6 2.ӑfG(;Ͳ~,^_[NR -RSHkhnIbKn'^+ q3\q7:'^&/s%,0&ib 6(g: S̆5v8QX XAچjj/<5|s`Dc'.a-TsQ:*+7sCl= (}}5Myl;Vdg/r $o3} W, R 0VmڂFѶg/;cyg ')ҙ4: 扃5.U[`uD2R<01]r  C308fgꡙz09lʣ:ay8 ,\MEʓ`/ V<׶3My+180.k б0fӾ$cgWuվ\ њV-;2ck֯42M޲d8b;6Dw-Xx/ߨؕQppo?B \?hIu5+:@źv0ÿ-i4\8> h(zbGXi# wڵđs/Tif"IENDB`elracodelangela/administrator/images/forward_mail_f2.png0000755000176700017710000000447711061563437024336 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME&'0IDATxڵ[l\sݳ7]߳v;'&Ipq! m!B[ RP P@.oZ U/"'$M88{9LvSZHtO#hn}crcߍuzFxld~d>=Հ '5/o=ޖXzCg@iyr8S nG&bDB]o\,3ŋe w@ۖޭOYm?e56wdF֨Ox#{:vla6U@=yXmz{zEё E5b~lvlbGF4Q!<dE,g &Kr'JgD# <3ҽmĒ <-=W%! .}cr:/w&Կ1?J4YoD F+ J!B(V=ie!͡ ͮ=>?uTbPh|Fmjv!#]=TB;NW*Jx2BAUo8+OrXW'ոj X2롥D+R) 4 )!4h6E{hmvs#W$pwmޞWm wy0 40LJUueFiUvK9WG/ӔZҹۀ77jn-)ii֠EPkPnu=QZWA @"t:#WPv1 C"C^-kzu՚vHIe`AVgu]YNgq dM8:1B('019yXjV:oy84'?1S\PZh\%=硤DI'%R)[xO^>=|oλ4\u3{9|lDc#%G zW7uMN1ɴ{ueK[Ho^+5ٹJmAc*Hu Sb KxVAMȠ-$EMh*D zW/ύmMnL[Kǿ(ΝX.L yDi@C:? j׳:ۆJv+M&L0JAA,jBAhXskuǚ'/3ud4w%baH'dK?'V$d@U%]@"nRdo df l6DvIt~3gnL.I'ĴMZm4V, P B"т(ė*m6MMNnq2ιZ>&i; 6}}K9 {RO%<}ӲJkN.6<_ulwR(垛(JC=M09(8xL+xpwW)/>h'&ٔ'|CkMidl H %kl3v'wpb<ȡ3Rt!VH(IjI_/tcsre`o4*)H'p֐1ͰC&Т#+X˝"Lp%8v {1QF2kbbpX##ɯ}qNN z8x 돆Z " p 8B}xV@qC GhaLonh ut>?5@j;+KhG$!F7:ڑc}ӲذX}@m/$ zDB́SlJۑ يUKdZ | n|%w8{?|L=]x|T١t"#{{oWB)@IZ w#/6]P}<0X( c}Sc Z ]nVWuc}F@8NI8 {NĎw !xrj+6DzܻWl2!۽J\ЍN V[fdC!`ii %ݰ3{GUNI 8b#Ǵ'b'8:qi}ئZT*s/=l3KڴĘ~]TҶNU[kz-/=MGF 7 2Pn5h?HPuH lmRTGEYoa35G+YmDֺmD*MT8w^֮}ZϬPa"I"rBJ}Kf~Mc\4oMI'_W>++(˓צO8 glt:EPjϣlj5ҨmK(}یL 05-t;lQ/PJFiR!_ KӋS K(/Pjtm"R)R4}}}/ J6N3LjTHRHT GX^ XٳaRD"믿FT9XYZ{/w 9UA"qTj{AJH-r<27{9R4LnbAR,.}=ds9(J!@- (h+@H$R}gap$DB@ZVPڽkW*R"Dc۬UV*%D(BP%QRFJA$8t]u8fyq]{wt !M酐,/.Fsso[]ֹX<B @ ! Zdv?QB0>qaLvuV驏_+j/SXnw '7({P ?؃LYsT]Z6 F|a|X{ >}}\Y[[;edQJׂs(" C1qD٤nJ\l4jm٘t:Ƙc`hs^L%Jk="Hhc1ciqEъvz:' Aϫy[Yz{#Q o ]ҭޗBIIENDB`elracodelangela/administrator/images/edittime.png0000755000176700017710000000254011061563437023072 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME 9IDATxڍo\gg8Ǔ!ss> ڪP)(ipQ"@+$n?q"JU*$IӦvJ4vRԇ=gƳ7"e~iZK'V̶?ؼ[ion(+tKOOΝXGzS+l ꣸}dOf&US^zM_]zHކ &MHU%I=fG|Ϸ4d5SgH$2cܜ&-" yn_w+;=򳃇ZӛhтآY"(+sg-ޝk[F8r|ue_ٽjFƽZGȴJI~%#nˊU$?Y];/VV/OPF]e [tRY[%ȸaT L{Ƹ"y7fuxgӎ ]VQW ShMOMd5fde >R˗.;[8Xsxsg.yUի rĉ~[f[FU`?tKeLnfIM&\xcTYm\ۧSAk; G^WRvu&es^3'6m=u/ʿ7_^hߔU5mN /INi}4 r+ܥ16ySЪ,#,]ܷ,b $(؏k!~p+o pHXّTZsõz&U;c^m;d`H* ChJt|<1Bl2`jpgNJQgOf>;Q16@i-B3'pARZ~َi%]"@>ewWd'm@LO H{H{ڄ|yvA4703S |%o__$ӐezAد" o>Mh.6(:E6@G-6z|!%/>WL/f /ėUNt2M\Sq߫~klv)/ڗߙc80h4,K??\Xyq5<(5]#Wf\ߛIENDB`elracodelangela/administrator/images/config.png0000755000176700017710000000365611061563440022536 0ustar essawireessawirePNG  IHDR00` sBITOPLTE7R݌:{vֵs W}䙙ۨ:9_ិ!szdl۸ ޒ0vyh~߭؂Uo´{Ђ~y'ȗIm侣|ޖwQڵ~Dvj7YԓnIؿgJ^ھcW|vL”QnۀŽޥxuԶޥWCg|Їܼ6Aa Ol5UcjTu&aZyǫf\rTbܥvbln:1tRNS pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxSWe6W$lYuC-Z#"&CŽHhb+KфPe5=,i2q@~W4/jM-H;Ovj4c{,RQ<5[9|\x{fE*{YP:=睍1"4@gVdΥC7x`1ЬyNOO;*t u6ۘSnwOêctP*Yt' Ԫ}OKthxw4c-/Qd|[BRivf|JnZ4Cc hv.5tw΍@S[SQà*$#oL%@ )Q@ x͆%iU.KRO?w"$jIۋRIG]^%8yB:1)! %}%AfCc ?!ۀ K jHTĺ1$@8AY8 UyOn pAwu fnP!U(@)rX "/n^K͖ba UKhg+.A#,c$$X3<ӻ4uV /bX΁Vo".PvS5@( p~FM{^joe:@Hr, rv]dx?4k솷6B /\P@e3wez~|`JnWY``T :VHwe9PaE 2bc@r1e(bT@0jr`M[4@/Xr6 H6^DUi8.݂HP:^@*%= ZXeAnGuP(67YWH𚎀TjKB67JXF˚%w1 ) Dng^ݜ&zq،{Y#FU +ff\`Fc%(e5nthdh qCGgJV&y^s-* EGV51jmz9Jc?@%) ;%"}r)lv.x`NK"Oɷ_xc?IENDB`elracodelangela/administrator/images/publish_g.png0000755000176700017710000000112511061563440023232 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE8Uޞ}m@S|ヴbʦSϿVKv~c"Iv5gߟŦʷQ^(MuftCY sZ˰SwFHzG ѸXac=tRNS( pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hxIDATMg GR[e ց,PR•c@*J@\:O—/ɩU)FE`Lvǻ>,^hV]4n<ަg5xa8dt z]#A:'D _bbIENDB`elracodelangela/administrator/images/messaging.png0000755000176700017710000000313511061563437023244 0ustar essawireessawirePNG  IHDR00` sBITOPLTE9xn{ķfSޥC猽Pn٢봴nzy~޿gĽ(ЬYbt섌kydũwn֙7:sXϧRn~njC׫Rۂd}[QTv❸ꀥų̙3YCbkמ?qy}ŝhUޱTŽ:kGr|h늧ݠ7vBtRNS@ pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATx[V03Xa Dخ HKEb@@l,@9n_߹$$ 9s@y,\qvv9^PVSE9w:YN<s\`]#8Sssx?zBpE(^Wk;z\c<wȿuV\]V.Τ"~Tռr%UHp4xE}܈vHYV#ZX.^.``p (f /l7ub{,# |Zz$*}'J"F͍ dw~_ `pbz={j8ňKwP.ْe,h+;wOB^C_~DyӒ9Cָ-60نpH~ń7QtnYDyV<)*߮u6DG VeL (;ll ͳ%t;6Y#w[oXG^>h`@oKeoBEk{k"umR& #Alb^H{_t{.)I~r%‹ }itp(ք@4(P2xNQl< |GEry 0T1:b&(ahG!l2Hf7':2fZ ~C(X 0ݴ^+S#FyƦ=-:|^T0|?Y,= p:ڀ)&f^hɧ=f c& /zb\-%*3R$i~HB L{&/t}4 cJab7IlG $񭅉fW.=6xX'2Ld<6N b mo qv2IENDB`elracodelangela/administrator/images/credits.png0000755000176700017710000000340011061563437022717 0ustar essawireessawirePNG  IHDR00` sBITOPLTEߌiv=QMHgt0Grl_Xo73@oP+Ά!CvmM[k|||+(,SM@GEUu!P/'zKQO|ẻD;wG $ Dkt\0/@r w2OlrߎogW(g~B'c;8; Lw5 2 +NYP$t6:Jhwe_! ڃպ)Ή&fwCg#?8 vCڍCgsӕ<8kѫ^l$ROMٱ}Wlth94<7g4=M =yJ̅W)Z:Ai'Nk#[/"jLԈpdTj6_Um]XX~db;ݥ(}6 l (,ˊbt&qJg!Nٶ e^ ~a̓00N#/`1>Da j&kpH __Lv52maE,?w.n b( lv@C.Ke8{R·{!Ep4kv.:dai XOX,*apL8'8(lfٜ \ɟ,4pAŠl᫜:E{nOV EKVK pt;tҐϳ ,雰a6AM]6 mv2~}<!b.7%@ _0'f 2NGۂ tIME.o IDATxڍil\uo3)Q EJ&]5NXEӤ6K'ujui-Z4 6Mԩ]vƵHq:,'4)J(.2g}oAt).{=ǿ/qQd2Aᡮbi;% Ғ(eکhjFUhD.O|:[4SGu]ͻz˴\9U2dl7GTYp=UQq|r[{ֶ3@%c=߹瞃S?5EUZN*!XQD U@d>mmb42\Fosҥs @X-a/lpx]dcdADA}DdI1ۆkzadM vN^ҪpiWU-`:0>>2z1S4beywlP#%|!nɔSgN3c|Eӄ={j|pIX(,Mn 6<1Xz ~T :D" I ìR#h@?0ЙJw,Ͽ7[oaYzL3`i>gC#$T۰nz *=08 1Fed:;\w~жDA4\.+/0M$xpǟG?MozTYwI"7eU2sûԖ(8xXiP,7MbЗqcg7f2$;@UoPm d$htF__sqR)zrJlxR$Xq@O@Gdsʀ h9M#PX[RiIylD8h( ~HS,x,*5#`|ξ탉,e񩥥u!>~Ζ+w~baͦ_'x}xDz'Ǻ9w^tW+9B_ `Rx;=>122pW\|Hȑ6M#3OnNw>,z&nS_ 4<܏wמ0p}_yӟg4Փ5kt咬 rFdn=|_ǯZ<28547C< @,W~e3ImW߂pMxޒM3dž3G$)` Qi6шBBWI I^Jgʼntv ! 5.?-_dӛOId YHQp'^JM$Q@$G4ffM<3,{^L̬yժE6CIwĩ,r@R1IulET6bP?)vU~JWnZҊLs!vivD- dUk5dRu=\W$P.ȲlZݤChJEi4Q q_`ݬ^`Q )8A+ccmHS,.6ovZ|;7O"$@QDQl!(8G2u= /߉'o0~;']DKѢV3[jN~iʕ 탿uv3ML=`roa2\h.7ʌ_qMF0=T*Kbqqūg_7"a'B!C?rD91ͯh[h+t fim{O@rSU Y!_ܼFQU2mIENDB`elracodelangela/administrator/images/css.png0000755000176700017710000000123111061563440022044 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 14:56:25 -0000XtIME 9*r pHYs  ~gAMA a'PLTEεƽ便,$9ptRNS@fIDATxeT 7T{o;si6l+x-*AQ$4}) >RwawU_bQלkջJd2 y"Z\̖&D 7UDai굛46w#eB+dEHdH? kz##If{@>͇_P 0e~Wvxf+w" DV: }qn@XtIME 9;IDATxڭ[$UNUOez {cob Eĸ7јAH $$1BbD" a2^f3}:2$VrON|w:^}}ΣO>J1], k``-X#F+?7FCQao{~{ՙ)E#[== NFߋ >ٛϼfwO~O͎땵fDW:ځ ZνmVB+}cyЛq(, wX-[)󀇗P4Bո\e@4mO?Rׁ=wsXY ~E6X^;\#k,"hAl1߂^7J::U(Do_gs'wEdh HaWoZK+\%,B لB)Q: m "hEF J 7ʦgׅj#|F 0\ c98w5% "]BښYKo)ׄj jtIME xIDATxڅKlTU91΃; UӇ! j5n 1.Xpa… %hD`bA%R,>(>)tvwf.ii)g}9`ea1&~;ԇć|4cae 'g=;J>:)*QQ}{f#b; 8Y I bbޯN._e5((Q6mup'6&%lDր!N 9lJX(;%gs.&"iZ~|^:v}(gȻ!DWTMAAE*d!@mm _| )S%29,|ҌMeMOmS,p4q \G#{C\Ě<W/~km1HcRdt^t (&t&%RT(SEc/O"c4iچ:0Db3$ lL,LFi'B[{c2:\^AGac18P$ EBpǢKb斅F'D3OaSfiMnJɠnå$(ҋ$Ѱ0I!i=}_dfԈ㣎 N(1,ҵ{V ݌ɠ"Q(Q68dG /u\qeO:`V*QfPS4@R$Mu Ě$3VR"I+D(SF 92CBq'\f ((qҌ1 d$w6\V7i$0~jYD1 Wrvgz,3T)Q A(m,N^Lz}6W.p')m"\ cE!P@$iR@'A?xw|S;wy[!nBbЂF;\cC;5O(m:AVq̯i\`*5\1mL888Ǝ;n߾T\u]C8vP{{|qJT*TJ5>|PV,Yuݺu_u]<0 }}<>^xwqGg'>q:JZkB~ݫ|grr0 <|%|yW-mZi& ð6n؜d)[y೏n ii5:R]EABDx0(\E)EXΑ엾'LuFCcu(a>mu`u,a"=cѦ ;$F22 DUA$a~nz1<4] <x*x0d+׭&Ј7M|.>2-CMßzziJxHG(Z#!̘!]$(P&~ީM8-=f} . T*y.N/p{ ,3u메]d#X~|Ѩu?N9::{̪De勺v\Au:҄%!k2Uk9:l6 c?'3k̞p@!fjxCt3c) M4\HxrX\;(ˆ7P ,y]Cenr:9La2~nI \cn\T %6,{ǩ[(XT=^p.K.jUP2d J܌zn P1☺Tg4i0S@"{QZ:NUAizv2Mt=ϔHUIӸNXޛ^hgcU.pV, p/ճ8 سPq8PS8ac, +>ÌP׵7DӱuDe # h^_J'ffW)O*Xu7n~;n]uknʁH"gz%^lH4d H/nT%p/%Y0y ъȦ r Ù#w5j5^uhep !2 0~:E x7H>c' "FdQD"r ""xM"?'-Z/_F>4ZU#&mnxu}{AǧEԨ!H7bHcUvvZ;,oYvӗ*HGR|O?i\|b6"fs'׃?9#3}2fNro I%xoo;%@Aӗ)LzR8D 7D%] ģ XWvHޝX}IENDB`elracodelangela/administrator/images/junk_f2.png0000755000176700017710000000512211061563437022623 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIMEV& IDATxڵ{\U?zGfc;~aIL /H @"jRU¢@-Z! 4*m!8iֱcڻ}̾wfgn*Rttu|=?aVS|ɛ?gvg`K^I*">&?-~cMس93]+;7b)}lwm]W&ْ!ML%{}w`~faxt/ |]{WJ 9b$i`il!۾+}O(xSh*_פSDmb'bQ4h]wtCWzg|gG:oB$QRB(ф²Lt]%j߽9wwV9՚kb)ƧHۚt:ۨ @!* Q2D%f60tbqK$Rؖ<- Z12Ry j/>;dT.PR"%KQQQ&04A2kٶJs/~>@,?oBВId1P(D! A J(PQs S9JCp6yxLVC3"(! CX׌[ӵ &GkB(A*! l޹A-? ݏs}bu L2LBD-5Ym{y^yxx!x  6i`o !Χ"}rÅ3p]s7aɴ@"I"679#Tu,9BܛJ,5Kk%rq(C Qm}#r8M"8ghٔrT(@*6U/|'+ " "Ѽ:Ҡt9FÓ;n{N=}o!s+35L5j|+,Ҹa] j1e5Wf7 ؄M0>+W\v_̀9 &^~36}o]4(!i(T[܊NC1Vܤ315"% .Bjvʅ"]Wm~YDzͣ_;cy`.EWn ^nff6K+KV@0 4 JcǞž4=}y߭ gz0# <>=?\Gxd(\_1p= b:5L[#T5ޡ|tuۿ c 1#օ;3B_w6f;NO.Oa y2u[yBhXIs9<7G2M#/4f:oX+ovݝ_n:2Kܿ.T(//9XHUTt}6XV YS'6²9;QT_&X2: +1Bg-'] c@4oUޟ_7_L|4[~W)<#U-{ٌEdljG7g52_mz2eK?8qԂCʲ%Ӏܒח&2[~+G[:+.bqHQvC2b*_?r  p.MO0!x}+ޠF5ш43E$R:@ϹxgK/N^`wt';WBsh\XK?ŁRb\*RNj)Z?_IENDB`elracodelangela/administrator/images/security.png0000755000176700017710000000215311061563437023135 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsiTStIME4xGIDATxڍKlU{L2R(NKC0`@c|M$F bą.%&01!Q1@5Qm)a m3]>wO,]?Ī=Wv3yWLh3n g8[ĦjLٔ̈)?̛_g74ڋΦ (BVnCo{Rr]Ζ[;^"藟_彽e(VIng˦mU4E}/߬;<\w/X($a=mlLDL[Nuk$1ⶀJ7+Feq4zܔHlw֢1( DmX҅󯾦n2T IhH3BLZ] 0mԓMP%%F0LvYٞl7g- L#H\pu&[;|gYK}|u2$&.@A'yң0Di\0D !r(E崒FPD".@s"% "F9rTP-3ܠH}DtJ4 )YIP@Q& g.S? "M:K gi A!(qpq`epQ酅&h"CP<\$h1b`6R-H$  ~')$x$8شakXXXs4ܚR5Tppj*X8ՉBbMsI(,,N9fneSGjGl$EE/h.v_PTextxOyZA^-tIME$NZqIDATxڝMhTWs1)*J1E(mAKR躛.o)Phj@[ ĤNn&313Is>#{>ЩK|Tqas Y^UM~7~M5m"^O~e1&h\yn~yg`\" f2ّڶO#xs6a{5ϓ"$`fF4?r4$ݼsڲ?=&O.݌KBB!85 .}{퍎'$$ !%Ģ(P@b Is͡6#i'' EUV_v\9)_nQ#$$EDH"=Z)R*@% I`evH$,2P0% I(XXT0{2׶O pqY)Y2CmTS'muW-DDDE1fyy7Č32?I/ʠz+'sOyz;&"PNvEj1ͼ4 R/Xc (lMW.4h . Ue(uAWШ2X4 .X] A *X z)((^ YR~]#Ҡp&v-S _ЉxoC ,eLPXeZ"k7267G2+}=GETzo&Gg]g47 IENDB`elracodelangela/administrator/images/download_f2.png0000755000176700017710000000435211061563437023467 0ustar essawireessawirePNG  IHDR szzIDATxil\{9glN8Y " %,I!R EmůR%*UHEVVD@,BI$$N<3sνa'H.|q{~Sޯx[(Օ;6 nhp~çq/h&=bw;~{b(^JEOE5RG/a"ĝ`߹|OݦHH_1u?v85);SL!U8 .Hӣҳgο |—?_Km<]m). _[6҈tmw,:͂yM`+D_Pwތm9U x9?B)=}b*;˦M~tih0R((K%&& rr5ANϐ:^`2[W=SѲdб%#?QTMSQt@"ql@O%xzXK6s?EGa$7TeAs(޾zؔJuf2_i}ׇCBLE0h"ple9aC(ΚQOМzu3\ͨliK7rjdAʟvqREUBA6kw*P&,i,,k_%Q3/,uIh5,\ãGuӧs IJ$^DB.aTUw s2;([(V<ȔP,*4UUp0 Rv̛ TDІ㖥/oT۞^8."TTx DZ,>`KK0dBLDJu":;ٶ5t`ܵxOOh`<|(4= {Ŷض:4UUB.Dq=bA4MöUH&s9z{ٱM(o9V]vM$ ˚Wso]{]O^wݍ74bƲkHLSR(fa2tH%ɜ>Dzd/t>m>SUUKcC-v)мx=5Q?*^`| ٹcӭUVF"`Y5mt:06ԅj;ONaz#TTFX{+hQ }}FFN%/V[wC7㖖X  N\c8q(A&[Tq -X/:+uS/7ӳ[톅G|oyꫯ3,`&Tqѩ&D%мEN}ٙ=66(RG#@f5VnC/oh`ǏܺX*ɤ'9}<w&w}<8?hY>`2@8P jWnp~mW]ծJ.D?xg{9>{,J@$`s9a)om]yk7 s(;C@sϹ!pf_\ "_Ϸq鷊IENDB`elracodelangela/administrator/images/cpanel.png0000755000176700017710000000331011061563437022524 0ustar essawireessawirePNG  IHDR00` sBITOPLTE*wnmњ AԓGD5M&wu̙qWI1G7>3gfs f}ysν= Zׁ`ANZ_lf׽NF廱Tvbӵސzx Hf3d_=-у{L9wZBYWvߏ~{QbPkVކ܎Kgj ?(]X᫪{zzaޟϙB-ff؊{A.~ ˤ7[ }G5jbNVP}KtRNS pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004v"IDATxSXZ@+Ad]%ݲvl,R B@B,8}G0 sϽ e]݇Ie= ų?H3 h9~:͡ ?T=o/ÂDs4ǽ B6dm WbI@*t=DZ0a8] X(g40]I FI<,/˹ H}>|sH eXSl^UN4 Jn~Y =m$عo Ӓvm0 ˷VڭGÑٟ^yh֥(2Jc7WPKۆzUae8xTUpjvUdhQ3Nw%*Aj9 x/m(QZm}~˜W3?*r3} zyĿQۙaI" gMTC_ІC w 'oy^m zCM3zpĶoN ~S&v?ZjFy&֞/BЙ?IMΚò@.g6IT/5ulU􋦍ǹcI{ wL?sl9q4'h OY -+xW Oa6{b>-ڹ3%µ=ak\.c?rm&#nÕh߿}z 5 bxdz)J5Ȩ #Ptәݥ@4+1פ6`}r&!pe$b p^K&c4i+$Mx=3o_#s$zRk]/Gy[%8uk2g@h[$rᙲ!cEPUO%͙nQ1eW9Oqbb4*@{۟$&v@CbD)TV^$ͭ#Km@NڒֵL:B_VQ\ЩM&aZ*v b!~Uqb .OIENDB`elracodelangela/administrator/images/folder_add.png0000755000176700017710000000237311061563437023355 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME sIDATxڕoTU?LKBmHhJH& &BM|@W&L\X1ݸÍTB-X--L[iigyϽs=.m.ܜ'c^ -L~>u'چ]qRS ХxZP`c^@0? v1 bGrk[7G8[߉{PBE/A#g @9jm;Ob=w;010Y'GP:*j: {SS |aHT 4A g:H\z? _Y2h-c@HSyc߀D ȶw:g81rMXXTȲ ͍z*66r17.jE%Y?;Enm.E2B!+"]{'/6Є:R$M 4c ܪ*JwtH-&? ehDIA$aGP!ͼHAT/Mi+++'i?O"Nt@r er@KH5 HBtbT7D h@)|,QdȱeG4h!AfvB#$&'E@uH}X"GZ0D"ynRDU E36VEjHaSBY,D(1OAVvaP 7Z1  @U*teB"t~9ӥ[CPH dPiBCKHQ|AXu`%x(45oo*X$DB8E="ԅD)E-pP"HW3M1nGL Ū}6ŚguEGC\}rՙYCgո%Xg앩4usDOUKY&ss]Z$EMX5vOů[m̍%fHBe㧨 caU %.Tv2~yy 2yθ1 7`ZM,]L;CVOh;2eH58KtIME=HCHRdF= GeL1 \<~7onFv}qA3}׉Fj̓mkuD6PCc릆Z,,ƯN4=Ѭճh6kb&l2 QՂZʪ tSOqם[j2>R=VBBe ! PIA:38SڪjcwWw T!~ӽ۶oVǩ=ۋZGIA[# (Z| bBeo<6f-瘔طvݱ-b5u˗4zd]=Rx l)%}{`#@bQHriY]2x O,3 2޻^9X/D"HL t.p4S%*@* Րo}@&[099uUdMh  s<[h.4ڍn C`,>jC ZFȇencWdFGG^21D2> #1-X4BE*Ir K}7$|iiw! AYCMMU#PO);uɉ R8UUR TPr\guPf-zX`, ,.ӊv:_1xabyEr 4isAhI*&:8E-z:} T0!Z3zX{] ؘai٣P)9>%Wb; hmr/оҙJzEHqR"}</R"4t;7V$# GT.IP(xإ؟hŋ!P _R"$~F ୓'(@;[:b/)BS$W(EǧHJMp?zh4RJJ!B7@ٮ+<^7Z7*_Ҋ=2nHlT,cРH\\/?PJ1[(r]ݕU7Әlo&nZ p/Ǽ/v)`d"e>3\\ܴBˮ,sUqsTS,IJWfmgnv)Jb^oq$P(zOۼ>0{oj9.Ϫ7\f6ae*?Prl- fͩd0r`G|-]RIENDB`elracodelangela/administrator/images/users.png0000755000176700017710000000173011061563437022427 0ustar essawireessawirePNG  IHDRj sBITOPLTE""&L8s$ؗ4#ϊ)T:su~¸|2=K{мςiCAA"HΞY`0K ;41&OzpLTYpI6bIBRYrAsOcBaB3r'PHIM?h=KĮk)v??aLy+,ZR!iV<@6)]ȺgKZC-F(4$F؄He"](m%llnzPfIwZz.)'̙3f`^^}J{sgVR*Im?k׼t,WSCNQ'[6[N:)W.ZuZ`xg tRNS pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004v2IDATxc ĤpuuqʒA ^Ml /TXSH%NTWUFU"XVƞ * f7.QPPpgbm@ www* p;9Ts))Eװ (Z9;]b_a`$*kQPWJ401I/dV1 .֑eHqJgeM,Pȏ.fe HkjċxԀBu!F▖ J7! 1[[JQQ\?3+)LR7IENDB`elracodelangela/administrator/images/new.png0000755000176700017710000000115411061563437022057 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:02:24 -0000tIME/U`4C pHYs  ~gAMA a*PLTEƭΜ?tRNS@fIDATx}Sv  Ʊ=mIfr"H\st~ Ԭqߍhujȼ,on*]]>jg ܯNq%(^(T+:tiI IxDpʐ)A%CNXrC1'v籇JhF Mčl)J`).}TQ2sQTN_%<== _9e֡d'^h/m: Vvƴyۚ}!f욓hR'43}rqd4&(?b,1,!.I3ӷ=6aOMI\4lZo* ?0IENDB`elracodelangela/administrator/images/message_config.png0000755000176700017710000000337011061563437024241 0ustar essawireessawirePNG  IHDR00` sBITOPLTE*ETwܢ@ɉ&s|[Wr{KoCakÇ/ EȞΨiFdd㊁Ba7[ދBǜ\x}kĜ=n~}VTxT`OԦM5Y-TȳAdᵎ[f擛ë{ߡlZqR&K̙3ʦi'JiMt_f躜u>QKt/T޴Yqw@hљrj6[|H˺Q$"Yp5y<(l^aKCTVeu1ALKI':p!H%wn#<Z(*Dp\:K3p,-ºV)'l 7)_yET2ey%ɨo@#BeR lF  Y!gI`2&S壧Jӊ O" ӂ¢jѵLٜt:L1- p6Ynʂ,pыAk)څ*(`AxީR`c)BDLzԚTWܙL͌ﷃ܅w>@aNZcW,U h%vx}e]E 7Qx/ɩswg AZ'yaq'4"D8wgk{6$Qxf)YgoOUxE)Ro! X#// 5euhBɥ[-}6t,e}UY|bwg(X  [SV|AΗ}Kch(?9~}ղo Zh քJ ׭4]]z(IENDB`elracodelangela/administrator/images/user.png0000755000176700017710000000324311061563437022245 0ustar essawireessawirePNG  IHDR00` sBITOPLTE]C9ey 'Kֆʶ_W)?`MD^䦖m%\qJ{O L!]9֜8%~1G]d=spW@kSjB0IńUM/|ޑ+l/Dnu\9? A(?m˔|f@Ky3fnj8QM[jk8QsP4Y1?$}cMufY¼kgupK*A.HY-_jA™l|STBBf38sG"s'H+zQ+Ά!gXsݎ)T1{+3wKEY*#L.\Y4Zp"&QȭJź5!reuP-ȡj"Pӊ&WoHuzuBo0rz!)~o-ZFtRNS ' pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxQWHc(G"JP[ lJDDJtE@ _;Iݗ}9^&~3 aoA>=YCv ǽ"ƢpLᣌxcompg#?8( { YϲRtWN7H14!=:ՉnVvNȿW*b MA*詡b5& ϗ?.Ij2bBFoI[[m_ 389n+ח }5 |kQT \ˬrf: 'ml_މ-1o8Da1|+hBϙkc$Ǚi:s6ݼYJ?@}E{zBy9J\|Lf2ߴ;Mz~{(Bm>zi|[u^i Ly G>d,9$NP..`X,>ϽVnr'*\ Ǚt:/.޿p8>\V|z"GظC1SGaxe\>{eVlVMއVvB_B rgJD$ql" &&L:?,"̈CAWBYC]GP%0O,!R哅-8 $Fl+fIENDB`elracodelangela/administrator/images/task_f2.png0000755000176700017710000000520111061563440022606 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME -k IDATxڥ{Wu{;3kzׯݵM6R(-$-Pц?E*j$*TTSĐ@$Ư]kfwؙo|{Ɩ#]ӹWs=u뇛w̾ѝ{n*͞+5{g1SMI"4Qd^W<~=Xp8 n8rw]9]Y[[=nE=ەJ-RӃ!95r]=ߋƯz]4q/}&z%݁;ӵD_0z{?=Ni 5/@Kw$A_qa٥X5hXf  %HX \(Qh0"BbC_d?=WVwT{.Mf!ftXk4p@m6I.=ڻ&vw} w_ OLѮ5F.3~ҢF! O'( 6öwμpz0R_5~k 96:T\Ѹbr/8g'ߴU iFԑJi:B(!< }hуhTo1"iGF7MRehY+5^)<=:'qs_{ћ/GBÅvWuR[41:mS./P_˱,(Zkq]Vn00@'K7bjDaėZQ8.mP(O@}}TZ<^Mz!55E>8m;3O4 t9~ɟHJ [pj^2/G41P Aq SPIf枢RPY)S=r]Ϝ9fI`/VTzfHJم=7P@˪|xDI W(]B'/QZi dWOvX/3v_ D>3>z=peJ lCsvM.X( W^b[H$!Jlܜdxs@G3FF~day/}౔|jXqѣmUk?x3_s"`\t빌G/J-Jl$:22T@ygDz'IX͝Vϒ]Yw'8ܣ;tÚ`%/Lg女$h@υCS:uRZ m|m yIQd)(3?|nq!`9] eƽ*3ꛅ (vEy G)Mr@ }09jeC[88=]r\w[Ć@Iҿ*H.`bP$?<P @*Px#lڸBbϗ 9E$n#P(~ ػʵ/35EQR#Uj Ij~|a>6Jmq2h]N]E{ Ţ@${4#Ljm$_ -_hv:5 (&udhMKt <.ۃmwOMa;͎mR]WP\R"cwUXi:URCZ N<¤1h!||eRv-Xsf \Xm3Eke]rzBΧVm|tIMEVg&sIDATxڭ[]U>̥seiK["B܂<1'Fj 41$McbB 1" ` mb @;N[v̙9}[>}fJVY'{oڂ A vXὧwyzpp|Mx"nû-7޴^[vd-9$DCQx@?]TZCпi[Zio "bI; Kj/]^`RhJ3K4 ?m yƣ(G꺯/G#nYq7l\u-],0C˥qR|TJL4_q)Wʟ.mP}߱vΛGgN_zp0kp[=a`  J#]Jѓ\1 {n,-GNLH ט'ЅZY7~ܠBL=lBFtٍ7ܻKC"Byw= Sc`ou{aJz:uٶo:3S 4%G E$0- =}6)"! [p !pC)E_KŎ~oM7SrڥqڶP&0Xm)Xz|b~\[ 9G_c0a⢸;xz&WG8(m^o,ECI{TZ3a]Ʊ/D)ne  R2ȻD)Ś՝2wO!=]*!i 52iY&j>?걐+'HB C @NBV 3mF ѦOznw[w_IDKb` Y_93;SJH80\ 5VWUFNegSf@R( 4 ĚBV5Ώ~X1||0Uc)Vʀp,L*K2WJI&gQZMW"geq(sb>֞Iy<-L]F Fep|KAj H06#`,h kvrP.N]:SkQ0@< p ! !y\ Wghjd3CЕЍ5+Qyhd?BH瀔Sf6،gz <6F8tɦNfH:SE4bεY.3s cڐjE Bg 3p2`3CLXk|p[K#[ZC*:r8sp "DfF3dd~=?K]6zV:,= BiY[g)'DfDByf9rѣS<׷fn`jGwFU, IE/TȜjm䠞͢nwxg~/x)7G/$!DFzS:yeQs $n u!o>1&;|w~տUO%xhֹso΃dh|QB.jk^d+r-lbСO'. gP{DYUnmVY17^j̣=ʓ!˞~4kQN&3FEm,^M\\ferTg`}y6hK`H$\m|- i IwpW>OC|ub'`GmWKtGT+ጅb/4돧 8Y&"ұ$>nvWٲBP a4Pzr_#c[2,|v;H-ivzckiY 8Hȳot0g $dLϳ8VIENDB`elracodelangela/administrator/images/cut_f2.png0000755000176700017710000000373511061563437022457 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME TjIDATxڽ{pT9gf7.$1 FEEouj)ժtzԩTҎZ,MhFI f}cx g^\y7ROl5% /aq)[N TP~xe4__Wa{^'Rxah˗ܾd-IC >]GSu\өT>+ )vVw?n&S<,Z)~y@, g+^|s/\Q6֕@gM$%ٙ *hëyb#r2;ac͟ @__PMtj0i.7_ xbxTP6~oQXm@|ܶ*uMŶ-]R=!ek=RQ2IX4Iyz@XBʎ)KHE"@[#mn8wXUAU_2{U.s"R!@`ZPSH_G`{rNṰ^+ ?xPTD΂Ғ9W=Y.dGlc+79f924];t`e睧iz0Bu>ޖL=f {LJEc GåV. ) ; ۖP`?]תb@"ۓp'ϻ.'(DʄD ~ID{Zwsfh;[4ױ#;8 3/T}.y*FJnCg+;*_ҕ_QwŴ$( KOw%GZf+PsGWz<;;tSq/1C(ԏ/[4՛b%\Sz Dn;ѷYx"zQG@hJ~ҖnTuΆ+JGB7Lhr"t!a#<, 5A,7{='^cmqKK'#UYs@Lbd׋`f[z4>IV|ֻmf=`YOў\[}R{s"ZpЀ 8~܎r _WZ`Ml=p!Ų:?ƯqcӐH*wW&,p?E (,`j`΃lkl8ȫH//]dɆ.|.RԚZvgXF,1UO;$}@gNmʀ ު9C l>@7y!fzf -i@Hg0Wh[hQ\3~ ];zNB4`yP@VP]UB{X1CLBP֐&:m?#%w<<_P>=i[51K&a.(^,TB'uKvR Wht"DPNchsTݙَZԥ}QZpzv5ȟ =27\tr>p%{50k{̖_~*W@RfnD`jT7+|ޜ6NM\e2V +TBzS~a6X̓A ëCXpqX XGVo#f>(ThLe*?%4 (9jR%]CKM .a<г*%_Ш7ܽP@OrSyFcBʠ֑q{`&!ixQփyuGmTe.ݪʨcZI궨2d? ]me-IENDB`elracodelangela/administrator/images/paste.png0000755000176700017710000000232011061563437022376 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIMEaIDATxڍoTU?Lg:}mi?!ЂQ(?BH/ЭK5 qeB ~%4H"SPՙyL[,V&sshbd .3Կ.9~{D>NvCa-N>J 0o2Iqt5sG+W+ŗ.Fg0M$aڽuG4;ʶZЫS};E,,L$n73`#z[jЙH~ c"08@"qhbrS;u;Mx,PHL :)! Vo^>}c$q1*kT!vc!H APO}"6ȑ%&0& H ldeU6(%Y!PH `EP 0Q1b `a!xS} fWܜVM B&2#LI@i4 B"(,@c1QӅBӤp .;VVll`S()Vb =]{|%D *l`D`$|0U?@ TQ`&B$EA#qQ-M9J.dȲB hFCߘKR5h͘@&) ؘulxHP[%>U1A7.e,3 ԭ{WpkВqL02 RA0ˑ>^L_źv @*<1~&c F`X~k [3jF1SB ϙ*"@P 8'{i%rnOf<^K h00Lq GtIME$ IDATxջo\i9ss'ec;kǻ.+TQDA@ DE؅ehQl'v53g\(u݊FBE}ؔƯm$5hj26[P5|m>tKYL ȅyO`Ie_ӌXcS'zz|h5T/Hu 87Rn‡w|KH$zR4d;vU5DЀ(=oRkꞚwͤ\.+jCM_}c26Qcג-oh  V91S;/{\.0hsMr!}%"kq( wsǃ]DmWu=cXAIǶ;M)8ɥSƴ,8+"!s{܉uTPrjˮTlznX3ck*lmr$rܶi\TѲFu:jjIoTbՄ>t*zkCĔqLhOEC䊺:z]kNkZƯh vuT%1- 47e fu-̓"lv#SGfQPkuϷdFМ9vk?IT&uf/߾?^TrLbz~{/eJQ*o6V_Y~`0xh=mq/de3ۖ{o<~zhǮzhҰ]=mͯ?i/ze[@T__0>w<;ZNW8t.\vɑ`&5׿|H2̃IENDB`elracodelangela/administrator/images/save.png0000755000176700017710000000127211061563437022225 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:08:23 -0000H(StIME  pHYs  ~gAMA a3PLTEƜyxtRNS@fIDATxm $FiizN6|)̝{lwלRj5usD]G*&]z0PھHjN":*sbq(_7T8|z!ELQ;_N WHK%x_-zTKۀY2>TP&@z-@i=%|hp4*̋e\5͍k#b>ƥH(4 sL;ҏt^ww3* .a>l>%-g* ?<]y) ŠWG^Í޽%Z,8rwE/@'x2ۚ@ O%x,!=>'HOQAE\b;"E%w7<`w܏DpcJW4Kژ7;;϶˭m,E"P= '~rhkvÁH'Zu /t&Sz/zd)x2,-3g:΢2JnAIj]Y"c:~4rk}~;8f[Z9J}'|>mLQ #x}MI|{Y:F%\NF<ЀQMM>#_4t̂N^T3h3h D/̨ n I"`92"3R5̅"4:51/[` b>I 2&â[r8OH(h`=fXf_1B=4l#5j!LV޿Y0lAIENDB`elracodelangela/administrator/images/message_f2.png0000755000176700017710000000377711061563437023316 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME5w3IDATxڭ[l\}fΙ=xKlBLBb*B+!VUڇJ*[iARK)B$8'ssݻ %-<{}_3ig [m;6ֱFCYJx%N\L.W<ǖC?^b"%B& @0@s[dMe1޷H?&˼ 2N Fį#y$HH}=3luG볱G?쾭g,]`&s/G&*2QF[tVw۳ᡏ0Y:miDr6;<dž.ǁg^VH;s iwTQCy]4t;R i-c@3F6Z+sN{(f,g>e ETEJv^Gc,Jn U6]@y*" ~*=GIod,ƀ1M뿪7M ݥlK`/ɮcyj4G㿦NղeMn)8;;_Ҕ|> fS'O5QBgl5Y_.Hg*3!y3S+O9;=}̾?c(XXKgͻg1J\\lŹ (v6h K4'(^нWroGo\/J{7sbľHW-;ջ_G _x<` $w& xugD~`ݛg 6:I0aeW5r4wi?O7\>?ݠ)#>KǘBIp(.| bi%KU@k~ՖF}~çsW2\y{Il/2hBC orPތ !B!k~7U'H/JkG#B!A_I^2/,kA)xxÕP6-V%_+j q\D'@_/ ZWzxq=,tltݸ$6bH<l G ,rv X9,3Fs0]ӵO8ңb[]ѺBE/;U4gK'1y=H:A׼n͍*db+!h])NY{2L8s4YNSfy0[ZqKH"!\P(,@,H,PeR,āp-ڐ1kڭOr?Yn󶎖xIENDB`elracodelangela/administrator/images/templatemanager.png0000755000176700017710000000327211061563437024437 0ustar essawireessawirePNG  IHDR00` sBITOzPLTEfYӼQIF٥●08ڜZ̙nwؒ+ tqqyX{{aυwj{`fd}o`f3knyt pUUxqxr=Y=cur]`fGmGkJ"VUJ(ffO@Jg??c]KCa9^N^9\ޚMH=!sL5GV>A0U3=K7*nHE{.Q~L';/9&2 (PPLn)M!I™33t9YEB^#  ==9K^^u:i("ǰ0 8BIQfH$zN*%ϯW*Ѣ7&'')V(~a NQe+G_PG@PY_BY?ٍTHlMx ex5v jQ-b[(\(bCX)ϟmiv.k 8Z"]pw~Lh#l6_B11j*<WGyߺ:^;mز@RŻ<*TǝǺ`2a`XQ=^Ȁ eHw۞0a0ms}e ݴ-&u?HL[b_‚bޓ\ϗ;~e`]FGG' Ȕ3 ҅wfJC}۶W:;~RA€>6n2]y4~OC^s`l?l7YL쮰0(H͜ۍ %~مݻ|ݭ *MNi4Ǭ psd''_!-XTχ>_0|;o|1">ĿHөSxМ^';IG$rqqf@͋sR IZٷlڵ +wމN}]#?F^(>:ۜ##""&6F›noN"PNC/~~<]TJcNӔ;z{C~{O|C͔Нï grUq45^R ZsBS*e }{ 꽿_Q׀] }tC~1d#B|ܟ` p6BER'ȄA}R P ElF`џ=xgG8\ fPkDXݶ΁! 3l# XQ@'S|:]>Qd"GaܴE47-J+#РBJ@nb(mD ߽p_o 13ךb؁R"x.A҅5ZkRںEmeN@id|?Ņ6]Fi}ChЉ~ jD Ss]!9#K <P48BK䶜UJiڑP]e)o0C_wHѬ#Kx]@⏻< NCM.[7)(`mbgkJ97,Gpu42.ud4clr Ec6t}؝оʳ?Rd~zxur ߆Kõ%efiqgṞo87ڞXдڰ*L iK<{,~WA]9rB|28u l 9DS-?c% پ-4՚0> Zb8xfO [!%xI"6! YOjA1wP@l 69^ܞքժU8:K8}P)@U֜8|#dc35BU,zr{ܕ-hǰ\uX[[ڑC>sK4&W+D]=T+Øg[`ǀnM#(bQ8Qtw**%²Bd`X^+ROc|0+ RѼt\8iirR.1(- 7,HaLBvG&at=xlPpXov `S#abTP8W䲊JQqftଇ+zP]dv '*N$ף\T)S.jKXۀigkcvI(wJ%$lSQ**jBlkahB(MYVtU4р6_V G쒬i-afd "a[G´a#`ߐGJA %poe!9C6T ^6\NQ.#f-L밶.ب;|w[f _l !|O>sp#{P]qXmN|ӣk׮"4yΡ{no?X_1yfܙSY=nu8@O 2~7YH5$IENDB`elracodelangela/administrator/images/print_f2.png0000755000176700017710000000446211061563437023016 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME6|IDATxڽiU{ιmVamapaDQQ)*`C-6~1ZmҤiڦAM6i&ub (ef1{36TA1Ҿɛ$'/,W*WêuO^힋=c=֝[X{6p*P? Hk64 ^>8vA/ xӇyq˽mooW?%UfU@T@pf7ݺ-}G? FՀT@qLRp`/ џ>qͿ \ (Dt&m@xJ+DDb:' |鯻 6?)W;xvggɯ8v | lD@{/NJ*#xɏ C|)]w>Яgͬ f5ƿgz奤A(,,+`:fLO{rmmg?jQ)}6@?}&ɪfBPBBl4aZcٜI6gpx!=\nmx@*CBA…\_ZCxRaN* 4} y0 >9E2>?4|ʪԭDQQ.^zuUUUhF(f]zU2ՇqB]wuqs9Qͦlr(--cjkjҼ\N @*t: j$sBlX \Ͳ^miEuRRa/vxO&O.S^VS7h^P๿Ldu.1:S?3`$7/c9.H)Àv$ H4ThEa(B PUql4YttL/dK{a󋦣*`@>R"}'<"qu1Muh?opHC$ڙ4.Do(p/3Z]]UH|t]vg ZzlFR!(+fZOlV(va?x|oG?\GTL3H$VTK%SVSHq0 &CCtg /PdEk{+cEC4%ư?7ٕMKWդsZ:})8nxw9:(ǓTJjBH̼nd2dlF A$1i:yHnNk|]/1Fq5[noTg~p||83|!q8C'ZZZBHE"(.//d2؎O:v)57{.O$Qc1wbh@[kwe&WZɩΩL<8EWp4]q__gߛ/tx]8fm>sl{8Q.N&S,q=qaJ%eviYW `Ν"e4}]7nj IENDB`elracodelangela/administrator/images/delete_f2.png0000755000176700017710000000341311061563440023111 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 14:46:37 -0000vjtIME / pHYs  ~gAMA aPLTEƭ֥֖}oL9{qsֽΌ&#seW~AJsZNuuksUbR4& gRV)ޜ)R{{ZcoRbk{{됈%Ӊ#ޜ1scZcc絥s19kkc`{s G7BJZk ƽĜޔ1ޥBcck{sΥ֙<~GkBZkscƽm?<ޥJRRJBޜJZޥ9ޥRcޜ9s{{ޔ)Bk9cBkJsRsZR{kJkcs=V.WBkZ{kcRs޵ZJZc猵c1Z)Rބk֥JRRsR{-R)J!J!BJscZbbpRޭNZ9cBcJksVĶm/PSb{ٻor D5k *i\n6hoܴyVT/N70ad+͵Ӛ3kjI/D##UӔf+̜5k͛f)PAOO/ Ή=K&M45@w}tnOO#:KmbtbRzz\ެ.U k,Ѷ͵7lj6mimkmfdȨSpXҲ*^.&ee e55b |!RU ʅEje!yB i@E"2 S-+;'=X89/ߕA#,<"Ԣcllc SR 8=,tIMEIDATxڍKlW͌NGnpbR$*ϢlVJBbu l ZCY UB-y8Ǐmx.XmJ\^?=F6OvE Ƿ}ٿϷ蝭_-O҇mY.V~3̹p֮v.{Ny^ZF͊49V?k>l}𽣎',75ڪA^m"LjKvlHrcN4`{c.yy9y6 4g_z+Ⱦ׿jwWPIU% m[2`NMEҴ~`-y_h|Ş}m\nجZT,y&$e҄ yQqό,J:dDich^[ĂDM}cߞhEjF$n}wJ ;egAnMVmR3vXTd$Ѿow~KS7uۂ fM۫QMnʫ[,dIEb&igoƼ 0&mW0&kEV7l2R 7jܶ.ݚ̸Ӫq#5eBҍ]0%촪#6kWPà>TN.sd=X*hs[kyDEQU,qՑ gA=] f*b+Q?}o]%I5iw ;f]ө>$6 w'bAEA[TqʘG~~9XT$#\SYcZ H`Ĉ|?oo+~~ vT]&[,'~b]ŕSnRúQ]ZZG%#RݾBƒ bФ) ycZ,8.3e5_7k۞#X5@,R%c~f\GY0]]ylԄfAd |sNbM4-qXQubrRw1bʚ 8_xy$X`Ψs =amr2:Z7pv3d  :PP7m{7n-!=eS+(f1׋ Lԛ5S[[qCr(=GθdtS7MY~fꮏB$kϡ!n)zL"kѮMMټ5xNIENDB`elracodelangela/administrator/images/address_f2.png0000755000176700017710000000424211061563440023275 0ustar essawireessawirePNG  IHDR VόbKGD pHYsnu>tIME 3(&/IDATxݗo\?;YmOq1Y!FЪ }ciZQԊJE@*A(@%,IqHb;x,νӇq ()-RՕ}w7uГuk7۽^Or\ng5ߝ}=@͝1ǣ݉ou' |HwuMz4|rcJ~׫T!6ue- &HT&pyx`S@S-t7nǂOGT%Y5X䋒SPoÄHD%5pAlIju78kh `,hl>h3-6H><+(W% m~TД5KһFX|$b *u}9Dr][ap& RKcRB)1K&QFZ_oZ;ss&Ytt*, [B#~;}\a@mׄ^YT%Bg\!mZm6f)lY‚*-;e a|{x~i.vR3!w;xӐLζTUXKWr!Bv*8܂bEbWN,-l6x.^vh6GRrI宎szRx=->g1drNR6$nM0&(,f%Ŋdz^"z n9UEU%S~2"Wݲ2!`sR[P(Zhʖݰ%fC"%WP`4`}t(rՕz/T嚸Ψ*TuMmpu%Jw)f.p`ʠNm5LdXW~S۞¥>k--UI/,,Z+TtD6%c Zũi6MggeFy8^ڷul8)h$p![dWZì] ƪ3PA7-iI®AN, %s|42Ud XVU( v7nN=va)^nAa6-q:U~A.kk?P@7[G7s}?3Y^58&`0L!wSw@> ,L.:bvBm ZbEt , Vb~At't"2/}Ն"Y2Nh#c]!OJ٢x+2@ E./eIvE |mP\,\E[=JW#G 0 xFK>Mؚ\ۙcirj&%p"a{01^+[YIw/K\KDG>_⏢>Y~B1|>uU * > wHƑYhB]r~6%` ]+} y|1 yfR#7ӧN!rꋣrQ>2a(&TuIFS9o(G2 `7 CiBh$KwX佔PpjUJ/zm@c(_OOvl^c bL-M,+^3_Gk?zoSo߱ H>_?l#vs*IENDB`elracodelangela/administrator/images/switch.png0000755000176700017710000000252211061563437022567 0ustar essawireessawirePNG  IHDR DPLTEOOOZZZdddooozzzٺAtRNSS% pHYscqIDATxKv do"vyaU@x2Jy/Qܦ 5v~UQ512 (SHdOnO㗐+=E+^d_EY}"07~1 a"s>1:!Mk~y ql׫J3NaT]2 3D֢F󙕭4.|a7fIENDB`elracodelangela/administrator/images/person3_f2.png0000755000176700017710000000432111061563437023245 0ustar essawireessawirePNG  IHDR szzIDATxypU[I%MK[%R:Re[(? :# E"t3EjRҴt %yyyY}юC7*g̝s=\Kȷo\o[n 11bsR>>MO3~Fѧ kmkx0-\DEF&'rnW;I.fxfV8^sKd yC 4ODž[Tf.4-s"AP> |>ܧ%M(JЗq2!>RhXxT{~<&.\^Ţe+ i 01>dBXxl-%+/iX4X&d"bhZ+5$#H"&m<o\.xNfha@liy_L}m-ۋ$%Lbz@ 鸰 5!khi鹙? ܚܴ2Ġ] Z W$Dmp? q^s_0I[$8XEB%$a[&8\dY [gxlr?e]҉R*dF={sGSjA.}vEf`$&~ {% כ3@jc2¶, ø&Yd߉=\(=NJi^TR!6MZqUյ ^s͝6a7{˲eF[d+Nb7|K`0(p TνvOs Ҭ3kR3i㄃AFN^0wݺk=w,}a鲫_ ȥRgS{ o_z7D'75+F,ω' iC9l|Ȏ7v#ud˘MŶ 'ͦ\iyk7\r*6,8lٲQTe:P#K(ۢh[Eu$Y4 "ˑRӹs'V|.C?nG/o⪚8P# )nݦG)gB:8"JֶyP5 UU]:8uuL:E,/e7GS푰GS6(2:0yW{VBz}Hۀ/ϵW"( WE%؎dh(AMX*> HrΚ5O#]|SREQNQdTEAQd@pH%9@S5xePNbbNjF_KbooJ%\WX}gc0ԍi ܺ$ȲB.s7rtml‰s,){l6ŋjYo3_&Q­R_<7geCYQɊ$""")PLxx}Lgɒ%lڼk/I)12uQZ8Է'7?=[s,pNeIȒ(RIDmfd֙E OM5݇ B,Zt B\)p9xdv<ޖ޼5Tj>3YhYfF$$YFEJԕ:*>&_Ղ$ ̙J ০~t{V6@:|Q!Ħ?flv#?yOUeP\3VTNj'5owo6|{>.JL;Ε5jɏ =IENDB`elracodelangela/administrator/images/edit_f2.png0000755000176700017710000000326711061563440022603 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 16:08:16 -0000)hltIME戇 pHYs  ~gAMA aPLTEε֥uh{s{{Ƙ焭{o{kss{{{sބckskk{ks{{ks{{{cƜo{s{k֔省RwJsVk{΄RsJ99skW{ΥƭsZ{xm_!!dZ{Z{ބ{kksRބ!քJ!ֈ1pmpޥsZ{sB{1s1{c!ƌν޽kֵ9B11)kZZ){sR9^1BB)έ9ƔؔoRkB1k{{kw`J!9cc{)RBc{筽BkR!Jk1Zc9ccB9c9Z{cΌk ~tRNS@f#IDATxc`@pe;|vVt7o2U]vVF$9FމO}<̪GΟ? am;w-kGoxW%۷Ѹ|nܼy*T6 -79us=vL&4۶l-o ֬93#G?q$ę5ȶعo={?\ftM 6mnٲuJlBCW;֮[|jS]30.Q7pIL7ZtHyz튕`?βȟ=gnȼ0c Mab֤pcSg̔sksahhFvOo_SSS"n>hf{w;k뺔Y``b63t5iljk1GSEz]FUuMm]m2F,Ȁ0213bJu TVIENDB`elracodelangela/administrator/images/webworld.png0000755000176700017710000000242611061563437023116 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME 7IDATxڅ[]w>gmd4CsXkMR4bł /`E*(}Q W (*ƶIs)mӦ16d&$33>{2&3mlZ_Z\; xoƧէ.M,Ji!%̺]]"XbGRMFFF(T碦93ZjFխh*D`K D* Dƭ1( (``]kzXhkȜ"6 d ҅%b}CL/$Dvg4e2%$1P)'ԔI],td68mT*K%񾌌@=&]4$zZ(2'}}XbHUU͐e5./CL|∹%/NFz"TYQQYUMUEEE]CMY]ZG-9̩ӗWPT^dCMiҵxs]~Ğs MjZ`mΜV|l஽rﶯ6*긦!QHFFA7 luktIMEfXIDATxڽYlg3s0v %΂D % u"HEjD,R(QRI(QShBS8q&ml}sl};DXv0|o#͜wbJ|0Xhc }%66s'6l^.ӷ^}ٷ?ljƹjcwW:dg_jdͺOhJ? A ib-_Z@7+&4'z_Yf<2ܻ~5޳vzrt( n@-ц ~@CNd+R;7jZ M7Ko֛n>߱;|~ryo&x HҘ$"u+j>yCQ׿Gc,\ֶ߲/'Xv+۽S aLH?HH,cGzK;IP h-P q _FDW˃8;7>ݼP̒(U$QLQ0HJG>P1fQҪ Y2%ơWj9-ﻫ]2JiVAHF$A #0"" QD!ZAY@)2AL{ p/_<" C $ # QL26Qbs:TmX<@dF{)RyA~Darj;Y{`cխdʢ2Z1S0{ DFD"MH!JHdL"%ϕ[?xܽ.}e+F(7`ZduK=>8Cũ*w}uauܺ[VTk $ BϳˆIgJe@ Uni@~l{z3}|lzjOkC 2'FL!g-YȲKō^sL&VOj |*: qI}^.[3{PT8]aqܛ~#)%7B?# r7]^9<#PJhpV`{7= swX Z7+y/8*Ip&o<ϳ(PJ`8UY(hߊ<6/nݧIa (a,A@+pB#p 2j}7-N\{q@`\ބb!`g-r[  ݷ`f-"'qMk4xH\Su*K2~>ӜDN}.)h->}ChHz{ё}noۺH"?%@kFN|Zx2 h/~fwKzehh2Cptyoegg}Ԫ~CU5[nsH5ٻPҐ?MIENDB`elracodelangela/administrator/images/trash.png0000755000176700017710000000405611061563437022413 0ustar essawireessawirePNG  IHDR00` sBITOPLTES`jݙUqœpԠ3Wۆaw&IԆrvzߔue:TBei{ݵ}e4WأsqRuH^EiOees\Y|Mq晧ޑmքpyDh䃨|Zj]mQt捳[cY|+OHg9[ݼiKfc}ډ嗾LpꏏB[aSeUzqi<`~IluzHkb}}}hRtNi/R׃zVcsUx.tRNSCw1 pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxuWHIQKb@$b HBQ&Pl¢ l$R<|} T#d.3:գzʭTH!6eC @A"OW@q 8~s<￞ ?I,[π ~!C2`qD( %]!΅Ze{ttT|wvR=,,9V4͓t]*f 7{Kp쿢lt r\4TR=X±JbdpV uY2<9 :qg,8 mĈAn>P˃DQ<"[+-ry(ӯ@#}k|۾%ȅBk`?bcl6hh&l6'fY*XJ2I$sd1̥EZ^f|jZb6 W0|P~|Uk'&oeYF[@Q$=nE BM$kju41ۄ#`TPi;HՀ dz FPCBİJD'iM;B;C^+ -A(`HM~˥ӌ_ {-L;; EN_xc\,F_ 781}z:u]]~xȥ\ @z)Y xOm)$1P0p%Lp )UUˊg81lLʝ^>7p WU9e[%xcU<&d 'fW ) cB'~4rP&(oKL {0(ŏS?/h!QFu-KeH p͞Sl*aon@.;ct0:$0q b0l.fEH(ۍFc=u#ߌ0m:(-˄X,"V& )3t6Ǥ}"Tű~re()7mze](䑖f&=k[r&ͩXEL A,+L-7 ! kdկw(XYd;ѧh,]@ګbt%nƚj6A,;q,YѰ q#*=8O_ >)qP]R 0 {h_pwN6 TR{~9i k8NKkS7nPEq| *X)jZ38_|s wG+؇Ǜo.^14#_fEf[z3g>v6oV39֮@kgK)kvז~OJ)ރe=Ɗégq.Ƿr챲G//}Ls{pGK0 zrCg)\bffÿY.9tRNSrA; pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004v2IDATxc` Ҵ6HGԴNa p HJJۦBխ€@RJ[_Ҋ "f 0Ѯ  GU,--M !fJ+(TWW0e IIIILLL1ՖJ@a455J~.J.F`dӌB& ! jJ 9<*j kXTţ4ˊ*+XV::JiꁃʌùȏB831κ qaWWl3 w-QF o,fVic0?nAjEIENDB`elracodelangela/administrator/images/publish_y.png0000755000176700017710000000134111061563437023262 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEU߷fﮅRX|͑޳~73mEƳԳKƒ3kСcȿCgɤ։ 1U{!Ž+)ҝawʎǛu䯡ĆνR/uLٳ 㶇^;Ŷșˤo/0{x\XtRNS\ pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hxIDATM@FjA}gDCo"18nCQOՠ2y "1|f ~-f-Fq MО hE9K{(j _[J%smJMe_H2qЭvs3eHz+9>3Kls]ZFnswNY {"kIENDB`elracodelangela/administrator/images/publish_f2.png0000755000176700017710000000341011061563440023312 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 22:19:39 -0000tIME5 pHYs  ~gAMA aPLTEέƵhxGx`Zsu{ƑssVJskkZes{g15wڄg{ƔR5RNNmF9Rk?ZBR{ތgBkApõRDJJJx-RccGkጵ`ew5BBVRJ3BcZkR{{uR^RR{έJb}o6]RsskmƎ{ؔp&s{qggw}{֜{pș됥h6Js焥y=g`BR{猭ֵZ{֭cZ电\-ȥXcwk￲gƄRsƵkŨbOOOkZsk]Ng֜Vϐބ{ν֐{cJ֔֜l~֥c{ڄRwޥZ{ֵޜJcZ{ޔ޵cک⌭֭祭Ɔk֜֜sk祭JiеtRNS@ftIDATxc`@*,>;ǀ|:dNF S՟븼gƮmu x޳]|d)&O=ybb :ǢE;vڽssiM5߻/dm@&KKKn[iɒ͋,4u ٺuHJUf%p^zSm\v * fAE,]=.*1}Ex7(g:ΚTU4{{9MVrYͳiETI{'XMH>3fwA y===Ej /i+,մ91տ ^u ]eYZq/zM-PAzcSyYYi|K3PsNQQkqdZ~IiYyYEfd>( rt]r "=@ tS\5Rҽ32ͳ,X@ C]C]#"cmbbiXh/$eyYLLu-,uԬmlX!EUIUFQM]CSK[GWMQDO 23Fd’9yxxxYpF&fV6VVvvH={n0IENDB`elracodelangela/administrator/images/html.png0000755000176700017710000000122611061563437022232 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 14:57:45 -0000`:tIME :!* pHYs  ~gAMA a'PLTEƵέ便3 tRNS@fIDATxmT@PiUN xB`&LUEnDo YVz" P Րu\; ,?h#C^dʭsͰv|nmo@)kx8NTEJ,3<{EqܤHdAtM"~nŃ@fnX>5 /"vj- n[BU!mj Dpǹh v҂Xl4u@ ABsoH1F) g^&L IO 1eCCq0f4yu|MiXB h $A@+y(df1+#:Ja= AP옦3*EkOkPMMH6Sꦿ:< ;m@зcz(q~pfIENDB`elracodelangela/administrator/images/publish.png0000755000176700017710000000121011061563440022717 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 22:19:39 -0000tIME(i pHYs  ~gAMA a$PLTEƽ3tRNS@fIDATxun0 ChvTh )[72GD a]?0F8-qd SdhuP51@ϓT.WP)G[[ Xf @͙ !_c8`5څARGE>ި_H_(UsJ:ZbJx@w`Ge0:@>꬇jI08m[|CUX;RFG}igxg "9wS!$Ō wyL@BCj.3<>88$I@뜳$(Ԣ޵ eMyoΰg3 %_{O>*u2ItgL7SWO>?7 IENDB`elracodelangela/administrator/images/dbrestore.png0000755000176700017710000000375411061563437023267 0ustar essawireessawirePNG  IHDR00` sBITOPLTE!ꝝÄ[\`$tY]:xʅB@C0!鎎l]5N=̑A%ff(q( yMv^89柣zz}!:/o d\Hy֭2Wֶ%vmmxI*fQ1kXpi[ VJ.DvIqHI*(.f@yǞ˼ 9!zz/uwZG"z!ߨi]FH+ZYYmhi܆)%!twp==Ic:!x m*(v{tRNSHeG pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vFIDATx[HkQ K$![f,E"&(BZamLB<~?;眙s&^:qk~#HeR_B*ieP*A(Eb#r^gz:e)88FeYY*@p|CHE)K.B$Irxe@ y>~tg[T"!c _{q}q[,nV <_| L/by|b<77?+}<١oc$ZOO [{NV .SUAYZ-zz_Փ&7_L~!6+C O7{zae\V/"<./D>y+teRţ{{t,QU#i7ɞlIU5NE9uh` 0s43YQ\ yZʛ 겆.DȥB##,rXJ%{tvL{jDa8 vbJ8andAH$th2mPW{ݐ$e2m}IJ`BL_w  F;7v(q48A#8ÿcW )@ 6ƻW7vfhڶiizҾ/M@p mZgfLӤ[z (-a yAiX95AA@HY)A͋ [670a(j%Ev{ 9e$y{BP<Uw̾ڻw42 CGQ`K9%`繸2K/(Az p~\$7c)Nʞ_A\\-d2,ɯzOA0Z)BGQIXJ{ؘXڰ_sN߅;RdM 3 ? ŗ.>BWI>䑭^+O(>Gᮇc"9)T׌K7E/sIENDB`elracodelangela/administrator/images/menu_divider.png0000755000176700017710000000027611061563440023736 0ustar essawireessawirePNG  IHDR,tEXtCreation TimeTue 25 Nov 2003 12:07:12 -0000tIME  ١' pHYs  ~gAMA aIDATxc8p`hR})NIENDB`elracodelangela/administrator/images/frontpage.png0000755000176700017710000000321611061563440023246 0ustar essawireessawirePNG  IHDR00` sBITOPLTE&|tov0>?9yL )s(~[t\ Eߥzs*̙3TJr֒cD)E)fff|^zϙJ"n f8Ji'f3d"7JV-kgcW||JQqySFs)DU$U'gڣ=W G@Y%B橭s{1;&}+l~bSPXH{h$\F=[ .zfN+ L0z# Tb8τ]Ҟ:*)ԋ?,C&iHtRNSH pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxWVC(!$-:  yjxLL}nggߟ9O/ s=2B> xrygl<8 bw7k?}}~՚Z5엧&l{썽会0ǰuHV++WgUa~tdA⇏V4ʍXry)LLY*RU9ݠ9{}4y00t]1d "9DvGAզ )"HVGG JQTk@iIzjG_fs*3J[Q"NyoBrR)'*O[O lz<DֶL> ZĿiZR{<_1bʃY +>)KJk:J g|} e Ev8Zemڹ09BQԌU/ܶ `s|=Uծ|c@@ 3 m3xEg<E"7 Q$ O\ue:BtB}Q_z8ƃ'W7 H}G+zpսʠCMpI  \" X=$A `Q f⡼܁E1@6JT9S`#wX7Z@;? t &(o$CիX݀m@ ؑn7 ;pK#Dt |0dNw]Tx`E`"| @ fV צʑЙLH2ͩm]^*Ml|EW`FWMQu@$\|_f2/>3eZ\|ۆ, ~tv( ]}[_Zr׳3µʌ Bd+ӀWVe? 6۴Vf0 ._> 7"n~IENDB`elracodelangela/administrator/images/support.png0000755000176700017710000000331411061563437023002 0ustar essawireessawirePNG  IHDR00` sBITOPLTE+ӿ.96:A`0(Єp!wqjt)+2PTJ£̟Mߏ)3kEh!ߝ}EyA5rPKz){.:)%":ƞU?3*u>3k%͠Ic"QH}f>հp@[y9+ffb`\/i$7&sk y*oе~lNAPZ ső1J{0 J`< Y ah&6l6ɲZ0q(rԃ@X[%&rx^7C# 򛛜h?'Є4(NZ' (0cI /PHUW9tBu6WA*W}r(>:ʙ_K7.s;NM}Պi(t0 b竝%.8\ą7frGG |ZޜJ䙹(/^ׇ[faaa+Ŏ쵹X>+0n+Q`kZ˂'Iw2:՝/gf$_:¶$jʛ  :UKTu}1rʣ YS`&Y$)@Cݎd]Jwe p/YT|#Aj. L Ű}L0@G@(M,"Ş`*gq^ZG ?u70ddAޙ1DQAA>dRz=,׹d l;"+sO\2!+ĺuVSXWs.=ӿir*uC?])mbtL>_$\lu yLJޒ+AˁYOΛf<"ұuQ kUV,~ÆK7.Y¿i[ܶjȟqyg,Zdĥ;wʕ+W^ T0:>){Y['N[SP7w| Xl~aSQQQ~_ &NЙQP7e)=zn`nl**.onimk϶p4T7.ɠ8 AٱV~9ii9!yynII2*&fHwOK Iw ̔rvTQVqtrVrɊ?9AGDN^SQ%KMBC[Zq ^I*2&N^jr@QvѡV@! yXP|ۅziZMAr>Tggh&ebjfnj%#Nn*^ ׫IyZ3APEM$o%''g`6041V61r5,3rp)0+*)}'ȣφc%$$ŅedŅD;? 7(&``aecŒ16eb Hs{IENDB`elracodelangela/administrator/images/folder_add_f2.png0000755000176700017710000000447611061563440023744 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME 4dXIDATxڵY\GKݾcسxK%NH@B1@%Bd C@@(Hy0IDdlljx=c{M7s|W pf:12{|dOJde niOs0 +D _=6aضXiWJswq>* ։V2S.m˦ˉaS;Ж_5_0']n~$SJ+ⶃH[ &ƹtuA# _M wwJ,cC/K~7s{ b2e<{MזHbQbYIF=WFg]:}ך?wʙc12Q_P}X Qߑ`Z "%qXJiĵ%i 4=c4J! @G|}{vN-_?l.V:ю_M{V.g+gת I%fBİa΍['X-8 ۥNPlIV<4YU:ynU "V,byFbE2| ,O=/WذbǶJ$IL!IYM.E~U6o aD+Z@;!9{D 'tt7.a3STsmZWF\O1>5½kS9XVnOYr82!'z-v2aK yz]ieG|3I ׂEHOl8&8:U`[0KjN6KSDj%r-MΠٲ03I?(kՉ2² 39` CamY& M=2Ah6_50 iA[AFER!@X\lKm-7WÚ惚W$rDU!+twĚbfdP^^+ZCԉJ=ѲF_4˪EvgR6:DGM=mEk A*#0,|A6 $ 7W=1MaXDRJLE Cyjo C(_Z`aLHgaf;MFN}sS$nL#dRMO62ݦ\3u' 1s˗G$&mAjmDVWBů^,ECKG T16&}kkXRvhT#Bۻ^R0 cS мI(|wEYN5C$"Nmy㾭;WMk/dfRFFBħN pR|͟80g񅪚W, ;0*x5O?U96>@C y@h\J hM $m? a둾vQp:ƻcǀ5'3'V "RVt-W87X82ޘsteBpjX\҄G%{5ZjCt+= jyLOG#'o|0P\.ťӪOݘ1FDϝ L FpB8cgL4y>i ?M0'~7Jx@ۓ\Zg'٣M&L,%^Ԛo]l3OJ[N_7Eo>pyt{" @c=~v(wJWk,;~R ꎶZO՚IENDB`elracodelangela/administrator/images/menu.png0000755000176700017710000000401711061563440022225 0ustar essawireessawirePNG  IHDR00` sBITOPLTE33333r\T/浈ff7,żȪhssnxsxZ}Bׯ\zOC~PLn:shxoHɫmtnҡ|3̙|ȉ@d4rG@Yu[+uҝf/$H`݉F2037n*js ȼ:"....7MNs0%s["2}ll2ڇ.fxxWm[[0$>9agsT5|o\dpg}j} lw޿r[}0( "IcJ}}N7hF>w]J](;[w ^Zl1q=w^}@%>~xsz[,H͛wkHY}ǽ-cwF6a?9H|xS  ߊ`$0aG.-=5oܮ b0ZlT;fmՈjfzふ vV@UAٮ r/A?tlk'<;eJɽ86}=ɮSN>ZnB:d0L4dl:I:yCu:m$iy8l?ta7Mic; ,{G4  fU6 6%'L8uXd2 mɼc^WEuczVjqWRY9䓼jƩ GPphZvO3rs< (rtIME"9IDATxڍջo.DRHI˒"PbŲ@ҤmRMFi p]<- #J咻̝IMH3ss~;#gM_>z?zxWk_E$3G㷢D6t{w9^_x~nyR\lظ)o_`A]:Rzcy݁U#Ti41u g#Ĩ߮ݼ߸\ą0TUE2l\\79 L|V"RA_.SVSUS 29|}}]2FJ=yA?s5;RUJ~%elڕ8+@4PU?*)UNKe" Su]**"-ұŰk4#25uB\YIݤfhYUu?9v1U+\# zM& ;vk# 36ŶaLm-Kj]i=CĤyNJ켲5A,j niɏ,.LL.( Cnxb]".9W.ӓhde"=W1=u狎XiSW+cλQC. ՝/_^ڴw*o~zڹRot-.?m-^h;ܺwn278.ž5cStASǎ䛥@݁LbIENDB`elracodelangela/administrator/images/stop.png0000755000176700017710000000244111061563440022245 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME )'7IDATxڅKhUcI&)dy4ikZ m*H BDn7FMAt# Z,R(VhӦdygf2ɼui.qG)Ҵ77WΞ܃Swjv٭MWy8-rP{ѿЇ7}ήr7ln6'Fnm? ~ܱwiMzH1蘀prpW״%$Q,4t L44q>*ޒl?W8p*8ݞf'H2-T*B=uc%R$Nt h̰@9Zm: v׷YjG ,҄ $qaKd0 MWҌd)LӔAGbag''lNn2G8]ldK@ F3Y@P@a1,bb|*rHtP(Hs.XdQ(^9%G)T Eԑ!J%(&[M hDWQ`zV ?7XdA X<5.:QMlPĪ|&-/$3Kj/6:P66Kl$ Qs\da]7nhN(b2  IuUm{4m "10YaNb8P@m~X^ #x7mEaIfM (,$DbSѻRDH퍇FGLJ3OȓB" :?6?t2$DYvaa2e$%2 ֖ho :b:Ab4uu,eqC?v*tpzx"]X"M zϬ<훌Lb,&_'vߐ P$*?": IENDB`elracodelangela/administrator/images/backup.png0000755000176700017710000000335611061563437022541 0ustar essawireessawirePNG  IHDR00` sBITOPLTExooR1 qYHEEqHONzޯB(_K4#fZXbJ888ϱIj0X0@0$w4 ‹'`0;D"ۿGmFP-rqۅ`ţ˕WDZ,CMxDhW{S$rǏWS?F%Nb'Ykj}GEUSl/q:`TAPgYoWޞ*7T$Bn) daYm PU-LY;"J8eJ/D '(.A H;IDuM#h!M|g9 |<]__Q佽.&M_&Tp~|+ںO'j&vawa[4 MCx {kUUj6̽A3U&PIENDB`elracodelangela/administrator/images/download.png0000755000176700017710000000226011061563437023074 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYs  tIME 3$r֠AIDATxڍKlTU9wi;}L;PZ 2[(bGlQ6DhH@`'&n\1n +R_H@hAaҙiA3ܙ{ Zў;S T^l[\OUmR']}T >Nd3G8~h1«p1д Ӥ"% ZMƚ%M/** 6(k5 dPPPQP^[[ 2 mYk+Ŝ ZW"\pjA9,q/BddZ9tۈ4P˨d0 ~}zШ$h1d)Or~Vqp@:/IHTǎ{dDt*PV$񯹞 O1QSDC\YT >y>a-X :?δgjNyoemp#`c|M֢yy pa 3oA:㵕iđ&AT##MZ [Vx. s `shH8J=%B^1s# @2J$yq(yT1O2ygöka0^r|<8)AQԽxxHͭ } XȈ(I06X@`*k#=Cayr0 CI~ M 0HGBIe^+\FBٚ%H>,0L:`c;B4k_4:|w&&66"2"ab>.f6$RrO Х?x R NPfI&!|0"la)Pͳ=YLLDfOoȠa3F#p#Lo#,'RrڕscvA>dT!Hhy!i_4t ]kIxwb>ied 3ѮD4mFi%OvMy*}lY"}p3}!Ƙ%+E67z1~zd 2H]r*G^~p֭cr#: ̒U %IENDB`elracodelangela/administrator/images/sort_asc.png0000755000176700017710000000035611061563437023106 0ustar essawireessawirePNG  IHDR =.sBITO PLTE񙙙@tRNS-@ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time4/21/06?iIDATc`A/ :(ӹIENDB`elracodelangela/administrator/images/get_msgs.png0000755000176700017710000000234411061563437023100 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIME uIDATxڝKlTeft3tJ rQZhQ P.*.AҮqbX] AV. KiK2Lg9]̡i"7}=:x՞6wJq)[~[ZVvuefbȱ+B!"̄k?$@L:9!)5>[<@L9H0L ..`QC0Ծcs< &zF( D¤~in=4zGxضh0=. ]ѩS@Ltwu^w5FmxP>Q* &_"ÏA (FB (5bD0D Phu(⬥u[oz/ԱqᑢRT͘O;9mdj!L t...Gh+c̒uN'J-ׯDut"sdgp{x̐rI HF(Y(YNK416]ε a-:#PYID,'I6u+5.ZRX 3IQ"M2M E`bk `뫛J+ Q!Bs49$ |XXXa|u(Q&vQĨ",%,LLt L*hT2 'v)c qQ]wUL']OgFHB2G7ALVaYg  qeYL|kO?PqzqڀP 3liZ)!!d ~sKY.PbG@[g~,4|ՠ"|eLQ\d 54axݫ<,'cM[\4cQFb\e0sm̕u: ׷WiFq e>Jd̹2C+GMm~wI>nR[fgO\06n36$8~GGW/dTۀo8R3NYlOto/kX<{TЈ 7|-~EUVSCe>^p| oKBtihbZ+QӃ)9 jU9~?Fz*4 }q/=&zeݡ;ᅨ ӵDO0zC?=hsU/@Kw$A_qiѥP1[zf :+r{b"aq)?CYň M=~\j͡\l6ef^q$=o|hu``pgiS|}3<"BV=+Oj5 H44:F0F_^رWNpOk{Fo ~95e# _hU w_Ln)غX 04 :R 4MG%R'Ի Q]?E4?e~j Mk:"@8c{w_<qu J)lW8 O+A?!ۓGn W3TkK82F)]LmZ6s5N׏y_d/~p~A22 khXC  .@hv҄(;oҶ`5ۻzZDi.-eO̻) o\8^~ab+C!](:ԛ @Rk&}#t:-J9j+6 =j\|l sԓś?5103,%, -6 S(%B!4AO ֹ47W~nhz"z6fǮ x(z :ʓ?ŝ񑡔@*5̬dWhc  c S@If\P^]QfZ}RO;w _bl!١FF5nܭUf񤉒PlﻄN_\8oqӁ.i[ f6d,K:|nt/\":LO0J" m.U8jWPbS$ry!Ӆ :T-O+:Bu=> P?[6%_DpNحi rIJJTHEHp|&/_xm?wP/NWWޘJgg[;_6_ 9=eHRUQkD>[${4#Ljm&_;m_ftU ( ֊MFN4a/% N';NO4"h4VAeiVBq3',kUY`TNS D3ch8"Լ}BSZ;g\eVrJ#)XKs%*\VSE؉m+VbFU^*b8_.TKv7\cMכ~ɳ.h4m3mZηUaYV.٢ PjZW7DmˆI# IENDB`elracodelangela/administrator/images/person4.png0000755000176700017710000000221711061563440022653 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYs  tIME!CG IDATxڍ_lSu?׮]v]۵lc[c %&BMEËQQ^|'LLc ƈL0F@ mvk$y~r#q Z7)RgxLHMn>PBdqpO mRp$Q5x4*ԩ`q;6{հWg pqh#Fc`KfD 1l!q/^Enp[\7FM 6Q\ `sӓle7&1:1X  1-8`/bu(]XKPS]`FƦ@ ?wĪP¢F@=~l  *4jC|}uƤAn͍7 &~:&\5E6#_պ"p<7[˼@g[doN?4r z~6d]b(S줅11 wNT,a H-HXf+J $u偬K[D$(t0wEIH==OS>?'3GRA 8O B T澎/^2c$* x6ۘ`0E)"X$$aGS y(Qg ~c {XFt]D9(0=$p! 3KK')[Fq8,sV"D*IDSL&Ll4@ϐ\usߍu"@ SGF8>Ev%đ`?x@T~j^ e\$d 8JB/{8Dt"F/S|.a5ͮjT-%0OW$ LsTʢ3 DJnSuXM{d2Ŵ>eKKbdyr)RDE[ ׶sYLI), ,%J*5 WRzM^pQ`"ejXX xIࢡc}WݜC}LIENDB`elracodelangela/administrator/images/get_msgs_f2.png0000755000176700017710000000455411061563437023474 0ustar essawireessawirePNG  IHDR szzbKGD pHYsnu>tIME dxIDATxڵi^Us}ywetH@[JA"5L0@!D?D?1 &*KhY jvL;]?L@'97?YGZ%ڻ۷\- Q?v[]{vmuӊ%V& #oZ%w#W\m݊XeX*!5pޱ #ި?Q̯ձzqs"QSE$G)*leE[V&څSso=}"Zjxޕ_emDEM%n, |upcQ*Rۗ7泅T\10 VݱxS uDu%NEBC% QHǦ&ZCٳZj=λs{i>plh_.@Rw+m$Q5E<ǨMPхztX$%d_֭E74OlYX1H)( b 1Z! cv|Óy^k o=J Z6`Yopbi.?#ض5UJ!j,^!&L3;ԍ gB` CrsyƸti9\<Ӧ~D5YzAKjohnĤBOf MƲ Kƶcq9N Lg]GŪ NR=4U@}S߇w3hT"r][Y4: ,'zijU;nIVQ_C`@[u= ~6Wn]Mꍼ4qqrMo383:@HIq9.f eߙק™fMuhKY>Ů],ꤢ 搄D("mRf? ??\bE ._C(0WqU[Y'땞!:d<;\!Oq.Gu\!"][L|/756BtנRod2B: D6T(ƕv)>~=k `дbϺl_[XӚIÖ6..jt&dhLp~ =H$)u"R)k2n^[pU`8ӟ?4`d'S%KǔCFC6d a5LL 36I0KJmY8 W*mel:6F*v[_';a =61cLMadLsJobICټp1}3/rr Gm laq\\Wv$= uɻ@hxxZ缠_దN\ }Za9 A}AH< eK0WR,c+1`@'׾sjQSEֆAͲE6-.4P􍙙)x=g/OH&b;];T"xtp"(\9\>ZM\HZ5Y;X3X2V@U4R1R:S5Q+Nomn,}tRNS1 pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxem[0R":2VT([mb8T&06aWaK(}s\Ii*}т.3>^N)NsN^Zv'?]%8_4~5z2mCMPv! \ sa HRaE86 xI8 - 5)F<%뾇q<< Æq~ӭEYF%[(|XAdeX;*t%FPB{%;&x<.0(JmG@d8.W|~{g"Xw@94oy#~ZUu<~NuL:%Ww %/7Xhz4oq"Rrs%6Ya/U 2^4YPӮ/‚(ah,"#e!b: D()hhW+,>0  ifLF;u-fO"ߖ5\T<2'MmjrZmtծo 'M멪څڟ'8D>_޶'+.3x-m>A _ֻ@g$dIENDB`elracodelangela/administrator/images/send.png0000755000176700017710000000234311061563440022212 0ustar essawireessawirePNG  IHDR sbKGD̿ pHYsnu>tIMEͧtIDATxڕMlTUcfLDb((1 RMV.\ƕ. A FM PZGvڙLgμ.*wqsg_^Ʌ6xMTj F͙޷V{#j{so{jb gz_?FCǯoݶwb$g o FoyBӽOat x6v%4voĿ-:p2CA Rv6^K ;v~۱*U4<Ļ:Τp8s~q¦I2&:~!orɰ ;}}jb(H ֋:iMTH~/kx11=H$ g kTVoj>bz9kpP\&قE8`ᡲBW61E,lLl,,&&6STx HU[+UwtW2E$6RJM)va Z1VA:5; r4 E8%6X(HT0+ͤ`ca$Q0 lFBϞ8qD QHI3$a|O 8E-:4g0pjL $y {2JԵY@z{߾:_06PM-attXM YRx⣊掁督/$y  2K 1,aɠRGCiԯRćTphd3P`$vGK$!2H eϾJIENDB`elracodelangela/administrator/images/expandall.png0000755000176700017710000000045711061563437023243 0ustar essawireessawirePNG  IHDR r|bKGD pHYs  tIME IDATxc\"(#  A Y`m8(bCjܶx 8;W!j0411"0˟b,蚘8 ] Cw5 _'[Ch.;pY# ObL NCؾLt+KIENDB`elracodelangela/administrator/cache/0000755000176700017710000000000011061563557020355 5ustar essawireessawireelracodelangela/administrator/cache/index.html0000755000176700017710000000005411061563414022344 0ustar essawireessawireelracodelangela/administrator/language/0000755000176700017710000000000011061563556021074 5ustar essawireessawireelracodelangela/administrator/language/en-GB/0000755000176700017710000000000011074453335021761 5ustar essawireessawireelracodelangela/administrator/language/en-GB/en-GB.com_poll.ini0000755000176700017710000000233211061563414025154 0ustar essawireessawire# $Id: en-GB.com_poll.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM A POLL=A poll ALL=All CHANGES TO POLL SAVED=Changes to Poll saved (SECONDS BETWEEN VOTES)=(seconds between votes) EDIT POLL=Edit Poll LAG=Lag MENU ITEM LINK(S)=Menu Item Link(s) OPTION=Option OPTIONS=Options #If the variable does not work in your language use following line # PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a Poll from the list #instead of PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a Poll from the list to %s PLEASE SELECT A POLL=Please select a poll POLL=Poll POLL LAYOUT=Poll Layout POLL MANAGER=Poll Manager POLL MUST HAVE A NON-ZERO LAG TIME=Poll must have a non-zero lag time POLL MUST HAVE A TITLE=Poll must have a Title POLL TITLE=Poll Title POLL SAVED=Poll saved SELECT POLL=Select Poll SHOW ON MENU ITEMS=Show on Menu Items STANDARD POLL LAYOUT DESC=The Poll layout displays the Poll results. THE POLL=The Poll THIS COMPONENT MANAGES POLLS=This Component manages Polls UNASSIGNED=Unassigned VOTES=Votes elracodelangela/administrator/language/en-GB/en-GB.plg_authentication_example.ini0000755000176700017710000000060211061563413030741 0ustar essawireessawire# $Id: en-GB.plg_authentication_example.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCUSERBOT=Provides hooks for syncing Joomla! and a third-party application elracodelangela/administrator/language/en-GB/en-GB.com_menus.menu.ini0000755000176700017710000000103211061563414026274 0ustar essawireessawire# $Id: en-GB.com_menus.menu.ini 9076 2007-09-29 13:11:48Z humvee $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM #If the variable does not work in your language use following line # PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a Menu Item from the list #instead of PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a Menu Item from the list to %selracodelangela/administrator/language/en-GB/en-GB.plg_editors-xtd_readmore.ini0000755000176700017710000000064311061563414030341 0ustar essawireessawire# $Id: en-GB.plg_editors-xtd_readmore.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCREADMORE=Enables a button which allows you to easily insert the Read more... link into an Article. elracodelangela/administrator/language/en-GB/en-GB.com_media.ini0000755000176700017710000001010511061563413025261 0ustar essawireessawire# $Id: en-GB.com_media.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM CLEAR COMPLETED=Clear Completed *CLICK FOR IMAGE CODE*=*Click for Image Code* *CLICK FOR URL*=*Click for URL* *CLICK TO ENLARGE*=*Click to Enlarge* *CLICK TO OPEN*=*Click to Open* ADD MORE FILES=Add more files ADD FILE=Add file ALIGN=Align BROWSE=Browse BROWSE FILES=Browse files CAPTION=Caption CODE=Code CONFIGURATION PROBLEM=Configuration Problem CREATE=Create CREATE FOLDER=Create Folder DETAIL VIEW=Detail View DELETE FILE=Delete file DELETE FOLDER=Delete folder DELETE ITEM=Delete item DESCFTP=To upload, change and delete media files, Joomla! will most likely need your FTP account details. Please enter them in the form fields below. DESCFTPTITLE=FTP Login Details DIMENSIONS=Dimensions
    W x H px DIRECTORIES=Directories DIRECTORY=Directory DIRECTORY UP=Directory Up DOES NOT EXIST.=does not exist! ERROR. UNABLE TO UPLOAD FILE=Error. Unable to upload file. FILESIZE=Filesize FILES/FOLDERS IN=files/folders in FIRST.=first. FOLDERS=Folders HEIGHT=Height IMAGE CODE=Image Code IMAGE DESCRIPTION=Image Description IMAGE URL=Image URL IMAGE/URL CODE=Image/URL Code IMAGES FOLDER=Images Folder INSERT=Insert INSERT IMAGE=Insert Image INSERT YOUR TEXT HERE=Insert your text here JCLIENTHELPER::SETCREDENTIALSFROMREQUEST FAILED=Unable to connect to the server with the given credentials LEGAL EXTENSIONS LABEL=Legal Extensions (File Types) LEGAL EXTENSIONS DESC= Extensions (file types) you are allowed to upload (comma separated). LEGAL IMAGE EXTENSIONS LABEL=Legal Image Extensions (File Types) LEGAL IMAGE EXTENSIONS DESC= Image Extensions (file types) you are allowed to upload (comma separated). These are used to check for valid image headers. RESTRICT UPLOADS=Restrict Uploads RESTRICT UPLOADS DESC=Restrict uploads for lower than manager users to just images if Fileinfo or MIME Magic isn't installed. CHECK MIME=Check MIME Types CHECK MIME DESC=Use MIME Magic or Fileinfo to attempt to verify files. Try disabling this if you get invalid mime type errors IGNORED EXTENSIONS LABEL=Ignored Extensions IGNORED EXTENSIONS DESC=Ignored file extensions for MIME type checking and restricted uploads LEGAL MIME TYPES LABEL=Legal MIME Types LEGAL MIME TYPES DESC=A comma separated list of legal MIME types for upload ILLEGAL MIME TYPES=Illegal MIME Types ILLEGAL MIME TYPES DESC=A comma separated list of illegal MIME types for upload (blacklist) MAX=Max = MAXIMUM SIZE LABEL=Maximum Size MAXIMUM SIZE DESC=The maximum size for an upload (in bytes). Use zero for no limit. Note: your server has a maximum limit. MEDIA MANAGER=Media Manager NAME=Image Name NO IMAGES FOUND=No Images Found NOT SET=Not Set NUMFILES=Files: NUMFOLDERS=Folders: PLEASE DELETE ALL FILES/FOLDER IN=Please delete all files/folder in PX=px REMOVE FROM QUEUE=Remove from queue SELECT FILE=Select File SIZE=Size START UPLOAD=Start Upload TITLE=Image Title THERE ARE=There are THIS COMPONENT MANAGES SITE MEDIA=This Component manages site media THIS FILE TYPE IS NOT SUPPORTED=This file type is not supported THUMBNAIL VIEW=Thumbnail View UNABLE TO DELETE: NOT EMPTY!=Unable to delete! Not empty! UP=Up UPLOAD=Upload UPLOAD COMPLETE=Upload Complete UPLOAD FAILED=Upload Failed! UPLOAD FILE=Upload File UPLOAD FILES=Upload Files UPLOAD FAILED. FILE ALREADY EXISTS=Upload FAILED! File already exists. WARNSAFEMODE=Directory creation not allowed while running in SAFE MODE because this can cause problems. WARNDIRNAME=Directory name must only contain alphanumeric characters and no spaces. WARNFILENAME=File name must only contain alphanumeric characters, underscores, hyphens and spaces. WARNFILETYPE=This file type is not supported. WARNFILETOOLARGE=This file is too large to upload. WARNINVALIDIMG=Not a valid image. WARNINVALIDMIME=Illegal or invalid mime type detected. WARNNOTADMIN=Uploaded file is not an image file and you are not a manager or higher. WARNIEXSS=Possible IE XSS Attack found. elracodelangela/administrator/language/en-GB/en-GB.com_categories.ini0000755000176700017710000001055711061563414026343 0ustar essawireessawire# $Id: en-GB.com_categories.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM A LONG NAME TO BE DISPLAYED IN HEADINGS=A long name to be displayed as the page heading when this field is set to Show. ACTIVE=Active ALIAS=Alias ALL CATEGORIES=All Categories ALL CONTENT=All Content ALL CONTENT:=All Content: AND ALL THE ITEMS WITHIN THE CATEGORY (ALSO LISTED)=and all the Articles within each Category (also listed) ARTICLES BEING MOVED=Articles being moved ARTICLES BEING COPIED=Articles being copied A SHORT NAME TO APPEAR IN MENUS=A short name; ideally without spaces. Use a dash "-" or underscore "_" instead - used to create Search Engine Friendly (SEF) URL's. If you do happen to leave spaces in, Joomla! will replace them with %20 (which is not user friendly). BACK TO=Back to CATEGORIES ALREADY IN=Categories %s are already in %s CATEGORIES BEING COPIED=Categories being copied CATEGORIES BEING MOVED=Categories being moved CATEGORIES COPIED TO=%s Categories copied to %s CATEGORIES MOVED TO=Categories moved to %s CATEGORY ALREADY IN=Category %s is already in %s CATEGORY BLOG=Category Blog CATEGORY BLOG ARCHIVE=Category Blog Archive CATEGORY DETAILS=Category Details CATEGORY ID=Category ID CATEGORY INFORMATION=Category Information CATEGORY MANAGER=Category Manager CATEGORY MUST HAVE A NAME=Category must have a name CATEGORY MUST HAVE A TITLE=Category must have a title CATEGORY SAVED=Category saved CATEGORY TABLE=Category Table CATEGORY(S)=Category(s) CATSUCCESSCREATED=%s ( %s ) in Menu: %s successfully created CHANGES TO CATEGORY SAVED=Changes to Category saved COMPONENT:=Component: %s CONTACT=Contact CONTACT CATEGORY TABLE=Contact Category Table CONTACTS CATEGORIES=Contacts Categories CONTACT_DETAILS=Contact Details CONTACTS MANAGER=Contacts Manager CONTENT CATEGORY ARCHIVE BLOG=Content Category Archive Blog CONTENT CATEGORY BLOG=Content Category Blog CONTENT CATEGORY BLOG ARCHIVE=Content Category Blog Archive CONTENT CATEGORY TABLE=Content Category Table CONTENT:=Content: %s CONTENT: ALL=Content: All COPY CATEGORY=Copy Category COPY OF=Copy of %s COPY TO SECTION=Copy to Section DESCNEWITEMSLAST=New Categories default to the last position. Ordering can be changed after this Category is saved. IMAGE POSITION=Image Position MOVE CATEGORY=Move Category MOVE TO SECTION=Move to Section N/A=N/A NEW CATEGORY=New Category NEWSFEEDS=News Feeds NEWS FEEDS CATEGORIES=News Feed Categories NEWS FEEDS MANAGER=News Feeds Manager NEWSFEED CATEGORY TABLE=News Feed Category Table NOTE: IF SAME SECTION=NOTE: If the same Section is selected a new "Copy of categoryname" will be created in that Section. ORDER BY=Order ORDERING=Category Order PLEASE ENTER A NAME FOR THIS MENU ITEM=Please enter a name for this Menu Item PLEASE SELECT A MENU TYPE=Please select a Menu Type #If the variable does not work in your language use following line # PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a Category from the list #instead of PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a Category from the list to %s PUBLISH ITEM=Publish this Category SELECT A CATEGORY TO=Select a Category to SELECT A CATEGORY TO DELETE=Select a Category to delete SELECT MENU TYPE=Select Menu Type SELECT AN ITEM TO MOVE=Select a Category to move SELECT TYPE=Select Type SELECT A SECTION=Select a Section THE CATEGORY=The Category THIS WILL MOVE THE CATEGORIES LISTED=This will move the Category(ies) listed THERE ARE NO CATEGORIES=There are no Categories TO THE SELECTED SECTION=to the selected Section UNCATEGORIZED=Uncategorised UNPUBLISH ITEM=Unpublish this Category WARNNOTREMOVEDRECORDS=Category(ies): %s cannot be removed as they contain Articles. There may currently be Articles within the Article Trash Manager which you must delete first. WEB LINKS CATEGORIES=Web Links Categories WEB LINKS MANAGER=Web Links Manager WEBLINK CATEGORY TABLE=Web Link Category Table WARNSECTION=You need to have at least one Section before you can create a Category. WEBLINKS=Web Links WILL CREATE NEW MENU ITEM IN MENU SELECTED=Will create a new Menu Item in the selected Menu YOU MUST CREATE A CATEGORY FIRST.=You must create a Category first. PLEASE SELECT A SECTION FROM THE LIST=Please Select a Section from the list. elracodelangela/administrator/language/en-GB/en-GB.mod_stats.ini0000755000176700017710000000102111061563412025335 0ustar essawireessawire# $Id: en-GB.mod_stats.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM MENU=Menu MENU ITEMS=Menu Items MOD_STATS=mod_stats DESCITEMSSTATS=This Module shows details of the number of Menu Items that are still current on each of the Menus. Some that are shown may have expired even though they are the most recent. elracodelangela/administrator/language/en-GB/en-GB.com_login.ini0000755000176700017710000000060011061563414025312 0ustar essawireessawire# $Id: en-GB.com_login.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCUSEVALIDLOGIN=Use a valid username and password to gain access to the Administrator Back-end.elracodelangela/administrator/language/en-GB/en-GB.mod_menu.ini0000755000176700017710000000532111061563414025154 0ustar essawireessawire# $Id: en-GB.mod_menu.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ADD/EDIT=Add/Edit ARCHIVE=Archive ARTICLE MANAGER=Article Manager ARTICLE TRASH=Article Trash ARTICLE STATISTICS=Article Statistics BACK=Back BROWSER, OS, DOMAIN=Browser, OS, Domain CATEGORIES=Categories CATEGORY MANAGER=Category Manager CHECK-IN ALL CHECKED-OUT ITEMS=Check-in all checked out Articles CLEAN ALL CACHES=Clean all Caches CLEAN CONTENT CACHE=Clean the Content Cache CLEAN THE ARTICLES CACHE=Clean the Articles Cache COMPONENT MANAGEMENT=Component Management COMPONENTS=Components CONFIGURATION=Global Configuration CONTENT BY SECTION=Content by Section CONTENT MANAGEMENT=Content Management CONTENT MANAGERS=Content Managers CONTROL PANEL=Control Panel ELEMENT LIST=Element List EXTENSIONS=Extensions EXTENSION MANAGER=Extension Manager FRONTPAGE MANAGER=Front Page Manager GLOBAL CHECKIN=Global Check-in INSTALL EXTENSIONS=Install Extensions INSTALL/UNINSTALL=Install/Uninstall INSTALLER=Installer ITEMS=Items JOOMLA! HELP=Joomla! Help LANGUAGE MANAGER=Language Manager LANGUAGES=Languages LOGOUT=Logout MANAGE ARTICLES=Manage Articles MANAGE CONTENT CATEGORIES=Manage Content Categories MANAGE CONTENT SECTIONS=Manage Content Sections MANAGE FRONTPAGE ITEMS=Manage Front Page Articles MANAGE LANGUAGES=Manage Languages MANAGE MEDIA FILES=Manage Media Files MANAGE MENU=Manage Menus MANAGE TRASH=Manage Trash MANAGE USERS=Manage Users MEDIA MANAGER=Media Manager MENUS=Menus MENU INACTIVE FOR THIS PAGE=This Menu is inactive for this page. MENU MANAGEMENT=Menu Management READ MESSAGES=Read Messages MOD_CSSMENU=mod_cssmenu MODULE MANAGER=Module Manager MODULES=Modules MOD_MENU=mod_menu MORE COMPONENTS...=More Components... PAGE HITS=Page Hits PREVIEW...=Preview... PLUGIN MANAGEMENT=Plugin Management PLUGIN MANAGER=Plugin Manager PLUGINS=Plugins SEARCH TEXT=Search Text SECTION MANAGER=Section Manager SITE MANAGEMENT=Site Management SITE STATISTICS=Site Statistics STATISTICS=Statistics SYNDICATE=Syndicate SYSTEM=System SYSTEM INFO=System Info SYSTEM INFORMATION=System Information SYSTEM MANAGEMENT=System Management TEMPLATES - ADMIN=Templates - Admin TEMPLATES - SITE=Templates - Site TEMPLATE MANAGER=Template Manager THEMEOFFICE=ThemeOffice THIS MODULE SHOWS THE MAIN ADMIN NAVIGATION MODULE=This Module shows the main admin navigation Module MENU TRASH=Menu Trash UNINSTALL COMPONENTS=Uninstall Components USER MANAGER=User Manager UNINSTALL PLUGINS=Uninstall Plugins UNINSTALL MODULES=Uninstall Modules WRITE MESSAGE=Write Message CLEAN CACHE=Clean Cacheelracodelangela/administrator/language/en-GB/en-GB.plg_content_loadmodule.ini0000755000176700017710000000133011061563413030065 0ustar essawireessawire# $Id: en-GB.plg_content_loadmodule.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM CODE THAT WILL WRAP MODULES=Code that will wrap Modules DESCLOADPOSITION=Loads Module positions within Content, Syntax: {loadposition user1} LOADPOSITION=loadposition NO WRAPPING - RAW OUTPUT=No wrapping (raw output) STYLE=Style WRAPPED BY DIVS=Wrapped by Divs WRAPPED BY MULTIPLE DIVS=Wrapped by Multiple Divs WRAPPED BY TABLE - COLUMN=Wrapped by table (column) WRAPPED BY TABLE - HORIZONTAL=Wrapped by table (horizontal) elracodelangela/administrator/language/en-GB/en-GB.mod_footer.ini0000755000176700017710000000104311061563414025503 0ustar essawireessawire# $Id: en-GB.mod_footer.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM CHECK FOR LATEST VERSION=Check for latest Version MOD_FOOTER=mod_footer THERE ARE NO PARAMETERS FOR THIS ITEM=There are no Parameters for this Module THIS MODULE SHOWS THE JOOMLA! COPYRIGHT INFORMATION=This Module shows the Joomla! copyright information. elracodelangela/administrator/language/en-GB/en-GB.plg_editors_xstandard.ini0000755000176700017710000000117111061563413027732 0ustar essawireessawire# $Id: en-GB.plg_editors_xstandard.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCXSTANDARD=XStandard is the leading standards-compliant WYSIWYG editor Plugin for desktop applications and browser-based content management systems (IE/Mozilla/Firefox/Netscape). PARAMEDITORMODE=This paramater can be used to set the default view of the editor. EDITOR MODE=Editor Mode SCREEN-READER=Screen Reader WYSIWYG=WYSIWYG elracodelangela/administrator/language/en-GB/en-GB.com_jce.ini0000644000176700017710000002672211074451460024756 0ustar essawireessawire# $Id: en-GB.com_jce.ini 28/02/2008$ # JCE Project # Copyright (C) 2005 - 2008 Ryan Demmer. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 # Layout Editor JCE LAYOUT NOTE =This is the Default Global Layout of the Editor buttons, used as the default layout for new Groups, and does not represent the actual user layout, which is determined by the Group Manager. JCE LAYOUT EDITOR =JCE Layout Editor - Global Layout JCE LAYOUT DESC =Each image represents an editor button. Drag and drop each button from one row to another and within rows to reorganize the layout. # Plugins PLUGIN MANAGER =JCE Plugin Manager NEW PLUGIN =New Plugin EDIT PLUGIN =Edit Plugin INSTALLER =Installer REFRESH LIST =Refresh List FOLDER =Folder PLUGIN =Plugin PLUGIN DETAILS =Plugin Details PLUGIN FILE =Plugin File PLUGIN MUST HAVE A FILENAME =Plugin must have a Filename PLUGIN MUST HAVE A NAME =Plugin must have a Name PLUGIN NAME =Plugin Name PLUGIN ORDER =Plugin Order PLUGIN PARAMETERS =Plugin Parameters PUBLISH =Enable PUBLISH ITEM =Enable Plugin PUBLISHED =Enabled NO PARAMETERS =No Parameters NO VARIABLES =No Variables SELECT A PLUGIN TO =Select a Plugin to SELECT TYPE =Select Type SITE =Site SITE PLUGIN =Site Plugin SUCCESSFULLY SAVED CHANGES TO PLUGIN =Successfully saved changes to Plugin: %s SUCCESSFULLY SAVED PLUGIN =Successfully saved Plugin: %s THERE ARE NO PARAMETERS FOR THIS ITEM =There are no Parameters for this Plugin THIS PLUGIN CANNOT BE REORDERED =This Plugin cannot be reordered UNPUBLISH =Disable UNPUBLISH ITEM =Disable Plugin UNPUBLISHED =Disabled STANDARD =Standard ADVANCED =Advanced DEFAULTS =Defaults ACCESS =Access NOT SET =Default/Not Set # Installer Installer =JCE Installer EXTENSION =Extension LANGUAGES DESC =Languages files for JCE Admin Component and JCE Editor Mambot NO CUSTOM PLUGINS =There are no custom plugins installed NO CUSTOM LANGUAGES =There are no custom languages installed NO PLUGIN EXTENSIONS =There are no plugin extensions installed EDITOR LANGUAGES =Editor Languages ADMIN LANGUAGES =Admin Languages # Config JCE CONFIGURATION =JCE Configuration CONFIGURATION =Configuration GLOBAL PARAMETERS DESC =These parameters affect all editor instances GROUP PARAMETERS DESC =These parameters act as defaults for any new Group created in the Group Manager but are overridden by a Group's own parameters. EDITOR LAYOUT =Editor Layout SCRIPT ACCESS =Script Access EDITOR OPTIONS =Editor Options PLUGIN OPTIONS =Plugin Options # Config Setup PARAM EDITOR WIDTH =Editor Width PARAM EDITOR WIDTH DESC =Width of the Editor window in % or px. Leave blank to use the original width of the textarea. PARAM EDITOR HEIGHT =Editor Height PARAM EDITOR HEIGHT DESC =Height of the Editor window in % or px. Leave blank to use the original height of the textarea. PARAM EDITOR STATE =Editor State PARAM EDITOR STATE DESC =Default Editor State - On/Off PARAM EDITOR TOGGLE TEXT =Editor Toggle Label PARAM EDITOR TOGGLE TEXT DESC =Text for the Editor Toggle link, eg: [show/hide] PARAM EDITOR TOGGLE ALLOW =Editor Toggle PARAM EDITOR TOGGLE ALLOW DESC =Allow Editor Toggling PARAM TABLE INLINE =Inline Table Editing PARAM TABLE INLINE DESC =Enable / Disable inline Table editing in Mozilla/Firefox. Useable but buggy. PARAM TEMPLATE CSS =Use Template CSS PARAM TEMPLATE CSS DESC =Use Template CSS for editor Style List and content display PARAM CSS CUSTOM =Use Custom CSS file PARAM CSS CUSTOM DESC =Use custom CSS for editor Style List and content display. You can specify the loading of a custom CSS file - simply enter the relative url of the replacement css file. The $template variable will be replaced by your active template name. PARAM TOOLBAR LOCATION =Toolbar Position PARAM TOOLBAR LOCATION DESC =Position of the Editor toolbar PARAM TOOLBAR ALIGN =Toolbar Alignment PARAM TOOLBAR ALIGN DESC =Alignment of the Editor toolbar PARAM RELATIVE =Relative URLs PARAM RELATIVE DESC =Use relative URLS for all images, links etc. in content items. Recommended. PARAM ROOT BLOCK =Force Container Element PARAM ROOT BLOCK DESC =Content not inside a container element (eg: p, div) will be inserted into the selected element type PARAM NEWLINES =Newlines PARAM NEWLINES DESC =Newlines (on enter) will be made into the selected option PARAM LINEBREAKS =Linebreaks(br) PARAM EDITOR BODY =Editor Content Class PARAM EDITOR BODY DESC =Custom class name for the editor content area. High Contrast forces black text on a white background. PARAM EDITOR BODY CLASS =Custom Editor Content Class PARAM EDITOR BODY CLASS DESC =Specify custom class if Editor Content Class is set to custom. PARAM EDITOR SKIN =Editor Skin PARAM EDITOR SKIN DESC =Skin Theme for editor PARAM EDITOR SKIN VARIANT =Editor Skin Variant PARAM EDITOR SKIN VARIANT DESC =Variation for selected skin. Only applies to o2k7 PARAM DIALOG SKIN =Popup Dialog Skin PARAM DIALOG SKIN DESC =Skin for popup dialogs PARAM EDITOR BODY CONTRAST =High Contrast PARAM EDITOR BODY CUSTOM =Custom PARAM EDITOR DEFAULT =Default PARAM LAYOUT ROWS =Layout Rows PARAM LAYOUT ROWS DESC =Number of button rows in the editor layout # Config Cleanup PARAM CLEANUP =Cleanup HTML PARAM CLEANUP DESC =Perform HTML cleanup of content, removing undeclared elements, fixing incorrect html, closing tags etc. PARAM TABLE FIX =Fix Table Elements PARAM TABLE FIX DESC =Block elements will be split into two chunks when a table is found within it to produce an XHTML valid table. See - http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/fix_table_elements PARAM LIST FIX =Fix List Elements PARAM LIST FIX DESC =List elements UL/OL converted to valid XHTML. See - http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/fix_list_elements PARAM PLUGIN MODE =Plugin Mode PARAM PLUGIN MODE DESC =If true, & and ' are not encoded when content is saved. PARAM JAVASCRIPT =Allow Javascript PARAM JAVASCRIPT DESC =Allow Javascript code insertion in HTML view PARAM ELEMENTS =Extended Elements PARAM ELEMENTS DESC =Extend JCE functionality by adding in extra elements here. Only applies if Cleanup HTML is 'Yes'. PARAM NO ELEMENTS =Prohibited Elements PARAM NO ELEMENTS DESC =Comma seperated list of prohibited elements. These will always be removed if, eg: applet PARAM EVENTS =Event Elements PARAM EVENTS DESC =This option should contain a comma separated list of elements thay may have event attributes such as onclick and simmilar. This option is needed since some browsers execute these events while editing content. PARAM PHP =Allow PHP PARAM PHP DESC =Allow PHP code insertion in HTML view # Config General PARAM HTML HEIGHT =HTML View Height PARAM HTML HEIGHT DESC =Height of the HTML View popup window PARAM HTML WIDTH =HTML View Width PARAM HTML WIDTH DESC =Width of the HTML View popup window PARAM PREVIEW HEIGHT =Preview Height PARAM PREVIEW HEIGHT DESC =Height of the Preview popup window PARAM PREVIEW WIDTH =Preview Width PARAM PREVIEW WIDTH DESC =Width of the Preview popup window PARAM CUSTOM COLORS =Custom Colors PARAM CUSTOM COLORS DESC =A comma seperated list of colors to be used by the ColorPicker, in Hex format, eg: #ff0000. PARAM CUSTOM CONFIG =Custom Configuration Variables PARAM CUSTOM CONFIG DESC =A list of custom TinyMCE configuration variables, seperated by a ';' eg: object_resizing: false; browsers: 'msie,gecko,opera'. PARAM CALLBACK =Custom Callback File PARAM CALLBACK DESC =Relative url (to site root) of file containing callback functions for TinyMCE callback commands. PARAM FONT ADD =Additional Fonts PARAM FONT ADD DESC =A list of additional fonts by family, seperated by a ; eg: Arial=arial,helvetica,sans-serif;Georgia=georgia,palatino. PARAM FONT REMOVE =Remove Fonts PARAM FONT REMOVE DESC =A list of Font Familys to remove, seperated by a ; eg: Arial;Georgia;Courier New PARAM FONT CLASSES =Font Classes PARAM FONT CLASSES DESC =Optional, comma seperated list of font classes that correspond to styles css classes in your Template stylesheet. PARAM FONT STYLES =Font Styles PARAM FONT STYLES DESC =Comma seperated list of font style values eg: 8pt,10pt,12pt,14pt,18pt,24pt,36pt PARAM BLOCK FORMAT =Block Format Elements PARAM BLOCK FORMAT DESC =A comma seperated list of block elements for the Format Select List # Config Plugins PARAM UPLOAD METHOD =Upload Method PARAM UPLOAD METHOD DESC =Method to use for file uploads, either Flash (with multiple files, progress indicator etc. Requires Flash 8+) or html PARAM FOLDER TREE =Folder Tree PARAM FOLDER TREE DESC =Use Folder Tree fro directory navigation in 'Manager' plugins PARAM UPLOAD EXISTS =Upload Conflict Methods PARAM UPLOAD EXISTS DESC =Methods available for dealing with uploaded files that already exist in the target folder PARAM UPLOAD EXISTS OVERWRITE =Overwrite Existing File PARAM UPLOAD EXISTS UNIQUE =Create Unique File Name PARAM UPLOAD EXISTS OVERWRITE PARAM UPLOAD EXISTS UNIQUE=Overwrite Existing File / Create Unique File Name PARAM UPLOAD EXISTS UNIQUE =Create Unique File Name PARAM UPLOAD EXISTS ERROR =Show Error PARAM EXTENSIONS =Permitted File Extensions PARAM EXTENSIONS DESC =List of permitted file extensions for uploading/display grouped by type, seperated by a semi-colon PLUGIN PARAMETERS DESC =Parameters for this plugin are set on a per group basis in the Group Editor. # Config Other LINEBREAKS =Linebreaks (br) PARAGRAPHS =Paragraphs (p) PARAGRAPH =Paragraph DIV =Div TOP =Top BOTTOM =Bottom EXTERNAL =External PARAM HELP URL =Help URL PARAM HELP URL DESC =Site/URL to JCE Plugin Help content # Groups GROUPS LAYOUT =Group Layout Editor GROUPS LAYOUT DESC =Drag and drop individual buttons or rows of buttons from the defualt editor layout to the Group layout. GROUP DEFAULT LAYOUT =Default Layout EDITOR LAYOUT =Editor Layout GROUPS OTHER PLUGINS =Additional Plugins GROUPS OTHER PLUGINS DESC =Plugins that do not appear in the editor layout # Manager Plugin Parameters MANAGER PARAM DIRECTORY =File Directory Path MANAGER PARAM DIRECTORY DESC =Relative path to file directory. This path can contain the variables $id, $username, $usertype and $group which will be converted into their appropriate equivalent values. MANAGER PARAM DIRECTORY CREATE =Create File Directory MANAGER PARAM DIRECTORY CREATE DESC =Create above directory on first load if it does not exist. MANAGER PARAM UPLOAD SIZE =Upload file size (KB) MANAGER PARAM UPLOAD SIZE DESC =Maximum allowed size in kilobytes of uploaded files. MANAGER VIEWABLE =Viewable Files MANAGER VIEWABLE DESC =List of files that are able to be viewed in a popup window UPLOAD =Upload UPLOAD DESC =Allow File Uploads FOLDER CREATE =Folder Create FOLDER CREATE DESC =Allow Folder Creation FOLDER DELETE =Folder Delete FOLDER DELETE DESC =Allow Folder Deletion FOLDER RENAME =Folder Rename FOLDER RENAME DESC =Allow Folder Renaming FILE DELETE =File Delete FILE DELETE DESC =Allow File Deletion FILE RENAME =File Rename FILE RENAME DESC =Allow File Renaming FILE PASTE =File Cut/Copy/Paste FILE PASTE DESC =Allow File Cut/Copy/Pasteelracodelangela/administrator/language/en-GB/en-GB.com_poll.menu.ini0000755000176700017710000000046211061563414026121 0ustar essawireessawire# $Id: en-GB.com_poll.menu.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM COM_POLL=Polls elracodelangela/administrator/language/en-GB/en-GB.com_config.ini0000755000176700017710000003352311061563414025461 0ustar essawireessawire# $Id: en-GB.com_config.ini 10882 2008-08-31 17:55:14Z willebil $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ADD SUFFIX TO URLS=Add suffix to URLs ALLOW USER REGISTRATION=Allow User Registration ATOM=Atom AUTHOR NAMES=Author Names CACHE=Cache CACHE FOLDER=Cache Folder CACHE HANDLER=Cache Handler CACHE SETTINGS=Cache Settings CACHE TIME=Cache Time CACHING=Caching COMPRESS BUFFERED OUTPUT IF SUPPORTED=Compress buffered output if supported. COULD NOT MAKE CONFIGURATION.PHP WRITABLE=Could not make configuration.php writable. CREATED DATE AND TIME=Created Date and Time DATABASE=Database DATABASE PREFIX=Database Prefix DATABASE SETTINGS=Database Settings DATABASE TYPE=Database Type DEBUG=Debug DEBUG SYSTEM=Debug System DEBUG LANGUAGE=Debug Language DEBUG SETTINGS=Debug Settings DEFAULT WYSIWYG EDITOR=Default WYSIWYG Editor DESCFTP=For updating your configuration.php file, Joomla! will most likely need your FTP account details. Please enter them in the form fields below. DESCFTPTITLE=FTP Login Details ENABLE FLASH UPLOADER=Enable Flash Uploader ENABLE FLASH UPLOADER DESC=Select whether the Flash Uploader should be used or not for uploading media in the Media Manager EDIT PREFERENCES=Edit Preferences EMAIL ICON=E-mail Icon ENABLE FTP=Enable FTP ENABLE DEBUGGING=Enable Debugging ENABLE LOGGING=Enable Logging ENABLE WEB SERVICES=Enable Web Services ERROR REPORTING=Error Reporting ERRORCONFIGFILE=An Error has occurred! Unable to open configuration.php file to write! FEEDLIMIT=Feedlimit FEED LENGTH=Feed length FOR EACH ARTICLE, SHOW=For each Article, show FROM NAME=From Name FRONT-END USER PARAMS=Front-end User Parameters FTP=FTP FTP HOST=FTP Host FTP PASSWORD=FTP Password FTP PATH=FTP Path FTP PORT=FTP Port FTP ROOT=FTP Root FTP SETTINGS=FTP Settings FTP USERNAME=FTP Username FULL TEXT=Full Text GLOBAL CONFIGURATION=Global Configuration GLOBAL SITE META DESCRIPTION=Global Site Meta Description GLOBAL SITE META KEYWORDS=Global Site Meta Keywords GZIP PAGE COMPRESSION=GZIP Page Compression HELP SERVER=Help Server HELPREFRESH ERROR FETCH=The current Help Sites list could not be fetched from the remote server HELPREFRESH ERROR STORE=The new Help Sites list could not be saved HELPREFRESH SUCCESS=The Help Sites list has been refreshed. HOSTNAME=Hostname INTRO TEXT=Intro Text ITEM RATING/VOTING=Article Rating/Voting JCLIENTHELPER::SETCREDENTIALSFROMREQUEST FAILED=Unable to connect to the server with the given credentials. LEGAL EXTENSIONS LABEL=Legal Extensions (File Types) LEGAL EXTENSIONS DESC= Extensions (File Types) for the files you allow to be uploaded (comma separated). LEGAL IMAGE EXTENSIONS LABEL=Legal Image Extensions (File Types) LEGAL IMAGE EXTENSIONS DESC=Image Extensions (File Types) you are allowed to upload (comma separated). These are used to check for valid image headers. RESTRICT UPLOADS=Restrict Uploads RESTRICT UPLOADS DESC=Restrict uploads for lower than manager users to just images if Fileinfo or MIME Magic isn't installed. CHECK MIME=Check MIME Types CHECK MIME DESC=Use MIME Magic or Fileinfo to attempt to verify files. Disable this if you get invalid mime type errors. IGNORED EXTENSIONS LABEL=Ignored Extensions IGNORED EXTENSIONS DESC=Ignored file extensions for MIME type checking and restricted uploads LEGAL MIME TYPES LABEL=Legal MIME Types LEGAL MIME TYPES DESC=A comma separated list of legal MIME types for upload ILLEGAL MIME TYPES=Illegal MIME Types ILLEGAL MIME TYPES DESC=A comma separated list of illegal MIME types for upload (blacklist) LINKED TITLES=Linked Titles LOCALE SETTINGS=Locale Settings MAIL FROM=Mail from MAIL SETTINGS=Mail Settings MAILER=Mailer MAXIMUM=Maximum MAXIMUM SIZE LABEL=Maximum Size (in bytes) MAXIMUM SIZE DESC=The maximum size for an upload (in bytes). Use zero for no limit. MEDIA SETTINGS=Media Settings METADATA=Metadata METADATA SETTINGS=Metadata Settings MODIFIED DATE AND TIME=Modified Date and Time NEW USER ACCOUNT ACTIVATION=New User Account Activation NEW USER REGISTRATION TYPE=New User Registration Type OFFLINE MESSAGE=Offline Message PATH TO LOG-FOLDER=Path to Log folder PATH TO TEMP-FOLDER=Path to Temp-folder PATH TO IMAGE FOLDER=Path to Image Folder PATH TO FILE FOLDER=Path to Media Folder PDF ICON=PDF Icon PHP MAIL FUNCTION=PHP Mail Function READ MORE LINK=Read more...link REFRESH=Refresh RSS=RSS SEARCH ENGINE FRIENDLY URLS=Search Engine Friendly URLs SEARCH ENGINE OPTIMIZATION SETTINGS=Select whether or not the URLs are optimised for Search Engines. SECRET WORD=Secret Word SENDMAIL=Sendmail SENDMAIL PATH=Sendmail Path SEO=SEO SEO SETTINGS=SEO Settings SERVER=Server SERVER SETTINGS=Server Settings SESSION HANDLER=Session Handler SESSION LIFETIME=Session Lifetime SESSION SETTINGS=Session Settings SHOW AUTHOR META TAG=Show Author Meta Tag SHOW THE MOST RECENT=Show the most recent SHOW TITLE META TAG=Show Title Meta Tag SHOW UNAUTHORIZED LINKS=Show Unauthorised Links SIMPLE=Simple SITE NAME=Site Name SITE OFFLINE=Site Offline SITE SETTINGS=Site Settings SMTP AUTH=SMTP Authentication SMTP HOST=SMTP Host SMTP PASS=SMTP Password SMTP SERVER=SMTP Server SMTP USER=SMTP Username STATISTICS=Statistics SYSTEM=System SYSTEM DEFAULT=System Default SYSTEM SETTINGS=System Settings THE CONFIGURATION DETAILS HAVE BEEN UPDATED=The Global Configuration details have been updated. TIPALLOWUSERREG=If set to Yes, new Users allowed to self-register. TIPAUTOLOGOUTTIMEOF=Auto log out a User after they have been inactive for the entered number of minutes. Do not set too high. TIPCACHETIME=The maximum length of time in minutes for a cache file to be stored before it is refreshed. TIPCACHE=Select whether the cache is enabled or not. TIPCACHEHANDLER=The default caching mechanism is file-based. TIPDATETIMEDISPLAY=Current date and time configured to display TIPDATABASEHOSTNAME=The hostname for your database entered during the installation process. Do not edit this field unless absolutely necessary (e.g. the transfer of the database to a new hosting provider). TIPDATABASENAME=The name for your database entered during the installation process. Do not edit this field unless absolutely necessary (e.g. the transfer of the database to a new hosting provider). TIPDATABASEPREFIX=The prefix used for your database entered during the installation process. Do not edit field unless absolutely necessary (e.g. the transfer of the database to a new hosting provider). TIPDTATABASETYPE=The type of database in use entered during the installation process. Do not edit this field unless you are having to migrate to a different type of database, perhaps due to changing your hosting provider. TIPDATABASEUSERNAME=The username for access to your database entered during the installation process. Do not edit this field unless absolutely necessary (e.g. the transfer of the database to a new hosting provider). TIPDEBUGGINGINFO=If enabled, diagnostic information, language translation, and SQL errors (if present) will be displayed. The information will be displayed at the foot of every page you view within the Joomla! back-end and front-end. It is not advisable to leave the debug mode activated when running a live Web site. TIPDEBUGLANGUAGE=Select whether the debugging indicators (•...•) or (?...?) for the Joomla! Language files will be displayed. Debug Language will work without Debug System being activated, but you will not get the aditional detailed references that will help you correct any errors. TIPDEFWYSIWYG=Select the default WYSIWYG Editor for your site. Registered Users will be able to change their preference in their Personal Details if you allow that option. TIPENABLEWEBSERVICES=Enable the ability of the installation to make RPC (Remote Procedure Calls) using HTTP as the transport medium and XML as the encoding language. This function is required to ensure that many third-party extensions work. Default is No. TIPERRORREPORTING=Select the appropriate level of reporting from the drop down list. See the Help Screen for full details. TIPFROMNAME=By default, this field is populated with the site name entered during installation. TIPFRONTENDUSERPARAMS=If set to Show, Users will be able to select their language, editor, and Help Site preferences on their Details screen when logged into the front-end. TIPENABLEFTP=Enable the built in FTP (File Transfer Protocol) functionality of Joomla! to be used instead of the normal upload functionality of Joomla!. TIPFTPHOST=Enter the name of the host of your FTP server TIPFTPPASSWORD=Enter your FTP password TIPFTPPORT=Enter the port that FTP should be accessed by. Default is Port 21. TIPFTPROOT=The path to the root directory of the FTP server. The root directory is the base directory to which the FTP server is allowed access. TIPFTPUSERNAME=The username used to access the FTP server. TIPGLOBALSITEMETATADESC=Enter a description of the overall Web site that is to be used by search engines. Generally, a maximum of 20 words is optimal. TIPGLOBALSITEMETAKEY=Enter the keywords and phrases that best describe your Web site. Separate keywords with a comma and group phrases within single quotations. TIPHELPSERVER=Select the name of the Help Server where your system will collect the Help Screen displays from. Set to Local to use those files within the core installation of Joomla!. Click the Refresh button to update the Help Server List. TIPIFSETTOSHOWAUTHOR=If set to Show, the Name of the Author will be displayed. This a global setting but can be changed at Menu and Article levels. TIPIFSETTOSHOWDATETIMECREATED=If set to Show, the date and time an Article was created will be displayed. This a global setting but can be changed at Menu and Article levels. TIPIFSETTOSHOWDATETIMEMODIFIED=If set to Show, the date and time an Article was last modified will be displayed. This a global setting but can be changed at Menu and Article levels. TIPIFSETTOSHOWHITS=If set to Show, the number of Hits on a particular Article will be displayed. This a global setting but can be changed at Menu and Article levels. TIPIFSETTOSHOWREADMORELINK=If set to Show, the Read more... Link will show if Main text has been provided for the Article. TIPIFSETTOSHOWVOTING=If set to Show, a Voting system will be enabled for Articles. TIPIFYESTITLECONTENTITEMS=If set to Yes, the Title of Articles will be hyperlinked to the Article itself. TIPIFYESUSERMAILEDLINK=If set to Yes, the User will be e-mailed a link to activate their account before they can log in. TIPIFYOURSITEISOFFLINE=A message that displays in the Front-end if your site is offline. TIPIMAGEFOLDERWARN=You can create a new folder to use with the Image Manager and enter the path to that folder here. If you want to access this folder from the Media Manager, use the same folder name or make this a sub folder of the Media Manager folder. Warning: Do not delete or change the existing images/stories folder since it is used by the application. TIPFILEFOLDERWARN=You can create a new folder to use with the Media Manager and enter the path to that folder here. Warning: Do not delete or change the existing images folder. The images/banners, images/M_images, images/smilies, and images/stories folders are used by the application. TIPLOGFOLDER=For logging of Joomla!. Please specify a folder. TIPMAILER=Select which mailer you wish to use for the delivery of site e-mails. TIPMAILFROM=The e-mail address that will be used to send site e-mails from. TIPLINKS=If set to Yes, links to registered content will be shown even if you are not logged in. You will need to log in to access the full item. TIPNEWUSERTYPE=The default access level that will be applied to new Users registering via the front-end. TIPPRINTPDFEMAIL=Print, PDF, and E-mail will utilise Icons or Text TIPSECRETWORD=This is an auto-generated, unique alphanumeric code for every Joomla! installation. It is used for security functions. TIPSENDMAILPATH=Enter the path to the sendmail program directory on the host server. TIPSESSIONHANDLER=The mechanism by which Joomla! identifies a User once they are connected to the web site using non-persistent cookies. TIPSETSDEFAULTLENGTHLISTS=Sets the default length of lists in the Control Panel for all Users TIPSETYOURSITEISOFFLINE=Select whether access to the Site Front-end is available. If Yes, the Front-end will display the message below. TIPSHOWAUTHORMETATAGITEMS=Show the Author Meta Tag when viewing Articles TIPFEEDLIMIT=Select the number of content items to show in the Feed(s) TIPSHOWTITLEMETATAGITEMS=Show the Title Meta Tag when viewing Articles TIPSITENAME=Enter the name of your Web site. This will be used in various locations (e.g. the back-end browser title bar and Site Offline pages). TIPSMTPAUTH=Select Yes if your SMTP Host requires SMTP Authentication. TIPSMTPHOST=Enter the name of the SMTP host. TIPSMTPUSER=Enter the username for access to the SMTP host TIPSMTPPASS=Enter the password for access to the SMTP host TIPTMPFOLDER=Please select a writable Temp folder. TIPURLSUFFIX=If yes, the system will add a suffix to the URL based on the document type. TIPUSEMODREWRITE=Select to use the Apache Rewrite Module to catch URLs that meet specific conditions and rewrite them as directed. URL SUFFIX=URL Suffix USE MOD_REWRITE=Use Apache mod_rewrite USER SETTINGS=User Settings USERS=Users WARNAPACHEONLY=Apache users only! Rename htaccess.txt to .htaccess before activating. WARNPATHCHANGES=You can set new locations for the 'Path to Media Folder' and 'Path to Image Folder' folders. However, do not delete or change the existing images folder. The images/banners, images/M_images, images/smilies, and images/stories folders are used by the application. See the Help Topic for this page if you need assistance returning to the original directory structure. WARNDONOTCHANGEDATABASETABLESPREFIX=WARNING! Do not change unless you have a database built using tables with the prefix you are setting. WARNING=WARNING! WYSIWYG EDITOR=WYSIWYG Editor elracodelangela/administrator/language/en-GB/en-GB.ini0000755000176700017710000005003411061563413023352 0ustar essawireessawire# $Id: en-GB.ini 10571 2008-07-21 01:27:35Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM # Date format DATE_FORMAT_LC=%A, %d %B %Y DATE_FORMAT_LC1=%A, %d %B %Y DATE_FORMAT_LC2=%A, %d %B %Y %H:%M DATE_FORMAT_LC3=%d %B %Y DATE_FORMAT_LC4=%d.%m.%y DATE_FORMAT_JS1=y-m-d %Y-%M-%D=%Y-%M-%D %A, %B %E=%A, %B %e # Months JANUARY_SHORT=Jan JANUARY=January FEBRUARY_SHORT=Feb FEBRUARY=February MARCH_SHORT=Mar MARCH=March APRIL_SHORT=Apr APRIL=April MAY_SHORT=May MAY=May JUNE_SHORT=Jun JUNE=June JULY_SHORT=Jul JULY=July AUGUST_SHORT=Aug AUGUST=August SEPTEMBER_SHORT=Sep SEPTEMBER=September OCTOBER_SHORT=Oct OCTOBER=October NOVEMBER_SHORT=Nov NOVEMBER=November DECEMBER_SHORT=Dec DECEMBER=December #Days of the Week SAT=Sat SATURDAY=Saturday SUN=Sun SUNDAY=Sunday MON=Mon MONDAY=Monday TUE=Tue TUESDAY=Tuesday WED=Wed WEDNESDAY=Wednesday THU=Thu THURSDAY=Thursday FRI=Fri FRIDAY=Friday #Other Calendar Strings (TODAY)= (Today) (SHIFT-)CLICK OR DRAG TO CHANGE VALUE=(Shift-)Click or Drag to change the value. ABOUT THE CALENDAR=About the Calendar DISPLAY %S FIRST=Display %s first DRAG TO MOVE=Drag to move GO TODAY=Go to today NEXT MONTH (HOLD FOR MENU)=Click to move to the next month. Click and hold for a list of the months. NEXT YEAR (HOLD FOR MENU)=Click to move to the next year. Click and hold for a list of years. PREV. MONTH (HOLD FOR MENU)=Click to move to the previous month. Click and hold for a list of the months. PREV. YEAR (HOLD FOR MENU)=Click to move to the previous year. Click and hold for a list of years. SELECT DATE=Select a date. TIME=Time TIME:=Time: CLOSE=Close TODAY=Today WK=wk # Time Zones TIME ZONE=Time Zone (UTC -12:00) INTERNATIONAL DATE LINE WEST=(UTC -12:00) International Date Line West (UTC -11:00) MIDWAY ISLAND, SAMOA=(UTC -11:00) Midway Island, Samoa (UTC -10:00) HAWAII=(UTC -10:00) Hawaii (UTC -09:30) TAIOHAE, MARQUESAS ISLANDS=(UTC -09:30) Taiohae, Marquesas Islands (UTC -09:00) ALASKA=(UTC -09:00) Alaska (UTC -08:00) PACIFIC TIME (US & CANADA)=(UTC -08:00) Pacific Time (US & Canada) (UTC -07:00) MOUNTAIN TIME (US & CANADA)=(UTC -07:00) Mountain Time (US & Canada) (UTC -06:00) CENTRAL TIME (US & CANADA), MEXICO CITY=(UTC -06:00) Central Time (US & Canada), Mexico City (UTC -05:00) EASTERN TIME (US & CANADA), BOGOTA, LIMA=(UTC -05:00) Eastern Time (US & Canada), Bogota, Lima (UTC -04:30) VENEZUELA=(UTC -04:30) Venezuela (UTC -04:00) ATLANTIC TIME (CANADA), CARACAS, LA PAZ=(UTC -04:00) Atlantic Time (Canada), Caracas, La Paz (UTC -03:30) ST. JOHN'S, NEWFOUNDLAND, LABRADOR=(UTC -03:30) St. John's, Newfoundland and Labrador (UTC -03:00) BRAZIL, BUENOS AIRES, GEORGETOWN=(UTC -03:00) Brazil, Buenos Aires, Georgetown (UTC -02:00) MID-ATLANTIC=(UTC -02:00) Mid-Atlantic (UTC -01:00) AZORES, CAPE VERDE ISLANDS=(UTC -01:00) Azores, Cape Verde Islands (UTC 00:00) WESTERN EUROPE TIME, LONDON, LISBON, CASABLANCA=(UTC 00:00) Western Europe Time, London, Lisbon, Casablanca (UTC +01:00) AMSTERDAM, BERLIN, BRUSSELS, COPENHAGEN, MADRID, PARIS=(UTC +01:00) Amsterdam, Berlin, Brussels, Copenhagen, Madrid, Paris (UTC +02:00) ISTANBUL, JERUSALEM, KALININGRAD, SOUTH AFRICA=(UTC +02:00) Istanbul, Jerusalem, Kaliningrad, South Africa (UTC +03:00) BAGHDAD, RIYADH, MOSCOW, ST. PETERSBURG=(UTC +03:00) Baghdad, Riyadh, Moscow, St. Petersburg (UTC +03:30) TEHRAN=(UTC +03:30) Tehran (UTC +04:00) ABU DHABI, MUSCAT, BAKU, TBILISI=(UTC +04:00) Abu Dhabi, Muscat, Baku, Tbilisi (UTC +04:30) KABUL=(UTC +04:30) Kabul (UTC +05:00) EKATERINBURG, ISLAMABAD, KARACHI, TASHKENT=(UTC +05:00) Ekaterinburg, Islamabad, Karachi, Tashkent (UTC +05:30) BOMBAY, CALCUTTA, MADRAS, NEW DELHI=(UTC +05:30) Bombay, Calcutta, Madras, New Delhi (UTC +05:45) KATHMANDU=(UTC +05:45) Kathmandu (UTC +06:00) ALMATY, DHAKA, COLOMBO=(UTC +06:00) Almaty, Dhaka, Colombo (UTC +06:30) YAGOON=(UTC +06:30) Yagoon (UTC +07:00) BANGKOK, HANOI, JAKARTA=(UTC +07:00) Bangkok, Hanoi, Jakarta (UTC +08:00) BEIJING, PERTH, SINGAPORE, HONG KONG=(UTC +08:00) Beijing, Perth, Singapore, Hong Kong (UTC +08:00) WESTERN AUSTRALIA=(UTC +08:00) Western Australia (UTC +09:00) TOKYO, SEOUL, OSAKA, SAPPORO, YAKUTSK=(UTC +09:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk (UTC +09:30) ADELAIDE, DARWIN, YAKUTSK=(UTC +09:30) Adelaide, Darwin, Yakutsk (UTC +10:00) EASTERN AUSTRALIA, GUAM, VLADIVOSTOK=(UTC +10:00) Eastern Australia, Guam, Vladivostok (UTC +10:30) LORD HOWE ISLAND (AUSTRALIA)=(UTC +10:30) Lord Howe Island (Australia) (UTC +11:00) MAGADAN, SOLOMON ISLANDS, NEW CALEDONIA=(UTC +11:00) Magadan, Solomon Islands, New Caledonia (UTC +11:30) NORFOLK ISLAND=(UTC +11:30) Norfolk Island (UTC +12:00) AUCKLAND, WELLINGTON, FIJI, KAMCHATKA=(UTC +12:00) Auckland, Wellington, Fiji, Kamchatka (UTC +12:45) CHATHAM ISLAND=(UTC +12:45) Chatham Island (UTC +13:00) TONGA=(UTC +13:00) Tonga (UTC +14:00) KIRIBATI=(UTC +14:00) Kiribati # Mailer Codes PHPMAILER_PROVIDE_ADDRESS=You must provide at least one recipient e-mail address. PHPMAILER_MAILER_IS_NOT_SUPPORTED= Mailer is not supported. PHPMAILER_EXECUTE=Could not execute: PHPMAILER_INSTANTIATE=Could not instantiate mail function. PHPMAILER_AUTHENTICATE=SMTP Error! Could not authenticate. PHPMAILER_FROM_FAILED=The following from address failed: PHPMAILER_RECIPIENTS_FAILED=SMTP Error! The following recipients failed: PHPMAILER_DATA_NOT_ACCEPTED=SMTP Error! Data not accepted. PHPMAILER_CONNECT_HOST=SMTP Error! Could not connect to SMTP host. PHPMAILER_FILE_ACCESS=Could not access file: PHPMAILER_FILE_OPEN=File Error. Could not open file: PHPMAILER_ENCODING=Unknown encoding: A SHORT ALT ATTRIBUTE FOR IMAGE=A short Alt (alternative) attribute for an image ACCESS=Access Level ACCESS LEVEL=Access Level ADD=Add ADMINISTRATION=Administration ADMINISTRATION MESSAGES=Administration Messages ADMINISTRATOR=Administrator ADMINISTRATOR FILES=Administrator Files ADVANCED PARAMETERS=Advanced Parameters ALERTNOTAUTH=You are not authorised to view this resource. ALIAS=Alias ALIGN=Align ALL=all ALPHABETICAL INDEX=Alphabetical Index ALREADY EXISTS=There is already a Read more... link that has been inserted. Only one such link is permitted. Use {pagebreak} to split the page up further. ALT TEXT=Alt Text ANY=Any AN ERROR HAS OCCURRED=An error has occurred. ANOTHER TEMPLATE IS ALREADY USING DIRECTORY=There is already a Template using the named directory. Are you trying to load the same template again? APPLY=Apply ARCHIVE=Archive ARCHIVED=Archived ARCHIVED ARTICLE LIST LAYOUT DESC=Archived Article List Layout ARTICLES=Articles ARTICLE PREVIEW=Article Preview ASSIGN=Assign ATTEMPT TO DELETE BASE DIRECTORY=You can not delete a base directory. AUTHOR=Author AUTHOR ALIAS=Author Alias AUTHOR EMAIL=Author E-mail AUTHOR URL=Author URL BACK=Back BACKUP EXISTING FILES=Backup existing files BACKUP SUFFIX=Backup Suffix BANNER CATEGORIES=Banner Categories BANNER=Banner BANNERS=Banners BORDER=Border BOTTOM=Bottom BROWSE=Browse BROWSER=Browser BY=By CANCEL=Cancel CANNOT GET OR PARSE CLASS NAME.=Cannot get or parse class name. CATEGORIES=Categories CATEGORY=Category CATEGSUBMENU=%s Categories CENTER=Center CHANGE CREATOR=Change Creator CHANGES TO X SAVED=Changes to %s saved CHECKED OUT=Checked out CHECKIN MANAGER=Check in Manager CLICK ON ICON TO TOGGLE STATE.=Click on icon to toggle state. CLICK TO CHECK IN=Click to Check-in CLICK TO SORT THIS COLUMN=Click to sort by this column CLIENTS=Clients CLOSE=Close CLOSE ALL=Close All CONFIGURATION=Global Configuration COMPONENT=Component COMPONENT MANAGER=Component Manager Component Not Found=Component Not Found CONTACT=Contact CONTACT CATEGORIES=Contact Categories CONTACTS=Contacts CONTENT=Content CONTENT IMAGES=Content Images CONTINUE=Continue COPY=Copy COPYRIGHT=Copyright COULD NOT CREATE DIRECTORY=Could not create directory COULD NOT DELETE FOLDER=Could not delete folder COULD NOT MAKE CONFIGURATION.PHP UNWRITABLE=Could not make configuration.php unwritable. COULD NOT COPY SETUP FILE=Could not copy setup file CREATED DATE=Created Date CREATOR=Creator CURRENT=Current DATE=Date DEFAULT=Default DELETE=Delete DELETED=Deleted DELETING=Deleting DESCBEINGEDITTED=%s %s is currently being edited by another administrator DESCNEWITEMSFIRST=New items default to the first position. The ordering can be changed after this item is saved. DESCNEWITEMSLAST=New items default to the last position. The ordering can be changed after this item is saved. DESCRIPTION=Description DESCUSEVALIDLOGIN=Use a valid username and password to gain access to the Administrator Control Panel. DETAILS=Details DIRECTORY PERMISSIONS=Directory Permissions DISABLE=Disable DISABLED=Disabled DISPLAY NUM=Display # DO NOT USE=None Selected DONE=Done E_LOGIN_AUTHENTICATE=Username and password do not match E_NOLOGIN_ACCESS=You do not have access to the administrator section of this site. E_NOLOGIN_BLOCKED=Login denied! Your account has either been blocked or you have not activated it yet. EDIT=Edit EDIT CATEGORY=Edit Category EDIT CONTENT=Edit Content EDIT FILE=Edit File EDITOR=Editor EDIT PLUGIN=Edit Plugin EDIT SECTION=Edit Section EDIT USER=Edit User EDIT USER INFORMATION=Edit User Information EDIT XML=Edit XML EDIT XML FILE=Edit XML File EMAIL=E-mail ENABLE=Enable ENABLED=Enabled ENABLE PLUGIN=Enable Plugin END=End END PAGE=End Page ENGLISH=English ERROR=Error ERROR SAVING FILE=Error saving file ERRORELEMENTNOTFOUND=Error. Element not found. ERRORNOADMINS=You cannot login. There are no administrators set up. ERRORNOFILE=Error. File not specified. ERRORXMLNOTFOUND=Error. XML file not found. EXCLUDE IN FILE SEARCH=Exclude in file search EXISTING MENU LINKS=Existing Menu Links EXPIRED=Expired EXPIRES=Expires EXPORT=Export FAILED=Failed FAILED TO CREATE DIRECTORY=Failed to create directory. FAILED TO OPEN XML FILE=Failed to open XML file. FAX=Fax FEED IMAGE=Feed Image FEEDS=Feeds FILE=File FILE NOT FOUND=File not found FILE SAVED=File Saved FILE UPLOAD=File Upload FILES=Files FILTER=Filter FILTERS=Filters FINISH=Finish FINISH PUBLISHING=Finish Publishing FINISH: NO EXPIRY=Finish: No Expiry FINISHED=Finished FIRST=First FIRST PAGE=First Page FILE SETTINGS=File Settings FORCE USER LOGOUT=Force User Logout GALLERY IMAGES=Gallery Images GO=Go GO TO FULL COMPONENT LIST=Go to Full Component List GREEN=green GROUP=Group HELP=Help HIDE=Hide HITS=Hits ICONS=Icons ID=ID IGNORE=Ignore IMAGE=Image IMAGE ALREADY EXISTS=Image %s already exists. IMAGES=Images IN MENU=In Menu INSTALL=Install ITEM SAVED=Item saved. ITEMS COPIED=%s Items copied. ITEMS PUBLISHED=%s Items published. ITEMS UNPUBLISHED=%s Items unpublished. ITEMS REMOVED=%s Item(s) removed. UNINSTALL=Uninstall ISFREESOFTWARE=is Free Software released under the GNU/GPL License. ITEM=Item ITEM CHECKED IN=Item checked in. ITEM DETAILS=Item Details ITEM TITLE=Item Title JOOMLA!=Joomla! JOOMLA! ADMINISTRATION LOGIN=Joomla! Administration Login JOOMLA! LOGO=Joomla! Logo JOOMLA WARNING=Joomla! Warning LANGUAGE=Language Name LAST=Last LAST MODIFIED=Last Modified LATEST ITEMS=Latest Items LAYOUT=Layout LEFT=Left LEGACY PARAMETERS=Legacy Parameters LICENSE=License LINK TO MENU=Link to Menu LINKS=Links LIST FILES=List Files LIST LENGTH=List Length LIST OF COMPONENTS=List of Components LIST PACKAGES=List Packages LOCAL=Local LOGIN=Login LOGIN_BLOCKED=Your login has been blocked. Please contact the administrator. LOGIN_INCOMPLETE=Please complete the Username and Password fields. LOGIN_INCORRECT=An incorrect username or password has been entered. LOGIN_NOADMINS=You cannot log in. There are no administrators set up. LOGGED IN USER=Logged in User LOGGED=Logged LOGOUT=Logout MAIL=Mail MAIL_FUNCTION_DISABLED=The mail() function has been disabled and the mail cannot be sent. MANAGE BANNERS=Manage Banners MANAGE CLIENTS=Manage Clients MANAGE CONTACTS=Manage Contacts MANAGE NEWS FEEDS=Manage News Feeds MANAGE CATEGORIES=Manage Categories MANAGER=Manager MASS MAIL=Mass Mail MAX SIZE=Max Size MAXIMUM=Maximum MEDIA=Media MENU IMAGE=Menu Image MENU ITEM NAME=Menu Item Title MENU LINKS AVAILABLE WHEN SAVED=Menu Links are available when saved. MENU MANAGER=Menu Manager MENU ITEM MANAGER=Menu Item Manager MENU SELECTION=Menu Selection MENUS=Menus MESSAGE=Message META DATA=Metadata METHOD=Method MINUTES=Minutes MODULE=Module MODULE PREVIEW=Module Preview MOVE=Move MOVE DOWN=Move Down MOVE UP=Move Up MUSTENABLELEGACY=Your Extension appears to be written for an older version of Joomla!. You must enable the System - Legacy Plugin in the Plugin Manager if you wish to complete this task. NAME=Name NAVIGATOR=Navigator NEXT=Next NEW=New NEW ORDERING SAVED=New order saved NEW WINDOW WITH BROWSER NAVIGATION=New Window with Browser Navigation NEW WINDOW WITHOUT BROWSER NAVIGATION=New Window without Browser Navigation NEWSFEED=News Feed NEWS FEEDS=News Feeds NO=No NO ITEMS SELECTED=No Items selected NO RECORDS FOUND=No records found NO USER=No User NONE=None NOT A VALID COMPONENT=Not a valid component NOT FOUND=Not Found NOT FOUND IN FILE=Not Found in file NOT MODIFIED=Not Modified NOT PUBLISHED=Not Published NUM=# NUM ACTIVE=# Active NUM CATEGORIES=# Categories NUM ITEMS=# Items NUM PUBLISHED=# Published NUM TRASH=# Trash NUM UNPUBLISHED=# Unpublished NUM LINKS=# Links OF=of OFF=Off ON=On OPEN ALL=Open All OPERATION FAILED=Operation Failed OPTION=Option OPTIONS=Options OR=or ORDER=Order ORDER BY=Order by ORDER BY CATEGORY NAME=Order by Category Title ORDER BY ORDER=Order by Order ORDER BY SECTION TITLE=Order by Section Title ORDER BY TITLE=Order by Title OTHER PARAMETERS=Other Parameters OVERRIDE WRITE PROTECTION WHILE SAVING=Override write protection while saving ORDERING=Order OVERWRITE EXISTING FILES=Overwrite existing files PACKAGE=Package PACKAGE FILE=Package File PACKAGE MADE=Package Made PAGE=Page PAGE CLASS SUFFIX=Page Class Suffix PAGE TITLE=Page Title PAGE WAS GENERATED IN=Page was generated in PARAMETER CONTROL=Parameter Control PARAMETERS=Parameters PARAMENABLED=Enable this Plugin. PARAMMENUIMAGE=A small image to be placed to the left or right of your Menu Item. Images must be in images/stories/ PARAMPAGECLASSSFX=A suffix to be applied to the CSS classes of the page. This allows individual page styling. PARAMPAGETITLE=Text to display as the Page title. If left blank, a default title will be used instead. PARAMPAGEHEADER=Text to display at the top of the page. If left blank, the Menu title will be used instead. PARENT ITEM=Parent Item PARENT WINDOW WITH BROWSER NAVIGATION=Parent Window with Browser Navigation PASSWORD=Password PENDING=Pending PERMISSIONS=Permissions PLEASE ENTER A NAME FOR THIS MENU ITEM=Please enter a title for this Menu Item PLEASE ENTER A PASSWORD=Please enter a password #If the variable does not work in your language use following line # PLEASE MAKE A SELECTION FROM THE LIST TO=Please make a selection from the list #instead of PLEASE MAKE A SELECTION FROM THE LIST TO=Please make a selection from the list to %s PLEASE MAKE CACHE DIRECTORY WRITABLE.=Please make the Cache directory writable. PLEASE SELECT A CATEGORY.=Please select a Category. PLEASE SELECT A MENU=Please select a Menu PLEASE SELECT A NEWS STORY TO=Please select a News Story to PLEASE SELECT AN IMAGE TO UPLOAD=Please select an image to upload PLEASE SELECT AN ITEM FROM THE LIST TO=Please select an Item from the list to PLEASE SELECT AN ITEM TO=Please select an Item to PLEASE SELECT AN ITEM TO MAKE=Please select an Item to make POLL PREVIEW=Poll Preview POLLS=Polls POSITION=Position POST STORE FAILED=Post store failed! PREFERENCES=Parameters PREV=Prev PREVIEW=Preview PREVIOUS=Previous PREVIOUS PAGE=Previous Page PRINT ICON=Print Icon PROMPT_CLOSE=Close Window PROVIDES SYSTEM LOGGING=Provides System Logging PROVIDES REMEMBER ME FUNCTIONALITY=Provides Remember Me! functionality PUBLIC=Public PUBLIC BACKEND= Public Back-end PUBLIC FRONTEND= Public Front-end PUBLISH=Publish PUBLISH INFORMATION=Publish Information PUBLISH ITEM=Publish Item PUBLISHED=Published PUBLISHED AND IS=Published and is PUBLISHED, BUT HAS=Published, but has PUBLISHED, BUT IS=Published, but is PUBLISHER=Publisher PUBLISHING=Publishing PUBLISHING INFO=Publishing Info QUICK TIP=Quick Tip RIGHT=Right REFRESH FILES=Refresh Files REGISTER=Register REGISTERED=Registered RELATED LINKS=Related Links REMEMBER TO RENAME HTACCESS.TXT TO .HTACCESS=Remember to rename the htaccess.txt file to .htaccess REMIND=Remind REORDER=Reorder RESET=Reset RESOURCE NOT FOUND= Joomla! was unable to locate the stated resource. RESTORE=Restore RESULTS=Results RESULTS OF=Results %s - %s of %s RETURN TO SITE HOME PAGE=Return to site Home Page SAVE=Save SAVE ORDER=Save Order SEARCH=Search SECONDS=Seconds SECTION=Section SECURITY=Security SELECT CLIENT=Select a Client SELECT A CATEGORY=Select a Category SELECT A MENU=Select a Menu SELECT AUTHOR=Select Author SELECT AN ITEM TO=Select an Item to SELECT AN ITEM TO DELETE=Select an Item to delete SELECT AN ITEM TO EDIT=Select an Item to edit SELECT AN ITEM TO MOVE=Select an Item to move SELECT AN ITEM TO PUBLISH=Select an Item to publish SELECT AN ITEM TO UNPUBLISH=Select an Item to unpublish SELECT CATEGORY=Select Category SELECT FROM LIST=Select from List SELECT IMAGE=Select Image SELECT ITEM=Select Item SELECT SECTION=Select Section SELECT STATE=Select State SERVER OFFSET=Server Offset SESSION_EXPIRED=Your session has expired. Please log in again. SETTINGS=Settings SHOW=Show SHOW PAGE TITLE=Show the Page Title SHOW/HIDE THE PAGES TITLE=Show/Hide the Page Title SITE=Site SITE FILES=Site Files SOURCE=Source SPECIAL=Special SQL ERROR=SQL Error. START=Start START PUBLISHING=Start Publishing START: ALWAYS=Start: Always STATE=State STORE FAILED=store failed SUBJECT=Subject SUCCESS=Success SUCCESSFUL=Successful SUCCESSFULLY CREATED=Successfully created SUCCESSFULLY SAVED=Successfully saved SUCCESSFULLY SAVED CHANGES=Successfully saved changes SUPER ADMINISTRATOR=Super Administrator SUPPORT=Support SYNDICATE=Syndicate TASK=Task TELEPHONE=Telephone TEMPLATE=Template TEMPLATE NOT FOUND=Template %s not found TEMPLATES=Templates TEXT=Text THE FILE MUST BE=The file must be THE ITEM=The article THE MODULE=The Module THIS WILL COPY THE CATEGORIES LISTED=This will copy the Categories listed TIME ZONE=Time Zone TIME ZONE FOR THIS USER=Time Zone for this User TIPNAMEFIELD=Name of your information TIPTITLEFIELD=Title of your information TITLE=Title TITLE ALIAS=Title Alias TO=to TOOLTIP=Tooltip TOOLS=Tools TOP=Top TRASH=Trash TRASHED CONTENT=Trashed Articles TRASHED MENU ITEMS=Trashed Menu Items TRAWL=Trawl TYPE=Type UNABLE TO CONNECT TO DATABASE:=Unable to connect to the database: UNABLE TO LOAD DATABASE DRIVER:=Unable to load Database Driver: UNABLE TO REMOVE LANGUAGE DIRECTORY=Unable to remove the specified Language directory. UNABLE TO REMOVE THE COMPONENT ADMIN DIRECTORY=Unable to remove the component admin directory UNKNOWN METHOD $MODEL::$METHOD() WAS NOT FOUND=Unknown Method $model::$method() was not found UNPUBLISH=Unpublish UNPUBLISH ITEM=Unpublish Item UNPUBLISHED=Unpublished UNWRITABLE=Unwritable UP=up UPLOAD=Upload UPLOAD A FILE=Upload a file UPLOAD OF=Upload of UPLOAD OF IMAGE FAILED=Upload of %s failed. UPLOAD OF IMAGE SUCCESSFUL=Upload of %s to %s was successful. URL=URL USE DEFAULT=Use Default USE GLOBAL=Use Global USER=User USERNAME=Username VALIDALPHANOSPACES=File name must only contain alphanumeric characters and no spaces. VALIDDELETEITEMS=Are you sure you want to delete the selected Items? VALIDUSERPASS=Incorrect username and/or password. Please try again. VALIDUSERPASSACCESS=Incorrect username, password or access level. Please try again. VERSION=Version VIEW=View VIEW ALL=View All VISIBLE=Visible VOTE=Vote WARNFS_ERR01=Warning: Failed to change file permissions! WARNFS_ERR02=Warning: Failed to move file! WARNFS_ERR03=Upload failed. Directory not writable. WARNFS_ERR04=Upload failed. Directory does not exist. WARNJAVASCRIPT=Warning! JavaScript must be enabled for proper operation of the Administrator back-end. WEB=Web WEBLINK=Web Link WEB LINKS=Web Links WEBLINK ITEMS=Web Link Items WEBLINK CATEGORIES=Web Link Categories WELCOME TO JOOMLA!=Welcome to Joomla! WIDTH=Width WRITABLE=Writable YES=Yes YOU MUST SELECT A CATEGORY=You must select a Category YOU MUST SELECT A SECTION=You must select a Section elracodelangela/administrator/language/en-GB/en-GB.plg_xmlrpc_blogger.ini0000755000176700017710000000300211061563413027212 0ustar essawireessawire# $Id: en-GB.plg_xmlrpc_blogger.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM BLOGGER XML-RPC API=Blogger XML-RPC API EDIT POSTS=Edit posts NEW POSTS=New posts PARAMCATEGORY=Set the Category to place new posts into PARAMSECTION=Set the Section to retrieve posts from LOGIN FAILED=Login Failed POST CHECK FAILED=Post Check Failed POST STORE FAILED=Post Store Failed POST DELETE FAILED=Post delete failed SORRY, NO SUCH POST=Sorry, no such post. SORRY, POST IS ALREADY BEING EDITED=Sorry, the post is already being edited. NO POSTS AVAILABLE, OR AN ERROR HAS OCCURRED=No posts available or an error has occurred. METHOD NOT IMPLEMENTED=Method not implemented RETURNS A LIST OF WEBLOGS TO WHICH AN AUTHOR HAS POSTING PRIVILEGES.=Returns a list of weblogs to which an author has posting privileges. RETURNS INFORMATION ABOUT AN AUTHOR IN THE SYSTEM.=Returns information about an author in the system. RETURNS INFORMATION ABOUT A SPECIFIC POST.=Returns information about a specific post. RETURNS A LIST OF THE MOST RECENT POSTS IN THE SYSTEM.=Returns a list of the most recent posts in the system. CREATES A NEW POST, AND OPTIONALLY PUBLISHES IT.=Creates a new post and optionally publishes it. DELETES A POST.=Deletes a post. UPDATES THE INFORMATION ABOUT AN EXISTING POST.=Updates the information about an existing post. elracodelangela/administrator/language/en-GB/en-GB.plg_content_pagenavigation.ini0000755000176700017710000000112211061563414030734 0ustar essawireessawire# $Id: en-GB.plg_content_pagenavigation.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ABOVE=Above DESCPAGENAVIGATION=Enables you to add the Next & Previous functionality to an Article. BELOW=Below POSITION=Position POSITION OF PAGE NAVIGATION IN RELATION TO TEXT=The position of the Page Navigation function on the viewed page in relation to the text. elracodelangela/administrator/language/en-GB/en-GB.com_checkin.ini0000755000176700017710000000114111061563413025606 0ustar essawireessawire# $Id: en-GB.com_checkin.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM CHECKED-IN=Checked in CHECKED OUT ITEMS HAVE NOW BEEN ALL CHECKED IN=All checked out Items have now been checked in. CHECKING TABLE=Checking table DATABASE TABLE=Database table DESCITEMCHECKEDIN=All checked out Items have now been checked in. GLOBAL CHECK-IN=Global Check-in ITEMS=Items NUM OF ITEMS=# of Items TICK=Tickelracodelangela/administrator/language/en-GB/en-GB.plg_authentication_ldap.ini0000755000176700017710000000607411061563413030237 0ustar essawireessawire# $Id: en-GB.plg_authentication_ldap.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM AUTHORIZATION METHOD=Authorisation Method ANONYMOUS COMPARE=Anonymous Compare AUTHENTICATE THEN BIND=Authenticate then Bind BASE DN=Base DN BIND AS USER=Bind as User BIND AND SEARCH=Bind and Search BIND DIRECTLY AS USER=Bind Directly as User CONNECT PASSWORD=Connect password CONNECT USERNAME=Connect username DEFAULT PORT IS 389=Default port is 389 FOLLOW REFERRALS=Follow referrals FOR EXAMPLE, OPENLDAP.MYCOMPANY.ORG=For example: openldap.mycompany.org HANDLES USER AUTHENTICATION AGAINST AN LDAP SERVER=Handles User Authentication against an LDAP server HOST=Host LDAP AUTHENTICATION=LDAP Authentication LDAP V3=LDAP V3 MAP FULLNAME=Map: Full Name MAP EMAIL=Map: E-mail MAP USER ID=Map: User ID MAP PASSWORD=Map: Password NEGOTIATE TLS=Negotiate TLS NO=No PARAMLDAPHOST=For example: openldap.mycompany.org PARAMLDAPPORT=Default port is 389 PARAMBASEDN=The base DN of your LDAP server PARAMAUTHMETHOD=The authorisation method to validate the credentials PARAMCONNECTSTRING=The Connect Username and Connect Password define connection parameters for the DN lookup phase. Two options are available:- Anonymous DN lookup. Leave both fields blank.- Administrative connection: Connect Username is the username of an administrative account, for example Administrator. Connect password is the actual password of your administrative account. PARAMCONNECTPASSWORD=The Connect Password is the password of an administrative account. This is used in Authenticate then Bind and Authenticated Compare authorisation methods PARAMLDAPV3=Default is LDAP2, but latest versions of OpenLdap require clients to use LDAPV3 PARAMNEGOCIATETLS=Negotiate TLS encryption with the LDAP server. This requires all traffic to and from my LDAP server to be encrypted. PARAMFOLLOW=This option sets the value of the LDAP_OPT_REFERRALS flag. You will need to set it to No for Windows 2003 servers. PARAMSEARCHSTRING=A query string used for search for a given User. The [search] keyword is dynamically replaced by the User-provided login. An example string is: uid=[search]. Several strings can be used separated by semi-colons. Only used when searching. PARAMUSERSDN=The [username] keyword is dynamically replaced by the User-provided login. An example string is: uid=[username], dc=my-domain, dc=com. Several strings can be used, separated by semi-colons. Only used for direct binds. PARAMMAPFN=LDAP Attribute which contains the User's full name PARAMMAPEMAIL=LDAP Attribute which contains the User's e-mail address PARAMMAPUID=LDAP Attribute which contains the User's Login ID. For Active Directory this is sAMAccountName PARAMMAPPASSWORD=LDAP Attribute which contains the User's password to compare against. PORT=Port SEARCH STRING=Search String THE BASE DN OF YOUR LDAP SERVER=The base DN of your LDAP server, e.g o=mydomain.com USERS DN=User's DN YES=Yes elracodelangela/administrator/language/en-GB/en-GB.mod_title.ini0000755000176700017710000000061711061563414025334 0ustar essawireessawire# $Id: en-GB.mod_title.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM MOD_TITLE=mod_title THIS MODULE SHOWS THE TOOLBAR COMPONENT TITLE=This Module shows the Toolbar Component Title elracodelangela/administrator/language/en-GB/en-GB.com_installer.ini0000755000176700017710000002231711061563413026207 0ustar essawireessawire# $Id: en-GB.com_installer.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ADMIN=Admin ADMIN MODULES=Admin Modules ADMIN LANGUAGES=Admin Languages ADMIN TEMPLATES=Admin Templates ALL=All ALREADY EXISTS!=Already Exists! ANOTHER COMPONENT IS ALREADY USING DIRECTORY=Another Component is already using directory ANOTHER TEMPLATE IS ALREADY USING DIRECTORY=Another template is already using directory ANOTHER MODULE IS ALREADY USING DIRECTORY=Another module is already using directory AUTHOR=Author AUTHOR INFORMATION=Author Information BACK TO LANGUAGE MANAGER=Back to Language Manager BACK TO TEMPLATES=Back to Templates CANNOT FIND OR READ FILE=It was not possible to find or read the selected file CANNOT FIND SOURCE FILE=It has not been possible to locate the required source file CLIENT=Client COMPATIBILITY=Compatibility COMPATIBLE EXTENSION=This extension functions natively with Joomla! 1.5. COMPONENT MENU LINK=Component Menu Link COMPONENT=Component COMPONENTS=Components CONTINUE ...=Continue... COPY FAILED=It was not possible to copy the selected file. COULD NOT COPY PHP INSTALL FILE.=Could not copy PHP install file. COULD NOT COPY PHP UNINSTALL FILE.=Could not copy PHP uninstall file. CURRENTLY INSTALLED=Component DELETING XML FILE=Deleting XML file DELETE FAILED=It was not possible to delete the selected file. DESCFTP=For installing or uninstalling Extensions, Joomla! will most likely need your FTP account details. Please enter them in the form fields below. DESCFTPTITLE=FTP Login Details DESCLANGUAGES=Only those Languages that may be uninstalled are accessible. The default Language may not be removed. DESCMODULES=Only those Modules that may be uninstalled are accessible. Some Core Modules may not be removed. DESCPLUGINS=Only those Plugins that can be uninstalled are accessible. Some Core Plugins cannot be removed. DESCTEMPLATES=Only those Templates that may be uninstalled are accessible. The default Template may not be removed. DIRECTORY.=Directory. DIRECTORY DOES NOT EXIST=Directory does not exist. DIRECTORY DOES NOT EXIST, CANNOT REMOVE FILES=Directory does not exist and cannot remove files. DISABLE=Disable ENABLE=Enable ERROR=Error ERRORNOTFINDJOOMLAXMLSETUPFILE=Error! Could not find a Joomla! XML setup file in the package. ERRORNOTFINDXMLSETUPFILE=Error! Could not find an XML setup file in the package. ERRORREMOVEMANUALLY=If this Extension has created tables or installed additional files, they must be removed manually. ERRORUNKOWNEXTENSION=The installer could not remove the extension as requested. Manual removal is required. EXTENSION MANAGER=Extension Manager EXTRACT ERROR=Extraction Error! FAILED TO COPY FILE TO=Failed to copy file: %s to %s FAILED TO MOVE UPLOADED FILE TO=Failed to move uploaded file to /media directory. FILE DOES NOT EXIST=File '%s' does not exist. FOLDER FIELD EMPTY, CANNOT REMOVE FILES=Folder field empty and cannot remove files INSTALL=Install INSTALLEXT=Install %s %s INSTALL AN EXTENSION=Install an Extension INSTALL DETECTION ERROR=Install %s - (Detection Error!) INSTALL DIRECTORY=Install Directory INSTALL FROM DIRECTORY=Install from Directory INSTALL FROM URL=Install from URL INSTALL NEW ELEMENT=Install new %s - %s INSTALL NEW EXTENSION=Install new Extension INSTALL NEW LANGUAGE - SITE=Install new language (site) INSTALL NEW TEMPLATE=Install new Template INSTALL URL=Install URL INSTALLATION FILE NOT FOUND=Installation file not found INSTALLED MODULES=Installed Modules INSTALLED PLUGINS=Installed Plugins INSTALLER - ERROR=Installer Error! INSTALLER LANG NOT INSTALLED=The language file '%s' could not be installed because the %s language package for '%s' has not been installed or does not exist. INSTALLER NOT AVAILABLE FOR ELEMENT=Installer not available for element INSTALLER NOT FOUND FOR ELEMENT=Installer not found for element INVALID URL=Invalid URL IS NOT A VALID JOOMLA! INSTALLATION FILE=is not a valid Joomla! installation file JCLIENTHELPER::SETCREDENTIALSFROMREQUEST FAILED=Unable to connect to the server with the given credentials. LANGUAGE ID EMPTY, CANNOT REMOVE FILES=Language ID empty and cannot remove files LANGUAGE=Language LANGUAGES=Languages METHOD "INSTALL" CANNOT BE CALLED BY CLASS=Method install cannot be called by class METHOD "UNINSTALL" CANNOT BE CALLED BY CLASS=Method uninstall cannot be called by class MODULE FILE=Module MODULE=Module MODULES=Modules NO CUSTOM MODULES INSTALLED=No custom Modules installed NO LANGUAGES INSTALLED=No Languages installed NO LANGUAGE TAG?=The package did not specify a language tag. Are you trying to install an old language package? NO INSTALLED TEMPLATES=No Templates installed NO INSTALL TYPE FOUND=No Install Type Found NO FILE IS MARKED AS PLUGIN FILE=No file is marked as Plugin file NO FILE IS MARKED AS MODULE FILE=No file is marked as Module file NO FILE SELECTED=No file selected NO FILENAME SPECIFIED=No filename specified NOT COMPATIBLE EXTENSION=This extension does not function natively with Joomla! 1.5. It requires Legacy Mode to be ON. Please contact the extension's author for additional information. PACKAGE MANIFEST FILE INVALID OR NOT FOUND=The package manifest file is invalid or has not been found. PATH DOES NOT HAVE A VALID PACKAGE=Path does not have a valid package. PATH IS NOT A FOLDER=Path does not point to a valid folder or the folder has been deleted. PLEASE ENTER A PACKAGE DIRECTORY=Please enter a package directory PLEASE ENTER A URL=Please enter a URL PLEASE SELECT A DIRECTORY=Please select a directory PLUGIN=Plugin PLUGINS=Plugins RENAMING FAILED=It was not possible to rename the selected file. SESSION PATH IS WRITABLE=Session path writable SITE MODULES=Site Modules SITE LANGUAGES=Site Languages SITE TEMPLATES=Site Templates SQLERRORORFILE=SQL error or missing or unreadable SQL file. SUCCESS=Success TEMPLATE=Template TEMPLATE ID IS EMPTY, CANNOT REMOVE FILES=Template ID is empty, cannot remove files THERE IS ALREADY A FILE CALLED=There is already a file called UNABLE TO DETECT THE TYPE OF INSTALL=Unable to detect the type of install %s UNABLE TO FIND INSTALL PACKAGE=Unable to find install package UNABLE TO FIND VALID XML INSTALL=Unable to find valid XML install %s UNABLE TO OPEN=It was not possible to open the selected file UNINSTALL=Uninstall UNINSTALLEXT=Uninstall %s %s UNINSTALL LANGUAGE=If you uninstall this language, all your extensions' language files for this language will be permanently deleted and cannot be used anymore! UNINSTALLLANGPUBLISHEDALREADY=Cannot remove the default language UNKNOWN CLIENT TYPE=Unknown Client Type UNKNOWNARCHIVETYPE=Unknown Archive Type UNRECOVERABLE ERROR=Unrecoverable Error! UPLOAD ERROR=Upload %s - (Upload Error!) UPLOAD FAILED=Upload %s - (Upload Failed!) UPLOAD FAILED AS=Upload failed as UPLOAD FILE=Upload File UPLOAD PACKAGE FILE=Upload Package File UPLOAD NEW=Upload new %s - (%s) UPLOAD NEW MODULE - ERROR=Upload new Module - Error! UPLOADFAILEDNOTEXIST=Upload failed as /media directory does not exist. UPLOADFAILEDNOTWRITABLE=Upload failed as /media directory is not writable. UPLOADSUCCESSOR=Upload %s - (%s) WARNCOOKIESNOTENABLED=It appears that your browser is not configured to allow cookies. This is one of the requirements for the proper functioning of Joomla! WARNCORECOMPONENT=%s is a core Component and cannot be uninstalled. WARNCORECOMPONENT2=You need to disable it if you do not want to use it. WARNCOREELEMENT=%s is a core element and cannot be uninstalled. WARNCOREMODULE=%s is a core Module and cannot be uninstalled. WARNFS_ERR01=Warning! Failed to change file permissions. WARNFS_ERR02=Warning! Failed to move file. WARNFS_ERR03=Upload failed. The target directory is not writable. WARNFS_ERR04=Upload failed. The target directory does not exist. WARNINSTALLFILE=The installer cannot continue until file uploads are enabled for the server. WARNINSTALLZLIB=The installer cannot continue until Zlib is installed. WARNINSTALLUPLOADERROR=There was an error uploading this file to the server. WARNNONONCORE=There are no non-core, custom Plugins installed. WARNPERMISSIONS=Failed to change the permissions of the uploaded file. WARNSAME=There is already a folder called '%s'. Please initially check whether:
    • the Extension is already installed
    • the file names in the XML file are spelled correctly
    • there are no XML files listed inside the extension.xml file
    • all of the files (not including XML files) are correctly listed in the extension.xml file and there are no duplicate entries
    • there is an empty folder listed from a previous installation attempt
    XML SETUP FILE IS NOT FOR A=The XML setup file is not for a SERVER_CONNECT_FAILED=Remote Server connection failed THERE ARE NO CUSTOM COMPONENTS INSTALLED=There are no custom components installed. THERE ARE NO CUSTOM TEMPLATES INSTALLED=There are no custom templates installed. THERE ARE NO CUSTOM LANGUAGES INSTALLED=There are no custom languages installed. THERE ARE NO CUSTOM MODULES INSTALLED=There are no custom modules installed. THERE ARE NO CUSTOM PLUGINS INSTALLED=There are no custom plugins installed. elracodelangela/administrator/language/en-GB/en-GB.plg_editors_none.ini0000755000176700017710000000056111061563414026704 0ustar essawireessawire# $Id: en-GB.plg_editors_none.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM THIS LOADS A BASIC TEXT ENTRY FIELD=This loads a basic text entry field. elracodelangela/administrator/language/en-GB/en-GB.tpl_siteground-j15-65.ini0000644000176700017710000000071411072762534027244 0ustar essawireessawire# license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL # Note : All ini files need to be saved as UTF-8 siteground-j15-65=siteground-j15-65 TEMPLATE_DESCRIPTION=This Joomla Template is designed by SiteGround.com and can be used free of charge. The template is suitable for personal and business Joomla sites. It can be used with many popular modules and components for Joomla. At www.siteground.com you can find more great looking free Joomla templates.elracodelangela/administrator/language/en-GB/en-GB.com_contact.ini0000755000176700017710000001611311061563414025643 0ustar essawireessawire# $Id: en-GB.com_contact.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM A CONTACTS CATEGORY=A Contact's Category ACCESS=Access Level ADDRESS ICON=Address Icon ALIGNMENT OF THE IMAGE=Alignment of the image BANNED EMAIL LABEL=Banned E-mail BANNED EMAIL DESC=E-mails containing any of the listed text will be banned. Separate different words with semi-colons (e.g. ban;text;etc.). BANNED SUBJECT LABEL=Banned Subject BANNED SUBJECT DESC=Subjects containing any of the listed text will be banned. Separate different words with semi-colons (e.g. ban;text;etc.). BANNED TEXT LABEL=Banned Text BANNED TEXT DESC=Text containing any of the listed text will be banned. Separate different words with semi-colons (e.g. ban;text;etc.). CATEGORY DESCRIPTION=Category Description CATEGORY LIST - CATEGORY=Category List - Category CATEGORY LIST - SECTION=Category List - Section CHANGED TO CONTACT SAVED=Changes to Contact saved CHOOSE A CONTACT LAYOUT.=Choose a Contact Layout. CHOOSE A CONTACT CATEGORY LAYOUT.=Choose a Contact Category Layout. CONTACT CATEGORY LAYOUT=Contact Category Layout CONTACTS CATEGORY LAYOUT=Contact Category Layout CONTACT CATEGORY LAYOUT DESC=The Contact Category Layout displays all the published Contacts in a given Category. CONTACT DETAILS=Contact Details CONTACT ITEMS=Contact Items CONTACT MANAGER=Contact Manager CONTACT PARAMETERS=Contact Parameters CONTACT'S POSITION=Contact's Position CONTACT SAVED=Contact saved COUNTRY=Country CUSTOM REPLY=Custom Reply CUSTOM REPLY DESC=Turns off the automated reply allowing for Plugins to handle integration with other systems. DESCNEWITEMSLAST=New Contacts default to the last position. Ordering can be changed after this Contact is saved. DESCPARAMWHENCLICKCONTAC=* These Parameters only control what you see when you click to view a Contact Item. * DESCRIPTION TEXT=Description Text DROP DOWN=Dropdown E-MAIL=E-mail E-MAIL PARAMETERS=E-mail Parameters EDIT CONTACT=Edit Contact EMAIL=E-mail EMAIL COLUMN=E-mail Column EMAIL COPY=E-mail Copy EMAIL DESCRIPTION=E-mail Description EMAIL FORM=E-mail Form EMAIL ICON=E-mail Icon ENABLE VCARD=Enable vCard ENABLE VCARD SUPPORT FOR CONTACTS=Enable vCard support for Contacts FAX COLUMN=Fax Column FAX ICON=Fax Icon SHOW CATEGORY IN BREADCRUMBS=Show the Category in Breadcrumbs ICON FOR THE ADDRESS INFO=Icon for the Address information ICON FOR THE EMAIL INFO=Icon for the E-mail information ICON FOR THE FAX INFO=Icon for the Fax information ICON FOR THE MISC INFO=Icon for the Miscellaneous information ICON FOR THE MOBILE INFO=Icon for the Mobile information ICON FOR THE TELEPHONE INFO=Icon for the Telephone information ICONS/TEXT=Icons/Text IMAGE=Contact Image IMAGE ALIGN=Image Align IMAGE INFO=Image Information INFORMATION=Information LIMIT BOX=Limit Box LINKED TO USER=Linked to User MISC ICON=Miscellaneous Icon MISC INFO=Miscellaneous Information MISCELLANEOUS INFO=Miscellaneous Information MOBILE=Mobile Phone Number MOBILE ICON=Mobile Icon NEW CONTACT=New Contact NO=No NUM CATEGORY ITEMS=# Category Items PARAMCONTACTICONS=Use icons, text or nothing next to the Contact information displayed PARAMDROPDOWN=Show/Hide the dropdown select list in Contact view PARAMEMAIL=Show/Hide the e-mail information. If you set to Show, the address will be protected from spambots by JavaScript Cloaking. PARAMEMAILCOPY=Show/Hide the checkbox to e-mail a copy to the sender's address PARAMCATLIST=Show/Hide the list of Categories in the list view page PARAMCATLISTCAT=Show/Hide the list of Categories in the table view page PARAMCATDESC=Show/Hide the Category Description PARAMNUMCATITEM=Show/Hide the number of Items in each Category PARAMEMAILDESCTEXT=The description text for the e-mail form. If left blank, the _EMAIL_DESCRIPTION language definition will be used instead. PARAMPRINT=Show/Hide the Item Print button (only affects this page). PARAMDESCTEXT=Description for this page. If left blank, it will load _WEBLINKS_DESC from your language file. PARAMIMAGE=Image for this page must be located in the /images/stories folder. Default will load web_links.jpg. No Image will mean an image is not loaded PARAMSHOWLIMIT=Show/Hide the Limit Box PARAMSPECCAT=Shows Contacts from the selected Category only POSITION COLUMN=Position Column POST/ZIP CODE=Postal/Zip Code POSTAL CODE/ZIP=Postal Code/ZIP SAVE & NEW=Save & New SAVE TO COPY=Save To Copy SELECT AN ITEM TO=Select a Contact to SELECT CATEGORY=Select Category SELECT CONTACT=Select Contact SESSION CHECK LABEL=Session Check SESSION CHECK DESC=Check for existance of session cookie. This means that Users without cookies enabled will not be able to send emails. SHOW CONTACT'S POSITION=Show Contact's Position SHOW EMAIL ADDRESS=Show E-mail Address SHOW FAX NUMBER=Show Fax Number SHOW MOBILE NUMBER=Show Mobile Number SHOW PAGE TITLE=Show Page Title SHOW PHONE NUMBER=Show Telephone Number SHOW TABLE HEADINGS=Show Table Headings SHOW/HIDE THE CATEGORY IN THE BREADCRUMBS=Show/Hide the category in the breadcrumbs (pathway) SHOW/HIDE THE COUNTRY INFO=Show/Hide the Country information SHOW/HIDE THE CONTACT POSITION=Show/Hide the Contact Position SHOW/HIDE THE DESCRIPTION TEXT BELOW=Show/Hide the Description Text below SHOW/HIDE THE EMAIL ADDRESS=Show/Hide the e-mail address SHOW/HIDE THE EMAIL TO FORM=Show/Hide the e-mail to form SHOW/HIDE THE FAX INFO=Show/Hide the Fax information SHOW/HIDE THE FAX NUMBER=Show/Hide the Fax Number SHOW/HIDE THE IMAGE=Show/Hide the image SHOW/HIDE THE MISCELLANEOUS INFO=Show/Hide the misc. information SHOW/HIDE THE MOBILE INFO=Show/Hide the Mobile Phone information SHOW/HIDE THE MOBILE NUMBER=Show/Hide the Mobile Phone Number SHOW/HIDE THE NAME INFO=Show/Hide the Name information SHOW/HIDE THE POSITION COLUMN=Show/Hide the Position column SHOW/HIDE THE POSITION INFO=Show/Hide information about the Contact's position SHOW/HIDE THE POST CODE INFO=Show/Hide the Postcode information SHOW/HIDE THE STATE INFO=Show/Hide the State/County information SHOW/HIDE THE STREET ADDRESS INFO=Show/Hide the Street address information SHOW/HIDE THE SUBURB INFO=Show/Hide the City/Town/Suburb information SHOW/HIDE THE TABLE HEADINGS=Show/Hide the Table Headings SHOW/HIDE THE TELEPHONE INFO=Show/Hide the Telephone information SHOW/HIDE THE TELEPHONE NUMBER=Show/Hide the Telephone Number SHOW/HIDE THE WEBPAGE=Show/Hide the Contact's Web URL SHOW/HIDE VCARD=Show/Hide vCard SITE DEFAULT=Site Default SPECIAL DEFINED CATEGORY=Special defined Category STANDARD CONTACT LAYOUT=Standard Contact Layout STANDARD CONTACT LAYOUT DESC=The standard Contact layout displays a single Contact's details. STATE/COUNTY=State/County STREET ADDRESS=Street Address TABLE HEADINGS=Table Headings THE CONTACT TO LINK TO=The Contact to link to TELEPHONE COLUMN=Telephone Column TELEPHONE ICON=Telephone Icon THIS COMPONENT SHOWS A LISTING OF CONTACT INFORMATION=This Component shows a listing of Contact Information TOWN/SUBURB=Town/Suburb VCARD=vCard WEBPAGE=Web URL YES=Yes YOU MUST PROVIDE A NAME.=You must provide a name for this Contact. elracodelangela/administrator/language/en-GB/en-GB.plg_search_content.ini0000755000176700017710000000132511061563414027212 0ustar essawireessawire# $Id: en-GB.plg_search_content.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ALLOWS SEARCHING OF ALL ARTICLES=Enables searching of all Articles ARCHIVED CONTENT=Archived Articles CONTENT ITEMS=Articles NO=No NUMBER OF SEARCH ITEMS TO RETURN=Number of search items to return SEARCH ARCHIVED CONTENT?=Search Archived Articles? SEARCH CONTENT ITEMS?=Search Articles? SEARCH LIMIT=Search Limit SEARCH UNCATEGORISED CONTENT?=Search Uncategorized Articles? UNCATEGORISED CONTENT=Uncategorized Articles YES=Yes elracodelangela/administrator/language/en-GB/en-GB.com_banners.ini0000755000176700017710000000460411061563413025641 0ustar essawireessawire# $Id: en-GB.com_banners.ini 10554 2008-07-15 17:15:19Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM BANNER=Banner BANNER CLIENT=Banner Client BANNER CLIENT MANAGER=Banner Client Manager BANNER IMAGE=Banner Image BANNER MANAGER=Banner Manager BANNER NAME=Banner Name BANNER IMAGE SELECTOR=Banner Image Selector CLEAR RESULTS=Clear Results CLICK URL=Click URL CLICKS=Clicks CLIENT=Client CLIENT NAME=Client Name CLIENTS=Clients CONTACT EMAIL=Contact E-mail CONTACT NAME=Contact Name CUSTOM BANNER CODE=Custom Banner Code DESCRIPTION/NOTES=Description/Notes EXTRA INFO=Extra Information HEIGHT=Height IMPRESSIONS=Impressions IMPRESSIONS LEFT=Impressions Left IMPRESSIONS MADE=Impressions Made IMPRESSIONS PURCHASED=Impressions Purchased LATEST VERSION CHECK=Latest Version Check NO. OF ACTIVE BANNERS=# Banners PLEASE FILL IN THE CLIENT NAME.=Please fill in the Client Name. PLEASE FILL IN THE CONTACT EMAIL.=Please fill in the Contact E-mail. PLEASE FILL IN THE CONTACT NAME.=Please fill in the Contact Name. PLEASE FILL IN THE URL FOR THE BANNER.=Please fill in the URL for the Banner. PLEASE PROVIDE A VALID CONTACT EMAIL.=Please provide a valid Contact E-mail. PLEASE SELECT A CLIENT.=Please select a Client. PLEASE SELECT AN IMAGE.=Please select an image. RESET BANNER CLICKS=Reset Banner Clicks RESET CLICKS=Reset Clicks SELECT CLIENT=Select Client SHOW BANNER=Show Banner STICKY=Sticky TAGS=Tags TAG PREFIX=Tag Prefix THE CLIENT=The Client THIS COMPONENT MANAGES BANNERS AND BANNER CLIENTS=This Component manages Banners and Banner Clients. TAG PREFIX LABEL=Tag Prefix TAG PREFIX DESC=When matching Tags, only search for Tags with this prefix (improves performance). TRACK BANNER IMPRESSION DESC=Record the Impressions (views) of the Banners on a daily basis. TRACK BANNER IMPRESSION LABEL=Track Banner Impression Times TRACK BANNER CLICK DESC=Record the number of Clicks on the Banners on a daily basis. TRACK BANNER CLICK LABEL=Track Banner Click Times UNLIMITED=Unlimited WARNCANNOTDELCLIENTBANNER=Cannot currently delete this Client as they have an active Banner. WARNEDITEDBYPERSON=The Client [ %s ] is currently being edited by another person. YES=Yes YOU MUST PROVIDE A BANNER NAME.=You must provide a Banner Name. FILTER RESET=Reset elracodelangela/administrator/language/en-GB/en-GB.com_contact.menu.ini0000755000176700017710000000057211061563414026610 0ustar essawireessawire# $Id: en-GB.com_contact.menu.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM COM_CONTACT=Contacts COM_CONTACT.CONTACTS=Contacts COM_CONTACT.CATEGORIES=Categorieselracodelangela/administrator/language/en-GB/en-GB.plg_system_legacy.ini0000755000176700017710000000075511061563414027071 0ustar essawireessawire# $Id: en-GB.plg_system_legacy.ini # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM USE LEGACY URL ROUTING=Use Legacy URL Routing IF YES, USE LEGACY URL ROUTING MECHANISM=If yes, use legacy URL routing mechanism. PROVIDES LEGACY SUPPORT FOR OLDER VERSION OF JOOMLA!=Provides Legacy Support for older versions of Joomla!elracodelangela/administrator/language/en-GB/en-GB.plg_xmlrpc_joomla.ini0000755000176700017710000000052011061563414027055 0ustar essawireessawire# $Id: en-GB.plg_xmlrpc_joomla.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM JOOMLA! XML-RPC API=Joomla! XML-RPC API elracodelangela/administrator/language/en-GB/en-GB.mod_latest.ini0000755000176700017710000000150411061563414025503 0ustar essawireessawire# $Id: en-GB.mod_latest.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM A FILTER FOR THE AUTHORS=A Filter for the Authors ADDED OR MODIFIED BY ME=Added or modified by me ANYONE=Anyone AUTHORS=Authors DESCLATESTNEWS=This Module shows a list of the most recently published Articles that are still current. Some that are shown may have expired even though they are the most recent. MOD_LATEST=mod_latest NO MATCHING RESULTS=No matching results NOT ADDED OR MODIFIED BY ME=Not added or modified by me ORDERING OPTIONS=Ordering Options RECENTLY ADDED FIRST=Recently Added First RECENTLY MODIFIED FIRST=Recently Modified Firstelracodelangela/administrator/language/en-GB/en-GB.com_sections.ini0000755000176700017710000000421411061563414026036 0ustar essawireessawire# $Id: en-GB.com_sections.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ARTICLES BEING COPIED=Articles being copied CANNOT PUBLISH AN EMPTY SECTION=Cannot publish an empty Section CATEGORIES BEING COPIED=Categories being copied CHANGES TO SECTION SAVED=Changes to the Section have been saved. COPY SECTION=Copy Section COPY TO SECTION=Copy to Section DESCCATANDITEMSCOPIED=Section %s and all its Categories and Articles have been copied as %s DESCALLITEMSWITHINCAT=and all the Articles within the Category (also listed) DESCCANNOTBEREMOVED=Section(s): %s cannot be deleted as they contain Categories DESCNEWITEMSLAST=New Sections default to the last place. Ordering can be changed after this Section is saved. DESCNEWMENUITEM=This will create a new Menu Item in the Menu you select GO TO MENU=Go to Menu GO TO MENU ITEM=Go to Menu Item IMAGE POSITION=Image Position ITEM NAME=Item Name MENU=Menu MENUTYPE SUCCESSFULLY CREATED=%s ( %s ) in Menu: %s successfully created NEW SECTION=New Section #If the variable does not work in your language use following line # PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a Section from the list #instead of PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a Section from the list to %s PLEASE SELECT A MENU TYPE=Please select a Menu Type PUBLISH ITEM=Publish this Section SCOPE=Scope SECTION BLOG=Section Blog SECTION DETAILS=Section Details SECTION ID=Section Id SECTION LIST=Section List SECTION MANAGER=Section Manager SECTION MUST HAVE A TITLE=Section must have a Title SECTION SAVED=Section Saved SECTION TABLE=Section Table SECTIONS SUCCESSFULLY DELETED=Section(s): %s successfully deleted SELECT A SECTION TO=Select a Section to SELECT A SECTION TO DELETE=Select a Section to delete SELECT TYPE=Select Type SUCCESSFULLY DELETED=Successfully deleted THE NEW SECTION TITLE=The new Section title THE SECTION=The Section TO THE NEW SECTION CREATED.=to the new Section created. UNPUBLISH ITEM=Unpublish this Section elracodelangela/administrator/language/en-GB/en-GB.mod_status.ini0000755000176700017710000000065511061563413025537 0ustar essawireessawire# $Id: en-GB.mod_status.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM LEGACY=Legacy MOD_STATUS=mod_status THIS MODULE SHOWS THE STATUS OF THE LOGGED IN USER.=This Module shows the status of the logged in Users. elracodelangela/administrator/language/en-GB/en-GB.com_search.menu.ini0000755000176700017710000000046711061563413026424 0ustar essawireessawire# $Id: en-GB.com_search.menu.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM COM_SEARCH=Search elracodelangela/administrator/language/en-GB/en-GB.com_weblinks.ini0000755000176700017710000000513111061563414026024 0ustar essawireessawire# $Id: en-GB.com_weblinks.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ALIGNMENT OF THE IMAGE=Alignment of the Image BACK BUTTON=Back Button CATEGORY LIST - SECTION=Category List (Section) CATEGORY LIST - CATEGORY=Category List (Category) CHANGES TO WEBLINK SAVED=Changes to Web Link saved DESCRIPTION TEXT=Description Text DESCNEWITEMSLAST=New Web Links default to the last position. Ordering can be changed after this Web Link is saved. EDIT WEBLINKS=Edit Web Links ICON=Icon IMAGE ALIGN=Image Align LINK DESCRIPTIONS=Link Descriptions OTHER CATEGORIES=Other Categories PARAMBACKBUTTON=Show/Hide a back button, which returns you to the page previously viewed. PARAMCATSELECT=A Web Links Category (optional) PARAMICONIMG=Icon to be used to the left of the URL Links in table view PARAMSHOWHIDEDESC=Show/Hide the description text of the links PARAMSHOWHIDELINKS=Show/Hide the links PARAMOTHERCATSECTION=Show/Hide the list of Categories in list view page PARAMOTHERCAT=Show/Hide the list of Categories in table view page PARAMIMAGE=Image for page must be located in the /images/stories folder. Default will load web_links.jpg. No image will mean an image is not loaded. PARAMLINKICONS=Icon to be used to the left of the URL Links in table view PARAMWHENVIEWCAT=Show/Hide other Web Link Categories SHOW/HIDE THE DESCRIPTION BELOW=Show/Hide the description below SHOW/HIDE THE HITS COLUMN=Show/Hide the hits column SHOW/HIDE THE TABLE HEADINGS=Show/Hide the table headings TABLE HEADINGS=Table Headings TARGET=Target TARGET WINDOW WHEN THE LINK IS CLICKED=Target browser window when the link is clicked THIS COMPONENT SHOWS A LISTING OF WEBLINKS=This component shows a listing of Web links WEBLINK=Web Link WEBLINK ITEM MUST HAVE A TITLE=Web Link Item must have a title WEBLINK MANAGER=Web Link Manager WEBLINK SAVED=Web Link saved WEBLINK CATEGORY LIST LAYOUT=Web Link Category List Layout WEBLINK CATEGORY LIST LAYOUT DESC=This layout shows a list of all the Web Link Categories. WEBLINK STANDARD CATEGORY LAYOUT=Category List Layout WEBLINK STANDARD CATEGORY LAYOUT DESC=This layout shows a list of all the Web Links within a particular Category. WEBLINK SUBMISSION LAYOUT= Web Link Submission Layout WEBLINK SUBMISSION LAYOUT DESC=Allow Registered Users to submit a Web Link. WEBLINKS INTRO=Web Links Introduction WEBLINKS_INTRO_DESC=This text is shown above the Categories overview. YOU MUST HAVE A URL.=You must enter a URL. elracodelangela/administrator/language/en-GB/en-GB.mod_login.ini0000755000176700017710000000117211061563414025320 0ustar essawireessawire# $Id: en-GB.mod_login.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCLOGINFORM=This Module displays a Username and Password Login form. It cannot be disabled. MOD_LOGIN=mod_login LANGUAGE=Language ENCRYPT LOGIN FORM=Encrypt Login Form SUBMIT ENCRYPTED LOGIN DATA (REQUIRES SSL)=Submit encrypted login data (requires SSL). Do not enable this option if Joomla is not accessible using the https:// protocol prefix.elracodelangela/administrator/language/en-GB/en-GB.plg_search_categories.ini0000755000176700017710000000102611061563413027662 0ustar essawireessawire# $Id: en-GB.plg_search_categories.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ALLOWS SEARCHING OF CATEGORIES INFORMATION=Enables searching of Category information CATEGORY BLOG=Category Blog CATEGORY LIST=Category List NUMBER OF SEARCH ITEMS TO RETURN=Number of search items to return SEARCH LIMIT=Search Limit elracodelangela/administrator/language/en-GB/en-GB.mod_feed.ini0000755000176700017710000000206411061563413025113 0ustar essawireessawire# $Id: en-GB.mod_feed.ini 10554 2008-07-15 17:15:19Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DISPLAY FEED IN RTL DIRECTION=Display feed in RTL direction DISPLAY NEWS FEED TITLE=Display news feed title ENTER NUMBER OF RSS ITEMS TO DISPLAY=Enter number of RSS items to display ENTER THE URL OF THE RSS/RDF FEED=Enter the URL of the RSS/RDF feed FEED DESCRIPTION=Feed Description FEED TITLE=Feed Title FEED URL=Feed URL ITEM DESCRIPTION=Item Description ITEMS=Items MOD_FEED=mod feed PARAMITEMDESC=Show the Description or Intro text of individual RSS Items PARAMWORDCOUNT=Allows you to limit the amount of visible Item description text. 0 will show all the text RTL FEED=RTL feed SHOW THE DESCRIPTION TEXT FOR THE WHOLE FEED=Show the description text for the whole Feed SHOW THE IMAGE ASSOCIATED WITH THE WHOLE FEED=Show the image associated with the whole Feed WORD COUNT=Word Count elracodelangela/administrator/language/en-GB/en-GB.plg_content_vote.ini0000755000176700017710000000065211061563414026724 0ustar essawireessawire# $Id: en-GB.plg_content_vote.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ADD THE VOTING FUNCTIONALITY TO ITEMS=Add the Voting functionality to Articles BEST=Best POOR=Poor RATE=Rate USER RATING=User Ratingelracodelangela/administrator/language/en-GB/en-GB.plg_search_weblinks.ini0000755000176700017710000000072711061563414027363 0ustar essawireessawire# $Id: en-GB.plg_search_weblinks.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ALLOWS SEARCHING OF WEBLINKS COMPONENT=Enables searching of Web Links Component NUMBER OF SEARCH ITEMS TO RETURN=Number of search items to return SEARCH LIMIT=Search Limit elracodelangela/administrator/language/en-GB/en-GB.plg_system_sef.ini0000755000176700017710000000064511061563414026400 0ustar essawireessawire# $Id: en-GB.plg_system_sef.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCPLGSYSTEMSEF=Adds SEF support to links in the document. It operates directly on the HTML and does not require a special tag. elracodelangela/administrator/language/en-GB/en-GB.plg_search_sections.ini0000755000176700017710000000103411061563414027364 0ustar essawireessawire# $Id: en-GB.plg_search_sections.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ALLOWS SEARCHING OF CONTENT SECTION INFORMATION=Enables searching of Article Section information NUMBER OF SEARCH ITEMS TO RETURN=Number of search items to return SECTION BLOG=Section Blog SECTION LIST=Section List SEARCH LIMIT=Search Limit elracodelangela/administrator/language/en-GB/en-GB.plg_editors-xtd_image.ini0000755000176700017710000000073711061563414027631 0ustar essawireessawire# $Id: en-GB.plg_editors-xtd_image.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCIMAGE=Displays a button to make it possible to insert images into an Article. Displays a popup allowing you to configure an image's properties and upload new image files. elracodelangela/administrator/language/en-GB/en-GB.com_templates.ini0000755000176700017710000000633611061563414026214 0ustar essawireessawire# $Id: en-GB.com_templates.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ADMINISTRATOR=Administrator ASSIGNED=Assigned AUTHOR INFORMATION=Name and Details of Author CONTENT EMPTY.=Content Empty. COULD NOT MAKE THE CSS FILE WRITABLE=Could not make the css file writable COULD NOT MAKE THE CSS FILE UNWRITABLE=Could not make the css file unwritable COULD NOT MAKE THE TEMPLATE FILE WRITABLE=Could not make the template file writable COULD NOT MAKE THE TEMPLATE FILE UNWRITABLE=Could not make the template file unwritable COULD NOT MAKE THE TEMPLATE PARAMETER FILE WRITABLE=Could not make the template parameter file writable COULD NOT MAKE THE TEMPLATE PARAMETER FILE UNWRITABLE=Could not make the template parameter file unwritable COULD NOT OPEN=Could not open DESCFTP=For editing Templates and changing Template Parameters, Joomla! will most likely need your FTP account details. Please enter them in the form fields below. DESCFTPTITLE=FTP Login Details EDIT CSS=Edit CSS EDIT HTML=Edit HTML FAILED TO OPEN FILE FOR WRITING.=failed to open file %s for writing. FILED SAVED=File Saved IS=is IS NOT WRITABLE.=is not writable. JCLIENTHELPER::SETCREDENTIALSFROMREQUEST FAILED=Unable to connect to the server with the given credentials MANAGE POSITIONS=Manage Positions MODULE POSITIONS=Module Positions NO PREVIEW AVAILABLE=No preview available NO TEMPLATE SPECIFIED.=No Template specified. OPEN IN NEW WINDOW=Open in New Window OPERATION FAILED=Operation Failed! OPERATION FAILED COULD NOT OPEN=Operation Failed! Could not open %s OPERATION FAILED IS NOT WRITABLE=Operation Failed! %s is not writable PAGE(S)=Page(s) PARAMS=Params #If the variable does not work in your language use following line # PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a Template from the list #instead of PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a Template from the list to %s POSITIONS=Positions POSITIONS SAVED=Positions saved PREVIEW TEMPLATE=Preview Template SITE=Site SITE PREVIEW=Site Preview TEMPLATE=Template TEMPLATE CSS EDITOR=Template CSS Editor TEMPLATE_CSS.CSS IS=CSS file is TEMPLATE HTML EDITOR=Template HTML Editor TEMPLATE MANAGER=Template Manager TEMPLATE PARAMETERS=Template Parameters TEMPLATE NAME=Template Name TEMPLATE NOT SPECIFIED=Template not specified TEMPLATE SOURCE SAVED=Template source saved THE FILE IS NOT WRITABLE.=The File is not writable. THERE ARE NO PARAMETERS FOR THIS ITEM=There are no parameters for this item. THIS FILE IS=This file is YOU CAN NOT DELETE TEMPLATE IN USE.=You can not delete a Template that is in use. WRONG FILE TYPE GIVEN, ONLY CSS FILES CAN BE EDITED.=Wrong file type given. Only CSS files can be edited. MENU ASSIGNMENT=Menu Assignment CANNOT ASSIGN DEFAULT TEMPLATE=Cannot assign default template. CANNOT ASSIGN AN ADMINISTRATOR TEMPLATE=Cannot assign an Administrator Template CANNOT ASSIGN ADMINISTRATOR TEMPLATE=Cannot assign an Administrator Template PARAMSWRITABLE=The parameter file %s is writable! PARAMSUNWRITABLE=The parameter file %s is unwritable! elracodelangela/administrator/language/en-GB/en-GB.plg_content_emailcloak.ini0000755000176700017710000000111311061563414030041 0ustar essawireessawire# $Id: en-GB.plg_content_emailcloak.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM AS LINKABLE MAILTO ADDRESS=As linkable mailto address DESCMOSEMAILCLOAK=Cloaks all e-mails in content from spambots using JavaScript MODE=Mode MOSEMAILCLOAK=mosemailcloak NONLINKABLE TEXT=Non-linkable Text SELECT HOW THE EMAILS WILL BE DISPLAYED=Select how emails will be displayed elracodelangela/administrator/language/en-GB/en-GB.plg_content_pagebreak.ini0000755000176700017710000000273311061563414027672 0ustar essawireessawire# $Id: en-GB.plg_content_pagebreak.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM >=> <=< ALL PAGES= All Pages ARTICLE INDEX=Article Index DESCCONTENTPAGEBREAK=Add Table of Contents functionality to a paginated Article. This is done automatically through the use of the page break button added to the lower part of the text panel in an Article. The HTML code is included here as a reference of what is available. The page break will be displayed in the text window as a simple horizontal line.
    Syntax: Usage: <hr class="system-pagebreak" />
    <hr class="system-pagebreak" title="The page title" /> or
    <hr class="system-pagebreak" alt="The first page" /> or
    <hr class="system-pagebreak" title="The page title" alt="The first page" /> or
    <hr class="system-pagebreak" alt="The first page" title="The page title" /> HIDE=Hide NEXT=Next NO=No PAGE #=Page %s PARAMENABLED=Select whether the Plugin is enabled. PARAMSITETITLE=title and heading attibutes from Plugin added to Site Title tag PARAMSITETOC=Display a table of contents on multi-page Articles. PARAMSITESHOWALL=Allow Users to select the Show All feature PREV=Prev SHOW=Show SHOW ALL=Show all SITE TITLE=Site Title TABLE OF CONTENTS=Table of Contents YES=Yes elracodelangela/administrator/language/en-GB/en-GB.plg_editors_tinymce.ini0000755000176700017710000001234111061563413027413 0ustar essawireessawire# $Id: en-GB.plg_editors_tinymce.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ABILITY TO CHANGE TEXT DIRECTION=Ability to change text direction ABSOLUTE=Absolute ADVANCED=Advanced ALWAYS=Always AUTOMATIC LANGUAGE SELECTION=Automatic Language Selection BR ELEMENTS=BR Elements CLEANS CODE ON EDITOR LOAD=Cleans code on editor load CODE CLEANUP=Code Cleanup CODE CLEANUP ON SAVE=Code cleanup on save CODE CLEANUP ON STARTUP=Code Cleanup on Startup CODE CLEANUP UPON SAVING ARTICLE=Code cleaning upon saving article COMPRESSED VERSION=Compressed Version CUSTOM CSS CLASSES=Custom CSS Classes DATE FORMAT=Date Format DESCLANGCODE=Editor UI Language. A value here is mandatory if manual language selection is set. DESCLANGMODE=If Yes, editor language will automatically match selected UI language. Do not activate if appropriate editor languages are not installed. DESCTINYMCE=TinyMCE is a platform-independent Web-based JavaScript HTML WYSIWYG Editor control. DIRECTIONALITY=Directionality DO NOT CLEAN ENTITIES=Do not clean HTML entities. ELEMENT PATH=Element Path ELEMENTS THAT WILL BE CLEANED FROM THE TEXT=Elements that will be cleaned from the text EXTENDED VALID ELEMENTS=Extended Valid Elements FLASH=Flash FORMAT OF INSERTED DATE. ONLY WORKS IN ADVANCED MODE=Format of inserted date. Only works in Advanced mode. FORMAT OF INSERTED TIME. ONLY WORKS IN ADVANCED MODE=Format of inserted time. Only works in Advanced mode FRONT ONLY=Front Only. FULLSCREEN=Fullscreen FUNCTIONALITY=Functionality HORIZONTAL RULE=Horizontal Rule HTML HEIGHT=HTML Height HTML WIDTH=HTML Width INSERT DATE=Insert Date INSERT TIME=Insert Time LANGUAGE CODE=Language Code LAYER=Layer LEFT TO RIGHT=Left to Right LOAD CSS CLASSES FROM TEMPLATE_CSS.CSS=Load CSS classes from template_css.css NEVER=Never NEWLINES=New Lines NEWLINES WILL BE MADE INTO THE SELECTED OPTION=New lines will be created using the selected option. P ELEMENTS=P Elements PARAMCODECLEANUP=By default, TinyMCE will clean your code of certain HTML elements like script and center tags and check for security and XHTML compliance. We recommend you do not deactivate this functionality PARAMCOMPRESSEDVERSION=Tiny can be run in compressed mode resulting in slightly faster load speeds. However, this mode does not always work (especially in IE) so default for this is Off. Be careful when enabling this to ensure it works on your system. PARAMCUSTOMCSS=You can specify the loading of a custom CSS file. Simply enter the full URL path to the CSS file you want loaded. If you enter a value in this field, this will overrule the template CSS classes parameter. PARAMDIRECTIONALITY=Select whether to display the RTL button. Only Works in Advanced mode PARAMELEMENTPATH=If set to ON, it shows the set classes for the marked text. PARAMENTITIECLEANUP=If set to No, entities are stripped from the code. PARAMEXTVALIDELEMENTS=Allows the addition of specific valid_elements to the existing rule set. PARAMFLASH=Show/Hide the Flash button. Only works in advanced mode. PARAMFULLSCREEN=Show/Hide the Fullscreen button. Only works in advanced mode. PARAMINSERTDATE=Show/Hide the Insert Date button. Only works in advanced mode. PARAMINSERTTIME=Show/Hide the Insert Time button. Only works in advanced mode. PARAMHTMLHEIGHT=Height of HTML mode pop-up window. Only works in advanced mode. PARAMHTMLWIDTH=Width of HTML mode pop-up window. Only works in advanced mode. PARAMLAYER=Show/Hide the Layer control button. Only works in advanced mode. PARAMPREVIEW=Show/Hide the Preview buttons. Only works in advanced mode. PARAMPREVIEWHEIGHT=Height of Preview mode pop-up window. Only works in advanced mode. PARAMPREVIEWWIDTH=Width of Preview mode pop-up window. Only works in advanced mode. PARAMSEARCHREPLACE=Show/Hide the Search & Replace button. Only works in advanced mode. PARAMSMILIES=Show/Hide the smilies buttons. Only works in advanced mode. PARAMSTYLE=Show/Hide the CSS Style control button. Only works in advanced mode. PARAMTABLE=Show/Hide the table control buttons. Only works in advanced mode. PARAMTEMPLATE=Show/Hide the Add new Layer button. Only works in Advanced mode. PARAMTEMPLATECSS=By default the Plugin looks for an editor.css file. If it cannot find one in the default template, it loads the editor.css file in the system template. PARAMXHTMLXTRAS=Show/Hide the additional XHTML features. Only works in advanced mode. POSITION OF THE TOOLBAR=Position of the toolbar PREVIEW=Preview PREVIEW HEIGHT=Preview Height PREVIEW WIDTH=Preview Width PROHIBITED ELEMENTS=Prohibited Elements RELATIVE=Relative RIGHT TO LEFT=Right to Left SAVE WARNING=Save Warning SAVE WARNING - GIVES WARNING IF YOU CANCEL WITHOUT SAVING CHANGES=Save Warning: gives warning if you cancel without saving changes. SEARCH AND REPLACE=Search & Replace SELECT FUNCTIONALITY=Select Functionality SHOW/HIDE THE HORIZONTAL RULE BUTTON=Show/Hide the Horizontal Rule button SIMPLE=Simple SMILIES=Smilies STYLE=Style TABLE=Table TEMPLATE CSS CLASSES=Template CSS classes TEXT DIRECTION=Text Direction TIME FORMAT=Time Format TOOLBAR=Toolbar URL BEHAVIOUR=URL behaviour URLS=URLs XHTMLXTRAS=XHTMLxtras elracodelangela/administrator/language/en-GB/en-GB.plg_content_geshi.ini0000755000176700017710000000061211061563414027042 0ustar essawireessawire# $Id: en-GB.plg_content_geshi.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM GESHI=GeSHi DESCGESHI=Displays formatted code in Articles based on the GeSHi highlighting engine elracodelangela/administrator/language/en-GB/en-GB.com_messages.ini0000755000176700017710000000230711061563414026017 0ustar essawireessawire# $Id: en-GB.com_messages.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM A NEW PRIVATE MESSAGE HAS ARRIVED=A new private message has arrived from %s ARE YOU SURE?=Are you sure? AUTO PURGE MESSAGES=Auto Purge Messages DAYS OLD=days old FROM=From GENERAL=General LOCK INBOX=Lock Inbox MAIL ME ON NEW MESSAGE=Mail me on new Message MESSAGE_FAILED=Message Failed. The User has locked their message box. NEW PRIVATE MESSAGE=New Private Message PLEASE LOGIN TO READ YOUR MESSAGE=Please log in to %s to read your message. POSTED=Posted PRIVATE MESSAGING=Private Messaging PRIVATE MESSAGING CONFIGURATION=Private Messaging Configuration READ=Read REPLY=Reply SELECT STATE=Select State SELECT USER=Select User SEND=Send SETTINGS=Settings TO=To UNREAD=Unread VIEW PRIVATE MESSAGE=View Private Message WRITE PRIVATE MESSAGE=Write Private Message YOU MUST PROVIDE A MESSAGE.=You must enter a message. YOU MUST PROVIDE A SUBJECT.=You must enter a subject. YOU MUST SELECT A RECIPIENT.=You must select a recipient. elracodelangela/administrator/language/en-GB/en-GB.com_banners.menu.ini0000755000176700017710000000062311061563413026601 0ustar essawireessawire# $Id: en-GB.com_banners.menu.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM COM_BANNERS=Banner COM_BANNERS.BANNERS=Banners COM_BANNERS.CLIENTS=Clients COM_BANNERS.CATEGORIES=Categories elracodelangela/administrator/language/en-GB/en-GB.plg_search_contacts.ini0000755000176700017710000000073411061563413027360 0ustar essawireessawire# $Id: en-GB.plg_search_contacts.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ALLOWS SEARCHING OF CONTACTS COMPONENT=Enables searching of the Contact Component NUMBER OF SEARCH ITEMS TO RETURN=Number of search items to return SEARCH LIMIT=Search Limit elracodelangela/administrator/language/en-GB/en-GB.mod_unread.ini0000755000176700017710000000062111061563414025464 0ustar essawireessawire# $Id: en-GB.mod_unread.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM MOD_UNREAD=mod_unread THIS MODULE SHOWS A LIST OF UNREAD ITEMS=This Module shows a list of unread mail messages elracodelangela/administrator/language/en-GB/index.html0000755000176700017710000000005411061563413023753 0ustar essawireessawireelracodelangela/administrator/language/en-GB/en-GB.com_svmap.ini0000644000176700017710000001554311074453335025345 0ustar essawireessawire# $Id: en-GB.com_svmap.ini 1.1.1 August 2008 http://www.la-souris-verte.com 0$ SVMAP_TITLE=SourisVerteMap Component SVMAP_INSTALL_MESSSAGE=

    Don't forget to get a "Google API Key" ( http://code.google.com/apis/maps/signup.html ) and to enter it in the SVMap Configuration page in order to use Google Maps on your site.

    SVMAP_API_KEY=API Key SVMAP_CENTER=Center SVMAP_FIRST_ZOOMLEVEL=First zoom level SVMAP_SECOND_ZOOMLEVEL=Second zoom level SVMAP_AUTOVIEW_ENABLED=Auto view enabled ? SVMAP_MAPTYPE=Map Type SVMAP_MAP=Map SVMAP_SATELLITE=Satellite SVMAP_HYBRID=Hybrid SVMAP_PHYSICAL=Physical SVMAP_MAPCONTROL=Map control SVMAP_NONE=None SVMAP_SMALL_MAP_CONTROL=Small Map Control SVMAP_LARGE_MAP_CONTROL=Large Map Control SVMAP_SMALL_ZOOM_CONTROL=Small Zoom Control SVMAP_OVERVIEW_ENABLED=Overview enabled ? SVMAP_DRAGING_ENABLED=Dragging enabled ? SVMAP_DOUBLECLICK_ENABLED=Double click enabled ? SVMAP_SCROLLWHEELZOOM_ENABLED=Scroll wheel zoom enabled ? SVMAP_DIRECTION_ENABLED=Directions enabled ? SVMAP_MARKER=Marker SVMAP_WIDTH=Width SVMAP_HEIGHT=Height SVMAP_CONFIGURATION=Configuration SVMAP_CONFIGURATION_MAP=Map configuration SVMAP_CONFIGURATION_LINK=Link configuration SVMAP_CONFIGURATION_HELP_LINK=Allows you to link SVMap with the Joomla contact table or with Community Builder profile table.

    Once you have filled these two fields, a "Links" tab will appear in order to allow you to set links between tables

    SVMAP_CONFIGURATION_SAVED=Configuration saved SVMAP_CONFIGURATION_SAVE_ERROR=Error saving Configuration... SVMAP_CONFIGURATION_DESCRIPTION=Allows you to configure some aspects of the map SVMAP_CONFIGURATION_HELP_APIKEY=In order to use the GoogleMap Api on your website, you need to ask for a "Google Api Key" here : http://code.google.com/apis/maps/signup.html SVMAP_CONFIGURATION_HELP_MAP=Use this map to define the center and the first zoom level that is used in the frontend map.

    You can move the marker or move the map to define the center.

    Zoom in or zoom out on the map to define the first zoom level.

    SVMAP_CONFIGURATION_HELP_FIRST_ZOOMLEVEL=The first zoom level is used when all businesses are displayed on the map. SVMAP_CONFIGURATION_HELP_SECOND_ZOOMLEVEL=The second zoom level is used when only one business is displayed on the map. SVMAP_CONFIGURATION_HELP_AUTOVIEW=If enabled, the map will be configured automatically in order to display all markers in the same view. SVMAP_CONFIGURATION_HELP_MAPTYPE=Chose the map types that are available on the frontend map. SVMAP_CONFIGURATION_HELP_MAPCONTROL=Chose the map controls that are available on the frontend map. SVMAP_CONFIGURATION_HELP_OVERVIEW=Enable overview to display a mini-map in the corner of the main map. SVMAP_CONFIGURATION_HELP_DRAGING=Enables the dragging of the map. SVMAP_CONFIGURATION_HELP_DOUBLECLICK=Enables double click to zoom in and out. SVMAP_CONFIGURATION_HELP_SCROLLWHEELZOOM=Enables zooming using a mouse's scroll wheel. SVMAP_CONFIGURATION_HELP_DIRECTION=Display a form in order to find directions between two points. SVMAP_CONFIGURATION_HELP_WIDTH=Chose the frontend map's width. SVMAP_CONFIGURATION_HELP_HEIGHT=Chose the frontend map's height. SVMAP_LINK=Links SVMAP_LINK_DESCRIPTION=Allows you to create links between SVMap tables and Joomla! Contact or Community Builder tables. SVMAP_LINK_WITH=Link with SVMAP_LINK_AS=Link as SVMAP_LINK_AS_MEMBER=Link as member SVMAP_LINK_AS_BUSINESS=Link as business SVMAP_LINK_AS_BUSINESS_HELP=When external tables (Joomla! or CB) are linked as business, address fields are used to geolocate businesses.

    The syntax used for geolocation is : country postcode city address1 address2 address3.

    Therefore, be sure to correctly fill these fields.

    SVMAP_LINK_HELP_AS=member : linked users will appear in the "Members" menu. They will be visible in members' list of your businesses.

    business : linked users will appear in the "Businesses" menu. Each linked user will be represented by a marker on the SVMap general map.

    SVMAP_LINK_JOOMLA=Joomla! Contact SVMAP_LINK_CB=Community Builder SVMAP_LINK_SAVED=Link saved SVMAP_LINK_SAVE_ERROR=Error saving Link... SVMAP_BUSINESS=Business SVMAP_BUSINESS_SAVED=Business saved SVMAP_BUSINESS_SAVE_ERROR=Error saving Business... SVMAP_BUSINESS_REMOVED=Business removed SVMAP_BUSINESS_REMOVE_ERROR=Error: one or more businesses can't be removed SVMAP_LINK_BUSINESS=Link to a business SVMAP_BUSINESS_DESCRIPTION=Allows you to add new businesses to your map SVMAP_BUSINESS_HELP_MAP=

    Use this map to locate the business.

    You can move the marker or right click where you want to locate the business.

    You can use the integrated search field to easily find an emplacement on the map.

    When you release the marker or right click on the map, the coordinates are set in the lattitude and longitude fiels under the map.

    SVMAP_BUSINESS_HELP_OPTION=You can add as many options as you want.

    You can create new options in the "Options" menu.

    SVMAP_OPTION=Option SVMAP_OPTION_SAVED=Option saved SVMAP_OPTION_SAVE_ERROR=Error saving Option... SVMAP_OPTION_REMOVED=Options removed SVMAP_OPTION_REMOVE_ERROR=Error: one or more options can't be removed SVMAP_ADD_OPTION=Add an option SVMAP_OPTION_DESCRIPTION=Alows you to add new options that might be usefull to define businesses SVMAP_MARKER=Markers SVMAP_MARKER_SAVED=Marker saved SVMAP_MARKER_SAVE_ERROR=Error saving Marker... SVMAP_MARKER_REMOVED=Markers removed SVMAP_MARKER_REMOVE_ERROR=Error: one or more markers can't be removed SVMAP_MARKER_DESCRIPTION=Allows you to manage markers used on the map and to add new ones. SVMAP_MEMBER=Member SVMAP_MEMBER_SAVED=Member saved SVMAP_MEMBER_SAVE_ERROR=Error saving Member... SVMAP_MEMBER_REMOVED=Members removed SVMAP_MEMBER_REMOVE_ERROR=Error: one or more members can't be removed SVMAP_MEMBER_DESCRIPTION=Allows you to add new members and link them to existing businesses SVMAP_MEMBER_HELP_BUSINESS=You can link a member to as many businesses as you want. Linked members will appear in the businness' page in SVMap front component. SVMAP_NAME=Name SVMAP_FIRST_NAME=First name SVMAP_LAST_NAME=Last name SVMAP_CITY=City SVMAP_ADDRESS=Address SVMAP_POSTCODE=Postcode SVMAP_COUNTRY=Country SVMAP_PHONE=Phone SVMAP_FAX=Fax SVMAP_EMAIL=Email SVMAP_DESCRIPTION=Description SVMAP_POINT=Point SVMAP_LATITUDE=Latitude SVMAP_LONGITUDE=Longitude SVMAP_CATEGORY=Category SVMAP_PREVIEW=Preview SVMAP_COPYRIGHT=SourisVerteMap Component 1.1.1 (GNU / GPL) La Souris Verte - http://joomla.la-souris-verte.comelracodelangela/administrator/language/en-GB/en-GB.plg_authentication_joomla.ini0000755000176700017710000000110311061563414030565 0ustar essawireessawire# $Id: en-GB.plg_authentication_joomla.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM HANDLES JOOMLAS DEFAULT USER AUTHENTICATION=Handles Joomla's default User authentication JOOMLA CAN NOT HAVE A BLANK PASSWORD=Joomla can not have blank password INVALID PASSWORD=Invalid password INVALID RESPONSE FROM DATABASE=There is an invalid response from the database. elracodelangela/administrator/language/en-GB/en-GB.com_cache.ini0000755000176700017710000000104311061563413025246 0ustar essawireessawire# $Id: en-GB.com_cache.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM CACHE MANAGER=Cache Manager CACHE DIRECTORY IS UNWRITABLE=Cache directory is unwritable. CACHE DIRECTORY IS WRITABLE=Cache directory is writable. NUM=# CACHE GROUP=Cache Group NUMBER OF FILES=Number of Files SIZE=Size WRITABLE=Writable UNWRITABLE=Unwritable elracodelangela/administrator/language/en-GB/en-GB.com_newsfeeds.menu.ini0000755000176700017710000000057711061563414027145 0ustar essawireessawire# $Id: en-GB.com_newsfeeds.menu.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM COM_NEWSFEEDS=News Feeds COM_NEWSFEEDS.FEEDS=Feeds COM_NEWSFEEDS.CATEGORIES=Categories elracodelangela/administrator/language/en-GB/en-GB.tpl_siteground-j15-67.ini0000644000176700017710000000071411072761173027244 0ustar essawireessawire# license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL # Note : All ini files need to be saved as UTF-8 siteground-j15-67=siteground-j15-67 TEMPLATE_DESCRIPTION=This Joomla Template is designed by SiteGround.com and can be used free of charge. The template is suitable for personal and business Joomla sites. It can be used with many popular modules and components for Joomla. At www.siteground.com you can find more great looking free Joomla templates.elracodelangela/administrator/language/en-GB/en-GB.com_newsfeeds.ini0000755000176700017710000000707111061563414026176 0ustar essawireessawire# $Id: en-GB.com_newsfeeds.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM A FEED=A feed ALIGNMENT OF THE IMAGE=Alignment of the image. CACHE DIRECTORY=Cache Directory CACHE TIME=Cache Time CATEGORY DESCRIPTION=Category Description CATEGORIES GROUP=All Categories CATEGORIES GROUP DESC=This view shows all News Feed Categories. CATEGORY GROUP=Category CATEGORY GROUP DESC=This view shows a News Feed Category. CATEGORY LIST - CATEGORY=Category List (Category) CATEGORY LIST - SECTION=Category List (Section) CHANGES TO NEWSFEED SAVED=Changes to News Feed saved DESCNEWITEMSLAST=New News Feeds default to the last position. Ordering can be changed after this News Feed is saved. DESCRIPTION FOR PAGE=Description for page DESCRIPTION TEXT=Description Text EDIT NEWSFEED=Edit News Feed FEED=Feed FEED DESCRIPTION=Feed Description IMAGE ALIGN=Image Align INDIVIDUAL FEED GROUP=Individual Feed INDIVIDUAL FEED GROUP DESC=This view shows a single News Feed. ITEM DESCRIPTION=Item Description LINK=Link LINK COLUMN=Link Column NAME COLUMN=Name Column NEWS FEED=News Feed Name NEWSFEED=News Feed NEWSFEED CATEGORY LAYOUT=Category Layout NEWSFEED CATEGORY LAYOUT DESC=This layout shows a list of News Feeds in a Category. NEWSFEED CATEGORY LIST LAYOUT=Category List Layout NEWSFEED CATEGORY LIST LAYOUT DESC=This layout shows a list of all News Feed Categories. NEWSFEED LAYOUT=News Feed Layout NEWSFEED MANAGER=News Feed Manager NEWSFEED SINGLE LAYOUT=Single Feed Layout NEWSFEED SINGLE LAYOUT DESC=This layout shows a single News Feed. NEWSFEED SAVED=News Feed saved NUM CATEGORY ITEMS=# Category Items NUM ARTICLES=# Articles NUM ARTICLES COLUMN=# Articles Column NUMBER OF ARTICLES=Number of Articles PARAMARTICLES=Show/Hide the # of Articles in the Feed PARAMCATDESC=Show/Hide the Category Description PARAMCATSELECT=A News Feed Category (optional) PARAMCATITEMS=Show/Hide the number of Items in each Category PARAMFEEDDESC=Show/Hide the description text of the Feed PARAMIMAGE=Image for page must be located in the /images/stories folder. Default will load web_links.jpg, No image will mean an image is not loaded. PARAMITEMDESC=Show/Hide the description or Intro text of an Item PARAMOTHERCAT=Show/Hide the List of Categories in table view page PARAMOTHERCATSECTION=Show/Hide the List of Categories in list view page PARAMWORDCOUNT=Allows you to limit the amount of visible Item Description text. 0 will show all the text. PLEASE FILL IN THE CACHE REFRESH TIME.=Please input the Cache refresh time. PLEASE FILL IN THE NEWSFEED LINK.=Please input the News Feed Link. PLEASE FILL IN THE NEWSFEED NAME.=Please input the News Feed Name. PLEASE SELECT A FEED=Please select a Feed RTL FEED=RTL Feed SELECT FEED=Select Feed SHOW/HIDE THE DESCRIPTION BELOW=Show/Hide the Description below SHOW/HIDE THE FEED LINK COLUMN=Show/Hide the Feed Link column SHOW/HIDE THE FEED NAME COLUMN=Show/Hide the Feed Name column SHOW/HIDE THE IMAGE OF THE FEED=Show/Hide the image of the Feed SHOW LIMIT BOX=Show Limit Box SHOW/HIDE THE LIMIT BOX=Show/Hide the limit box SHOW/HIDE THE TABLE HEADINGS=Show/Hide the Table Headings TABLE HEADINGS=Table Headings THIS COMPONENT MANAGES RSS/RDF NEWSFEEDS=This Component manages RSS/RDF News Feeds TIPCACHETIME=The number of minutes before the News Feed cache is refreshed. UNWRITABLE=Unwritable VALIDARTICLESDISPLAY=Please input the number of Articles to display. WORD COUNT=Word Count WRITABLE=Writable elracodelangela/administrator/language/en-GB/en-GB.com_statistics.ini0000755000176700017710000000226611061563414026406 0ustar essawireessawire# $Id: en-GB.com_statistics.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM BROWSERS=Browsers BROWSER, OS, DOMAIN STATISTICS=Browser, OS, Domain Statistics DISABLED=Disabled DOMAIN=Domain DOMAIN STATS=Domain Stats HIDE SEARCH RESULTS=Hide Search Results LOGGING IS=Logging is OPERATING SYSTEM=Operating System OS STATS=OS Stats ARTICLE IMPRESSION STATISTICS=Article Impression Statistics ARTICLE IMPRESSIONS=Article Impressions RESULTS RETURNED=Results Returned SEARCH ENGINE TEXT=Search Engine Text SEARCH TEXT=Search Text SORT ASCENDING=Sort Ascending SORT DESCENDING=Sort Descending TIMES REQUESTED=Times Requested RESET STATISTICS FAILED=Reset Statistics Failed RESET STATISTICS SUCCES=Reset Statistics Succeeded SHOW SEARCH RESULTS=Show Search Results UNCATEGORIZED=Uncategorised WARN_RESULTS=Activating this can dramatically slow, and even lock up your Web site because it is a highly query-intensive operation. BROWSER, OS, DOMAIN=Browser, OS, Domain SEARCH LOGGING=Search Logging elracodelangela/administrator/language/en-GB/en-GB.com_modules.ini0000755000176700017710000000521711061563413025662 0ustar essawireessawire# $Id: en-GB.com_modules.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ADMIN=admin ADMINISTRATOR=Administrator ADMIN MENU= Admin Menu ADMIN SUBMENU=Admin Sub Menu ALL=All CACHE TIME=Cache Time CACHING=Caching COMPONENT LIST=Component List COPY OF=Copy of %s CUSTOM HTML=Custom HTML CUSTOM OUTPUT=Custom Output EDIT=Edit EDIT MENU=Click to Edit this Menu EDIT MODULE=Click to Edit this Module FEED DISPLAY=Feed Display FOOTER=Footer GO=Go ITEMS STATS=Item Stats LATEST NEWS=Latest News LOGGED IN USERS=Logged in Users LOGIN FORM=Login Form MENU TAG ID=Menu Tag ID MODULE=Module MODULE_POSITION_TIP_TEXT=You may select a Module position from the dropdown box of pre-defined positions or enter your own Module position by typing in the name. MODULE_POSITION_TIP_TITLE=Module Positions MODULE CLASS SUFFIX=Module Class Suffix MODULE MANAGER=Module Manager MODULE MUST HAVE A TITLE=Module must have a title MODULE NAME=Module Name MODULE PARAMETERS=Module Parameters MODULE TYPE=Module Type MODULE(S)=Module(s) MODULES=Modules MENU ASSIGNMENT=Menu Assignment NEVER=Never NEW MODULE=New Module NEW=New NO CACHING=No Caching NUM=# ONLINE USERS=Online Users PAGES=Pages PARAMMODULECLASSSUFFIX=A suffix to be applied to the CSS class of the Module. This allows for individual Module styling. POPULAR ITEMS=Popular Articles PUBLISH=Enable PUBLISH ITEM=Enable Module PUBLISHED=Enabled RESET=Reset SELECT FROM LIST=Select Menu Item(s) from the List SELECT WHETHER TO CACHE THE CONTENT OF THIS MODULE=Select whether to Cache the content of this Module SELECT POSITION=Select Position SELECT TEMPLATE=Select Template SELECT TYPE=Select Type SHOW TITLE=Show Title SITE MODULES=Site Modules THE TIME BEFORE THE MODULE IS RECACHED=The period of time in minutes before the Module is re-cached. THERE ARE NO PARAMETERS FOR THIS ITEM=There are no Parameters for this Module THIS MODULE DISPLAYS THE BREADCRUMBS=This Module displays the Breadcrumbs THIS MODULE ALLOWS THE DISPLAYING OF A SYNDICATED FEED=This Module allows the display of a Syndicated Feed TOOLBAR=Toolbar UNASSIGNED=Unassigned UNPUBLISH=Disable UNPUBLISH ITEM=Disable Module UNPUBLISHED=Disabled UNREAD ITEMS=Unread Messages USER STATUS=User Status VARIES=Varies WARNMAINMENU=You cannot delete the mod_mainmenu Module because it is a core Menu. WARNMODULES=cannot be deleted they can only be uninstalled as they are Joomla! Modules. WHO\'S ONLINE=Who's Online YOU CAN ONLY PREVIEW NEW MODULES.=You can only preview new Modules. elracodelangela/administrator/language/en-GB/en-GB.mod_toolbar.ini0000755000176700017710000000077211061563414025657 0ustar essawireessawire# $Id: en-GB.mod_toolbar.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM MOD_TOOLBAR=mod_toolbar THIS MODULE SHOWS THE TOOLBAR ICONS USED TO CONTROL ACTIONS THROUGHOUT THE ADMINISTRATOR AREA=This Module shows the toolbar icons used to control actions throughout the administrator area. elracodelangela/administrator/language/en-GB/en-GB.com_content.ini0000755000176700017710000002357311061563412025670 0ustar essawireessawire# $Id: en-GB.com_content.ini 10852 2008-08-29 22:38:27Z willebil $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ACROSS=Across ALIAS=Alias ALTERNATIVE READ MORE TEXT=Alternative Read more: text AN ERROR HAS OCCURRED=An error has occurred! APPENDIX=Appendix ARCHIVE=Archive ARCHIVED=Archived ARCHIVED ARTICLE LIST LAYOUT=Archived Article List ARCHIVED ARTICLE LIST LAYOUT DESC=The Archived Article Layout displays Articles that have been Archived and is searchable by date. ARTICLE=Article ARTICLE ID=Article ID ARTICLE MANAGER=Article Manager ARTICLE MUST HAVE A TITLE=Article must have a Title ARTICLE MUST HAVE SOME TEXT=Article must have some text ARTICLE ORDER=Article Order ARTICLE PARAMETERS=Article Parameters ARTICLE RATING:: INVALID RATING:=Article Rating:: Invalid Rating: ARTICLE SUBMISSION LAYOUT=Article Submission Layout ARTICLE SUBMISSION LAYOUT DESC=Allows Users to submit an Article. Note: this will only work for Authors and above! ARTICLE TITLE=Article Title ARTICLES BEING COPIED=Articles being copied: ARTICLES BEING MOVED=Articles being moved: AUTHOR NAMES=Author Name BLACK LIST (DEFAULT)= Blacklist (Default) BOOK=Book CALENDAR=Calendar CAPTION=Caption CATEGORY BLOG LAYOUT=Category Blog Layout CATEGORY BLOG LAYOUT DESC=This layout displays an Article Category in Blog format. CATEGORY NAME=Category Title CATEGORY NAME LINKABLE=Category Title Linkable CHAPTER=Chapter CONTENT LANGUAGE=Content Language COPY ARTICLES=Copy Articles COPY TO SECTION/CATEGORY=Copy to Section/Category CREATED=Created CREATED DATE AND TIME=Created Date and Time DESCCONTENT=This shows a single Content page DETAILAUTHOR=Author Name DETAILAUTHORALIAS=Alternative Name for the Author DETAILACCESS=Access Level for this Article DETAILCREATED=Creation Date of the Article DETAILSTART=Start Publishing date/time DETAILFINISH=Finish Publishing date/time DOWN=Down DRAFT UNPUBLISHED=Unpublished draft EDIT THE IMAGE SELECTED=Edit the image selected FILTER ATTRIBUTES=Filter attributes FILTER GROUPS=Filter groups FILTERING OPTIONS=Filtering options FILTER TAGS=Filter tags FILTER TYPE=Filter type EMAIL ICON=E-mail Icon FILTER BY TITLE OR ENTER ARTICLE ID=Filter by Title or enter an Article ID FOR EACH FEED ITEM SHOW=For each feed item show FRONT PAGE=Front Page FRONTPAGE=Front Page FRONTPAGE BLOG LAYOUT=Front Page Blog Layout FRONTPAGE BLOG LAYOUT DESC=The standard Front Page Blog Layout displays Articles that have been set as Front Page Articles in a blog format. GLOSSARY=Glossary IMAGE ALIGN=Image Align INTRO TEXT=Intro Text FULL TEXT=Full Text ITEM RATING=Article Rating ITEM RATING/VOTING=Article Rating/Voting ITEM(S) SENT TO THE TRASH=%s Article(s) sent to the Trash. ITEM(S) SUCCESSFULLY ARCHIVED=%s Article(s) successfully archived. ITEM(S) SUCCESSFULLY COPIED TO SECTION=%s Article(s) successfully copied to Section: %s, Category: %s. ITEM(S) SUCCESSFULLY MOVED TO SECTION=%s Article(s) successfully moved to Section: %s, Category: %s. ITEM(S) SUCCESSFULLY MOVED TO UNCATEGORIZED=%s Article(s) successfully moved to Uncategorised content. ITEM(S) SUCCESSFULLY PUBLISHED=%s Article(s) successfully published. ITEM(S) SUCCESSFULLY UNPUBLISHED=%s Article(s) successfully unpublished. ITEM(S) SUCCESSFULLY UNARCHIVED=%s Article(s) successfully unarchived. ITEMS BEING COPIED=Articles being copied. ITEMS BEING MOVED=Articles being moved. KEY REFERENCE=Key Reference KEYWORDS=Keywords LINKED TITLES=Title Linkable MAKE YOUR ITEM TITLES LINKABLE=Make your Article's Title a link to the actual Article. This is ideal when only the Intro Text is displayed. METADATA INFORMATION=Metadata Information METADESC=Meta Description METAKEYS=Meta Keywords METAROBOTS=Keywords for Robots METAAUTHOR=Author name within the Meta information MODIFIED=Modified MODIFIED DATE AND TIME=Modified Date and Time MOVE ARTICLES=Move Articles MOVE TO SECTION/CATEGORY=Move to Section/Category MULTI COLUMN ORDER=Multi Column Order NEVER=Never NEW DOCUMENT=New Document NO HTML=No html NOT MODIFIED=Not Modified ORDER THAT THE ARTICLES WILL BE DISPLAYED IN=Order that Articles will be displayed in. PAGEBREAK=Pagebreak PARAMDOWNORACROSS=Order articles down or across columns PARAMALTREADMORE=Enter the text that you want to appear alongside the dynamic Read more: link instead of the default setting of using the Article Title. PARAMAUTHOR=Show/Hide the Article Author (only affects this page) PARAMCATEG=Show/Hide the Name of the Category the Article belongs to PARAMCATEGLINK=Make the Category Title a link to the actual Category page PARAMCREATEDATE=Show/Hide the Article Creation Date (only affects this page) PARAMEMAIL=Show/Hide the Article E-mail button (only affects this page) PARAMCONTENTLANGUAGE=The Language in which this Article is written PARAMKEYREF=A text key by which an Article may be referenced (e.g. a help reference) PARAMMODIFYDATE=Show/Hide the date upon which the Article was last modified (only affects this page). PARAMPDF=Show/Hide the PDF button (only affects this page) PARAMPRINT=Show/Hide the Print button (only affects this page) PARAMRATING=Show/Hide the Article Rating (only affects this page) PARAMSECTION=Show/Hide the title of the Section the Article belongs to PARAMSECTIONLINK=Make the Section Title a link to the actual Section page PARAMETERS - ADVANCED=Parameters (Advanced) PARAMETERS - ARTICLE=Parameters (Article) PARAMNAVIGATIONARTICLE=Shows a navigation function between Articles. PART=Part PDF ICON=PDF Icon PGB TOC ALIAS PROMPT=Table of Contents Alias: PGB PAGE TITLE=Page Title: PGB INS PAGEBRK=Insert Page Break PGB ARTICLE PAGEBRK=Article Page Break PLEASE SELECT A SECTION=Please select a Section PLEASE SELECT SOMETHING=Please select a Section/Category to move the Article(s) to. #If the variable does not work in your language use following line # PLEASE MAKE A SELECTION FROM THE LIST TO=Please select an Article from the list #instead of PLEASE MAKE A SELECTION FROM THE LIST TO=Please select an Article from the list to %s READ MORE LINK=Read more... Link READMORE=Read more... REFENTRY=Refentry REMOVE=Remove RESET HIT COUNT=Reset Hit Count REVISED=Revised ROBOTS=Robots SAMPLE IMAGE=Sample Image SECTION BLOG LAYOUT=Section Blog Layout SECTION BLOG LAYOUT DESC=Displays a list of Articles in a Section in a Blog format. SECTION NAME=Section Name SECTION NAME LINKABLE=Section Title Linkable SECTION: ALL=Section: All SELECT A SECTION=Select a Section SELECT AN ITEM TO TOGGLE=Select an item to Toggle SELECT LANGUAGE=Select Language SELECT SECTION=Select Section SELECT CATEGORY=Select Category STANDARD ARTICLE LAYOUT=Article Layout STANDARD ARTICLE LAYOUT DESC=The Article Layout displays a single Article. STANDARD CATEGORY LAYOUT=Category List Layout STANDARD CATEGORY LAYOUT DESC=This layout displays Articles in a Category. STANDARD SECTION LAYOUT= Section Layout STANDARD SECTION LAYOUT DESC=Displays a list of Categories in a Section. SHOW ARTICLE TITLE=Show Article Title SHOW INTRO TEXT=Show Intro Text SHOW NAVIGATION=Show Navigation SHOW PAGE TITLE=Show Page Title SHOW TITLE=Show Title SHOW UNAUTHORIZED LINKS=Show Unauthorised Links SHOW/HIDE THE INTRO TEXT=Show/Hide the Intro text SHOW/HIDE THE ITEMS TITLE=Show/Hide the Item's Title SHOW/HIDE THE ARTICLES TITLE=Show/Hide the Article's Title SSL ENABLED=SSL Enabled STATE=State SUB-FOLDER=Sub-folder SUCCESSFULLY RESET HIT COUNT=Successfully reset Hit count SUCCESSFULLY SAVED CHANGES TO ARTICLE=Successfully saved changes to Article: %s SUCCESSFULLY SAVED ITEM=Successfully saved Article: %s SUCCESSFULLY SAVED ARTICLE=Successfully Saved Article TIMES=Times TIPFILTERGROUPS=This sets the user groups that you want filters applied to. Other groups will have no filtering performed. TIPFILTERINGOPTIONS=Filtering options to give more control over the HTML your content providers submit. You can be as strict or as liberal as you require to suit your site needs. The filtering is opt-in and the default settings provide good protection against markup commonly associated with Web site attacks. TIPSFILTERTAGS=List additional tags, separating each tag name with a space or comma. TIPSFILTERATTRIBUTES=List additional attributes, separating each attribute name with a space or comma. TIPSFILTERTYPE=Blacklist allows all tags and attributes except for those in the blacklist.
    --The default blacklist includes the following tags: 'applet', 'body', 'bgsound', 'base', 'basefont', 'embed', 'frame', 'frameset', 'head', 'html', 'id', 'iframe', 'ilayer', 'layer', 'link', 'meta', 'name', 'object', 'script', 'style', 'title', 'xml'
    -- The default blacklist includes the following attributes:\n'action', 'background', 'codebase', 'dynsrc', 'lowsrc'
    --You can blacklist additional tags and attributes by adding to the Filter Tags and Filter Attributes fields, separating each tag or attribute name with a space or comma.

    Whitelist allows only the tags listed in the Filter Tags and Filter Attributes fields.

    No HTML removes all HTML tags from the content when it is saved.

    Please note that these settings work regardless of the editor that you are using.
    Even if you are using a WYSIWYG editor, the filtering settings may strip additional tags and attributes prior to saving information in the database. TIPSHOWFEEDITEM=Show only the Intro Text or the Full Text of the article. UNARCHIVE=Unarchive UNCATEGORIZED=Uncategorised VALIDSELECTIONLISTSENDTRASH=Please make a selection from the list to send to Trash. VALIDSELECTSECTCATCOPYITEMS=Please select a Section/Category to copy the Articles to. VALIDTRASHSELECTEDITEMS=Are you sure you want to Trash the selected Articles? This will not permanently delete the Articles. WHITE LIST=Whitelist YOU CANNOT EDIT AN ARCHIVED ITEM=You cannot edit an Archived Article. YOU MUST SELECT A CATEGORY=You must select a Category. YOU MUST SELECT A SECTION=You must select a Section. elracodelangela/administrator/language/en-GB/en-GB.com_frontpage.ini0000755000176700017710000000550511061563413026177 0ustar essawireessawire# $Id: en-GB.com_frontpage.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM AUTHOR NAMES=Author Names ARCHIVE=Archive CATEGORY NAME=Category Name CATEGORY NAME LINKABLE=Category Name Linkable CREATED DATE AND TIME=Created Date and Time EMAIL ICON=E-mail Icon FRONTPAGE ITEMS=Front Page Articles FRONTPAGE MANAGER=Front Page Manager ITEM RATING=Article Rating ITEM TITLES=Article Titles LINKED TITLES=Linked Titles MAKE YOUR ITEM TITLES LINKABLE=Make your Article Titles linkable MODIFIED=Modified MODIFIED DATE AND TIME=Modified Date and Time NUM INTRO=# Intro Num Leading=# Leading NUMBER OF ITEMS TO DISPLAY AS LINKS.=Number of Articles to display as links. ORDER ITEMS BY CATEGORY=Order Articles by Category ORDER THAT THE ITEMS WILL BE DISPLAYED IN.=The order that the Articles will be displayed in. PAGINATION=Pagination PAGINATION RESULTS=Pagination Results PARAMAUTHOR=Show/Hide the Article Author (only affects this page) PARAMCATEG=Show/Hide the Category the Article belongs to PARAMCATEGLINK=Make the Category Title a link to the actual Category page PARAMCOLUMNS=When organising the Intro Text identify how many columns to display per row. PARAMCREATEDATE=Show/Hide the Article creation date (only affects this page) PARAMEMAIL=Show/Hide the Article e-mail button (only affects this page) PARAMINTRO=Number of Articles to display with the Intro Text showing. PARAMLEADING=Number of Articles to display as a Leading (full width) Article. 0 will mean that no Articles will be displayed as Leading. PARAMMODIFYDATE=Show/Hide the Article Modification Date (only affects this page) PARAMPAGINATIONRESULTS=Show/Hide Pagination Results Info (e.g 1-4 of 4 ) PARAMPDF=Show/Hide the Item PDF button (only affects this page) PARAMPRINT=Show/Hide the Item Print button (only affects this page) PARAMRATING=Show/Hide the Item Rating (only affects this page) PARAMSECTION=Show/Hide the name of the Section the Article belongs to PARAMSECTIONLINK=Make the Section Name a link to the actual Section page #If the variable does not work in your language use following line # PLEASE MAKE A SELECTION FROM THE LIST TO=Please select an Article from the list #instead of PLEASE MAKE A SELECTION FROM THE LIST TO=Please select an Article from the list to %s PDF ICON=PDF Icon PRIMARY ORDER=Primary Order READ MORE=Read more... REMOVE=Remove SELECT A SECTION=Select a Section SECTION NAME=Section Name SECTION NAME LINKABLE=Section Name Linkable SELECT CATEGORY=Select Category SHOW/HIDE PAGINATION SUPPORT=Show/Hide Pagination support SHOW/HIDE THE ITEMS TITLE=Show/Hide the Article's Title SHOW/HIDE THE READ MORE LINK=Show/Hide the Read more... link UNCATEGORIZED=Uncategorised elracodelangela/administrator/language/en-GB/en-GB.plg_system_debug.ini0000755000176700017710000000325711061563414026713 0ustar essawireessawire# $Id: en-GB.plg_system_debug.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ALL MODES=All modes DESIGNER MODE=Designer mode DIAGNOSTIC MODE=Diagnostic mode DISPLAY LOADED LANGUAGE FILES=Display loaded language files DISPLAYS ORPHANED STRINGS IN DIFFERENT WAYS=Displays orphaned strings in different ways IF YES, DISPLAY A LIST OF THE LANGUAGE FILES LOADED=If Yes, display a list of the language files loaded. STRING FORMAT=String Format STRIP STRING PREFIX=Strip Key Prefix STRIP STRING PREFIX DESC=Strips this prefix from the actual string prior to displaying designer results DISPLAY PROFILING INFORMATION=Display Profiling Information IF YES, DISPLAY PROFILING INFORMATION=If Yes, display profiling information DISPLAY SQL QUERY LOG=Display SQL query log DISPLAY MEMORY USAGE=Display memory usage DISPLAY UNDEFINED LANGUAGE STRINGS=Display undefined language strings. IF YES, DISPLAY SQL QUERY LOG=If Yes, display SQL query log. IF YES, DISPLAY MEMORY USAGE=If Yes, display memory usage. IF YES, DISPLAY UNDEFINED LANGUAGE STRINGS=If Yes, display undefined language strings. LANGUAGE FILES LOADED=Language Files Loaded MEMORY USAGE=Memory Usage PROFILE INFORMATION=Profile Information PROVIDES DEBUG INFORMATION=Provides debug information QUERIES LOGGED=%s queries logged. LEGACY QUERIES LOGGED=%s legacy queries logged. UNTRANSLATED STRINGS=Untranslated strings UNTRANSLATED STRINGS DESIGNER=Untranslated Strings Designer UNTRANSLATED STRINGS DIAGNOSTIC=Untranslated Strings Diagnostic elracodelangela/administrator/language/en-GB/en-GB.plg_authentication_gmail.ini0000755000176700017710000000064011061563414030402 0ustar essawireessawire# $Id: en-GB.plg_authentication_gmail.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM HANDLES USER AUTHENTICATION WITH A GMAIL ACCOUNT=Handles User Authentication with a GMail account (Requires cURL) elracodelangela/administrator/language/en-GB/en-GB.plg_content_image.ini0000755000176700017710000000124211061563413027024 0ustar essawireessawire# $Id: en-GB.plg_content_image.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCIMAGE=Makes it possible to insert images in Articles, configure the image's properties and upload new image files. MARGIN=Margin UP=Up PADDING=Padding PARAMMARGIN=Margin (in pixels) of DIV surrounding image and caption (only applies if using a caption) PARAMPADDING=Padding (in pixels) of DIV surrounding tmage and caption (only applies if using a caption) IMAGE=Image elracodelangela/administrator/language/en-GB/en-GB.com_user.ini0000755000176700017710000000423111061563413025163 0ustar essawireessawire# $Id: en-GB.com_login.ini 8913 2007-09-15 11:00:25Z humvee $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ALIGNMENT FOR LOGIN IMAGE=Alignment for Login image ALIGNMENT FOR LOGOUT IMAGE=Alignment for Logout image IMAGE FOR THE LOGIN PAGE=Image for the Login page IMAGE FOR THE LOGOUT PAGE=Image for the Logout page LOGIN DESCRIPTION=Login Description LOGIN DESCRIPTION TEXT=Login Description Text LOGIN IMAGE=Login Image LOGIN IMAGE ALIGN=Login Image Align LOGIN JS MESSAGE=Login JS Message LOGIN PAGE TITLE=Login Page Title LOGIN REDIRECTION URL=Login Redirection URL LOGOUT DESCRIPTION=Logout Description LOGOUT DESCRIPTION TEXT=Logout Description Text LOGOUT IMAGE=Logout Image LOGOUT IMAGE ALIGN=Logout Image Align LOGOUT JS MESSAGE=Logout JS Message LOGOUT PAGE TITLE=Logout Page Title LOGOUT REDIRECTION URL=Logout Redirection URL PARAMETERS FOR LOGIN COMPONENT=Parameters for Login Component PARAMLOGINDESCTEXT=Text to display on the login page. If left blank, _LOGIN_DESCRIPTION will be used. PARAMLOGINJSMESSAGE=Show/Hide the JavaScript pop-up indicating login success. PARAMLOGINURL=What page Users will be redirected to after a succesful login. If left blank, the default setting is the front page. PARAMLOGOUTDESCTEXT=Text to display on the logout page. If left blank, _LOGOUT_DESCRIPTION will be used. PARAMLOGOUTJSMESSAGE=Show/Hide the JavaScript Pop-up indicating logout success PARAMLOGOUTPAGETITLE=Text to display at the top of the page. If left blank, the Menu name will be used by default. PARAMLOGOUTURL=What page Users will be redirected to after a successful logout. If left blank, the default setting is to load the front page. SHOW LOGIN PAGE TITLE=Show Login Page Title SHOW LOGOUT PAGE TITLE=Show Logout Page Title SHOW/HIDE THE LOGIN PAGE TITLE=Show/Hide the Login Page Title SHOW/HIDE THE LOGOUT PAGE TITLE=Show/Hide the Logout Page Title SHOW/HIDE THE LOGIN DESCRIPTION BELOW=Show/Hide the Login Description below SHOW/HIDE THE LOGOUT DESCRIPTION BELOW=Show/Hide the Logout Description below elracodelangela/administrator/language/en-GB/en-GB.mod_components.ini0000755000176700017710000000100511061563413026367 0ustar essawireessawire# $Id: en-GB.mod_components.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM COMPONENTS=Components FULL COMPONENT LIST=Full Component List NUMBER OF COMPONENTS TO DISPLAY=Number of Components to display THIS MODULE SHOWS A LIST OF INSTALLED COMPONENTS=This Module shows a list of installed Components elracodelangela/administrator/language/en-GB/en-GB.plg_system_backlink.ini0000755000176700017710000000251111061563414027373 0ustar essawireessawire# $Id: en-GB.plg_system_backlink.ini 2007-09-29 11:00:25Z humvee $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ATTEMPT LEGACY SEF=Attempt Legacy SEF IF YES, IT SEARCHES FOR OLD QUERY STRINGS THAT MIGHT MATCH AND REDIRECTS=If Yes is selected, the system will search for old Query Strings that might match and then redirects to it. IF YES, IT USES OLD STYLE SEF AND ATTEMPTS TO GENERATE A VALID LINK=If Yes is selected, the system will use the old style SEF format and will attempt to generate a valid link. IF YES, IT USES OLD STYLE SEF AND DIRECTS IT TO THE NEW LINK=If Yes is selected, the system will use the old style SEF format and will redirect to the new link. PROVIDES BACKLINK SUPPORT=The Backlink Plugin provides support for legacy Joomla 1.0.x links. It redirects old style URLs and document links to the correct Joomla 1.5 targets. SEARCH QUERY STRINGS=Search Query Strings SEARCH SEF=Search SEF "%s" HAS MOVED TO %s. CLICK THE LINK IF YOUR BROWSER DOES NOT REDIRECT YOU AUTOMATICALLY.="%s" has moved to %s. Click the link if your browser does not automatically redirect you. elracodelangela/administrator/language/en-GB/en-GB.com_weblinks.menu.ini0000755000176700017710000000057211061563414026773 0ustar essawireessawire# $Id: en-GB.com_weblinks.menu.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM COM_WEBLINKS=Web Links COM_WEBLINKS.LINKS=Links COM_WEBLINKS.CATEGORIES=Categories elracodelangela/administrator/language/en-GB/en-GB.plg_search_newsfeeds.ini0000755000176700017710000000073311061563414027525 0ustar essawireessawire# $Id: en-GB.plg_search_newsfeeds.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ALLOWS SEARCHING OF NEWSFEEDS=Enables searching of News Feeds NEWSFEEDS=News Feeds NUMBER OF SEARCH ITEMS TO RETURN=Number of search items to return SEARCH LIMIT=Search Limit elracodelangela/administrator/language/en-GB/en-GB.com_wrapper.ini0000755000176700017710000000060111061563413025662 0ustar essawireessawire# $Id: en-GB.com_wrapper.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM WRAPPER=Wrapper WRAPPER DESC=Displays an iframe to wrap an external page or site into Joomla! elracodelangela/administrator/language/en-GB/en-GB.mod_quickicon.ini0000755000176700017710000000150711061563414026177 0ustar essawireessawire# $Id: en-GB.mod_quickicon.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ADD NEW ARTICLE=Add New Article CATEGORY MANAGER=Category Manager ARTICLE MANAGER=Article Manager FRONTPAGE MANAGER=Front Page Manager GLOBAL CONFIGURATION=Global Configuration LANGUAGE MANAGER=Language Manager MEDIA MANAGER=Media Manager MENU MANAGER=Menu Manager MOD_QUICKICON=mod_quickicon QUICK ICONS=Quick Icons SECTION MANAGER=Section Manager THIS MODULE SHOWS QUICK ICONS THAT ARE VISIBLE ON THE ADMIN AREA HOME PAGE=This Module shows Quick Icons that are visible on the Control Panel. TRASH MANAGER=Trash Manager USER MANAGER=User Manager elracodelangela/administrator/language/en-GB/en-GB.plg_content_code.ini0000755000176700017710000000060211061563414026654 0ustar essawireessawire# $Id: en-GB.plg_content_code.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM MOSCODE=code DISPLAYS FORMATTED CODE IN CONTENT ITEMS=Displays formatted code in Articles elracodelangela/administrator/language/en-GB/en-GB.plg_system_cache.ini0000755000176700017710000000105011061563414026655 0ustar essawireessawire# $Id: en-GB.plg_system_cache.ini # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM PAGE CACHE LIFETIME IN MINUTES=Page cache lifetime in minutes CACHE LIFETIME=Cache Lifetime IF YES, USE MECHANISM FOR STORING PAGE CACHE IN THE BROWSER=If yes, use mechanism for storing page cache in the browser PROVIDES PAGE CACHING=Provides page caching USE BROWSER CACHING=Use Browser Cachingelracodelangela/administrator/language/en-GB/en-GB.plg_editors-xtd_pagebreak.ini0000755000176700017710000000071111061563414030460 0ustar essawireessawire# $Id: en-GB.plg_editors-xtd_pagebreak.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCPAGEBREAK=Provides a button to enable a pagebreak to be inserted into an Article. A popup allows you to configure the settings to be used. elracodelangela/administrator/language/en-GB/en-GB.com_cpanel.ini0000755000176700017710000000043011061563414025445 0ustar essawireessawire# $Id: en-GB.com_cpanel.ini $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM CONTROL PANEL=Control Panelelracodelangela/administrator/language/en-GB/en-GB.mod_popular.ini0000755000176700017710000000104311061563413025666 0ustar essawireessawire# $Id: en-GB.mod_popular.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM CREATED=Created MOD_POPULAR=mod_popular MOST POPULAR ITEMS=Most Popular Articles DESCPOPULARITEMS=This Module shows a list of the popular published Articles that are still current. Some that are shown may have expired even though they are the most popular. elracodelangela/administrator/language/en-GB/en-GB.tpl_rhuk_milkyway.ini0000755000176700017710000000202111061563413027120 0ustar essawireessawire# $Id: en-GB.tpl_rhuk_milkyway.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM COLOR VARIATION=Color Variation COLOR VARIATION TO USE=Color variation to use BACKGROUND VARIATION=Background Variation BACKGROUND COLOR VARIATION TO USE=Background color variation to use. TEMPLATE WIDTH=Template Width WIDTH STYLE OF THE TEMPLATE=Select the method for the width style of the template from the dropdown. FLUID=Fluid FLUID WITH MAXIMUM=Fluid with maximum MEDIUM=Medium SMALL=Small BLUE=Blue RED=Red GREEN=Green WHITE=White BLACK=Black ORANGE=Orange RHUK_MILKYWAY=RHUK Milkyway template SHOW COMPONENT=Show Component SHOW/HIDE THE COMPONENT OUTPUT=Select whether to display the Component output. TPL_RHUK_MILKYWAY=MilkyWay is a fresh new template for Joomla!. The clean design of this template makes it very lightweight and fast. elracodelangela/administrator/language/en-GB/en-GB.tpl_beez.ini0000755000176700017710000000074511061563414025162 0ustar essawireessawire# $Id: en-GB.tpl_beez.ini 1.5.0 2007-04-13 11:55:43 ff 0$ # author Joomla! Project # copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL # Note : All ini files need to be saved as UTF-8 - No BOM HEADER LEVEL COMPONENT=Header level Component HEADER LEVEL PAGE TITLE=Header level page title H1=H1 H2=H2 H3=H3 H4=H4 H5=H5 BEEZ=Beez ACCESSIBLE TEMPLATE FOR JOOMLA 1.5=Accessible template for Joomla! 1.5 elracodelangela/administrator/language/en-GB/en-GB.com_languages.ini0000755000176700017710000000221511061563414026154 0ustar essawireessawire# $Id: en-GB.com_languages.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ADMINISTRATOR=Administrator DESCFTP=For setting Languages as default, Joomla! will most likely need your FTP account details. Please enter them in the form fields below. DESCFTPTITLE=FTP Login Details IS=is JCLIENTHELPER::SETCREDENTIALSFROMREQUEST FAILED=Unable to connect to the server with the given credentials. LANGUAGE EDITOR=Language Editor LANGUAGE MANAGER=Language Manager OPERATION FAILED: CONTENT EMPTY.=Operation failed! Content empty. OPERATION FAILED: COULD NOT OPEN=Operation Failed! Could not open %s OPERATION FAILED: NO LANGUAGE SPECIFIED.=Operation failed! No Language specified. OPERATION FAILED: THE FILE IS NOT WRITABLE.=Operation failed! The file is not writable. SIZE=Size WARNOPENFILE=Operation failed! Failed to open the file for writing. WRITABLE=Writable YOU CAN NOT DELETE LANGUAGE IN USE.=You can not delete because this language is in use. elracodelangela/administrator/language/en-GB/en-GB.com_users.ini0000755000176700017710000000755011061563414025356 0ustar essawireessawire# $Id: en-GB.com_users.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM BACK-END LANGUAGE=Back-end Language BLOCK USER=Block User BLOCKED=Blocked CANNOT SAVE THE USER INFORMATION=Cannot save the user information CHANGE CONTACT DETAILS=Change Contact Details CONTACT INFORMATION=Contact Information COMPONENTS -> CONTACT -> MANAGE CONTACTS=Components -> Contact -> Manage Contacts DELETE=Delete E-MAIL=E-Mail EDIT=Edit FRONT-END LANGUAGE=Front-end Language HELP SITE=Help Site HELP SITE FOR THIS USER=Help Site for this User IMAGE=Contact Image LAST VISIT=Last Visit LAST VISIT DATE=Last Visit Date LOGGED IN=Logged In LOGOUT=Logout MISC=Miscellaneous
    Information NEVER=Never NEW PASSWORD=New Password NEW_USER_MESSAGE=Hello %s,\n\n\nYou have been added as a User to %s by an Administrator.\n\nThis e-mail contains your username and password to log in to %s\n\nUsername: %s\nPassword: %s\n\n\nPlease do not respond to this message as it is automatically generated and is for information purposes only. NEW_USER_MESSAGE_SUBJECT=New User Details NO CONTACT DETAILS LINKED TO THIS USER=No Contact details linked to this User NOTICE=Notice PARAMADMINLANGUAGE=Select the Language for the Administrator Back-end interface. This will only affect this User. PARAMLANGUAGE=Select the Language for the Front-end interface. This will only affect this User. PASSWORD DO NOT MATCH.=Passwords Do Not Match. #If the variable does not work in your language use following line # PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a User from the list #instead of PLEASE MAKE A SELECTION FROM THE LIST TO=Please select a User from the list to %s PLEASE SELECT A USER=Please select a User POSITION=Position RECEIVE SYSTEM EMAILS=Receive System E-mails REGISTER DATE=Register Date SEECOMPCONTACTFORDETAILS=See Components ⇒Contact⇒ Manage Contacts for details SELECT A USER TO DELETE=Select a User to delete SELECT AN ITEM TO=Select a User to SELECT EDITOR=Select Editor SELECT LANGUAGE=Select Language SELECT GROUP=Select Group SELECT LOG STATUS=Select Log Status SUCCESSFULLY SAVED CHANGES TO USER=Successfully saved changes to User: %s SUCCESSFULLY SAVED USER=Successfully saved User: %s TIME ZONE FOR THIS USER=Time Zone for this User USER DELETED=User successfully deleted. USER DETAILS=User Details USER EDITOR=User Editor USER MANAGER=User Manager USERS=Users USER SESSION ENDED=User session ended. VERIFY PASSWORD=Verify Password WARN_ONLY_SUPER=You cannot change this User's Group because the User is the only active Super Administrator for your site. WARNDELETE=You cannot delete another Administrator. Only Super Administrators have this ability. WARNLOGININVALID=Your username contains invalid characters or is too short. WARNREG_EMAIL_INUSE=This e-mail address is already registered. WARNREG_MAIL=Please enter a valid e-mail address. WARNREG_INUSE=This username is already in use. WARNSELECTPB=Please select another Group. Public Back-end is not a selectable option. WARNSELECTPF=Please select another Group. Public Front-end is not a selectable option. WARNSUPERADMINCREATE=You cannot create a User with this User Group level. Only Super Administrators have this ability. WYSIWYG EDITOR FOR THIS USER=WYSIWYG Editor for this User YOU CANNOT DELETE A SUPER ADMINISTRATOR=You cannot delete a Super Administrator. YOU CANNOT BLOCK A SUPER ADMINISTRATOR=You cannot block a Super Administrator. YOU CANNOT DELETE YOURSELF!=You cannot delete Yourself! YOU MUST ASSIGN USER TO A GROUP.=You must assign the User to a Group. YOU MUST PROVIDE A NAME.=You must provide a name. YOU MUST PROVIDE A USER LOGIN NAME.=You must provide a User Login Name. YOU MUST PROVIDE AN EMAIL ADDRESS.=You must provide an e-mail address. elracodelangela/administrator/language/en-GB/en-GB.mod_custom.ini0000755000176700017710000000060311061563414025520 0ustar essawireessawire# $Id: en-GB.mod_custom.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCMODCUSTOM=This Module allows you to type in HTML using a WYSIWYG editor MOD_CUSTOM=mod_custom elracodelangela/administrator/language/en-GB/en-GB.mod_online.ini0000755000176700017710000000071411061563414025475 0ustar essawireessawire# $Id: en-GB.mod_online.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM MOD_ONLINE=mod_online THIS MODULE SHOWS A LIST OF THE BACKEND USERS LOGGED IN=This Module shows a list of the Back-end Users that are logged in. USERS ONLINE=Users Online elracodelangela/administrator/language/en-GB/en-GB.xml0000755000176700017710000000166311061563414023400 0ustar essawireessawire English(United Kingdom) 1.5.7 2008-03-15 Joomla! Project admin@joomla.org www.joomla.org Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL English (United Kingdom) en-GB 0 en_GB.utf8, en_GB.UTF-8, en_GB, eng_GB, en, english, english-uk, uk, gbr, britain, england, great britain, uk, united kingdom, united-kingdom iso-8859-1 english elracodelangela/administrator/language/en-GB/en-GB.com_plugins.ini0000755000176700017710000000210511061563414025665 0ustar essawireessawire# $Id: en-GB.com_plugins.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM FOLDER=Folder PLUGIN=Plugin PLUGIN DETAILS=Plugin Details PLUGIN FILE=Plugin File PLUGIN MANAGER=Plugin Manager PLUGIN MUST HAVE A FILENAME=Plugin must have a Filename PLUGIN MUST HAVE A NAME=Plugin must have a name PLUGIN NAME=Plugin Name PLUGIN PARAMETERS=Plugin Parameters PUBLISH=Enable PUBLISH ITEM=Enable Plugin PUBLISHED=Enabled NO PARAMETERS=No Parameters SELECT A PLUGIN TO=Select a Plugin to SELECT TYPE=Select Type SITE=Site SITE PLUGIN=Site Plugin SUCCESSFULLY SAVED CHANGES TO PLUGIN=Successfully saved changes to Plugin: %s SUCCESSFULLY SAVED PLUGIN=Successfully saved Plugin: %s THERE ARE NO PARAMETERS FOR THIS ITEM=There are no Parameters for this Plugin THIS PLUGIN CANNOT BE REORDERED=This Plugin cannot be reordered UNPUBLISH=Disable UNPUBLISH ITEM=Disable Plugin UNPUBLISHED=Disabledelracodelangela/administrator/language/en-GB/en-GB.mod_logged.ini0000755000176700017710000000102611061563414025447 0ustar essawireessawire# $Id: en-GB.mod_logged.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM CLIENT=Client FORCE LOGOUT USER=Force Logout User MOD_LOGGED=mod_logged THIS MODULE SHOWS A LIST OF THE CURRENTLY LOGGED IN USERS=This Module shows a list of the currently Logged In Users LAST ACTIVITY=Last Activity ACTIVITY HOURS=%.1f hours ago elracodelangela/administrator/language/en-GB/en-GB.com_menus.ini0000755000176700017710000003762211061563414025347 0ustar essawireessawire# $Id: en-GB.com_menus.ini 10572 2008-07-21 01:52:00Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM A DESCRIPTION FOR THE MENU=A description for the Menu A PROPER TITLE FOR THE MENU=A proper title for the Menu ADVANCED PARAMETERS=Advanced Parameters ALIAS=Alias ALIGNMENT OF THE IMAGE=Alignment of the image ALL CATEGORIES=All Categories ALL SECTIONS=All Sections AN ARTICLE=An Article ARTICLE=Article ARCHIVE=Archive ARCHIVED ARTICLE LIST LAYOUT DESC=The Archived Article Layout displays Articles that have been Archived and is searchable by date. ARTICLES COLUMN=Articles Column AUTHOR ALPHABETICAL=Author - Alphabetical AUTHOR NAMES=Author Name AUTHOR REVERSE-ALPHABETICAL=Author - Reversed Alphabetical AUTO=Auto AUTO ADD=Auto Add AUTO HEIGHT=Auto Height ATOM=ATOM BASIC PARAMETERS=Basic Parameters BLOG=Blog CANNOT SAVE: EMPTY MENU TYPE=Cannot Save: Empty Menu Type CATEGORY DESCRIPTION=Category Description CATEGORY LIST - SECTION=Category List - Section CATEGORY NAME=Category Title CATEGORY NAME LINKABLE=Category Title Linkable CATEGORY ORDER=Category Order CHANGE MENU ITEM=Change Menu Item CHANGE TYPE=Change Type CHOOSE A CATEGORY...=Choose a Category... CHOOSE A SECTION...=Choose a Section... CID=CID COLUMNS=Columns COMPLETE RESET LAYOUT=Complete Reset Layout COMPLETE RESET LAYOUT DESC=Create a Completed Password Reset Layout View COMPONENT PARAMETERS=Component Parameters COMPONENTS=Components CONFIRM RESET LAYOUT=Confirm Reset Layout CONFIRM RESET LAYOUT DESC=Create a Confirmed Password Reset Layout view CONTACT TO LINK=Contact to Link CONTENT TO LINK=Content to Link COPY OF MENU CREATED=A Copy of Menu '%s' created containing of %s Menu Item(s) COPY MENU=Copy Menu COPY MENU ITEMS=Copy Menu Item(s) COPY TO MENU=Copy to Menu CREATED DATE AND TIME=Created Date and Time DATE COLUMN=Date Column DATE FORMAT=Date Format DEFAULT ITEM LABEL=Default Menu Item DEFAULT ITEM DESC=The Default Menu Item DEFAULT LOGIN LAYOUT DESC=Create a Default User Login Layout view DEFAULT LOGIN LAYOUT=Default Login Layout DEFAULT REMIND LAYOUT=Default Remind DEFAULT REMIND LAYOUT DESC=Create a Default Username Reminder Layout view DEFAULT RESET LAYOUT=Default Reset Layout DEFAULT RESET LAYOUT DESC=Create a Default Password Reset Layout view DEFAULT MENU ITEM SET=Default Menu Item Set DEFAULT REGISTER LAYOUT=Default Registration Layout DEFAULT REGISTER LAYOUT DESC=Create a Default User Registration Layout view DEFAULT USER LAYOUT=Default User Layout DEFAULT USER LAYOUT DESC=This layout displays a greeting message when the User accesses the registered zone. It is only associated with the mod_login module. The actual message can be edited in the WELCOME_DESC key of com_user.ini site language file). DELETE MENU=Delete Menu DESCNEWITEMSLAST=New Menu Items default to the last position. Ordering can be changed after this Menu Item is saved. DESCRIPTION FOR PAGE=Description for page DESCRIPTION IMAGE=Description Image DESCRIPTION TEXT=Description Text DISPLAY IN=Display in DISPLAY SELECT=Display Select EDIT MENU=Click to Edit this Menu Item EDIT MENU ITEMS=Edit Menu Item(s) EDIT MENU NAME=Edit Menu Title ELEMENT NOT DEFINED FOR TYPE=Element not defined for Menu Type EMAIL ICON=E-mail Icon EMPTY CATEGORIES=Empty Categories EMPTY CATEGORIES IN SECTION=Empty Categories in Section ERROR SAVING MENU ITEM=Error Saving Menu Item ERRORMENUNAMEEXISTS=A Menu already exists with that unique name. You must enter a unique name. EXTERNAL LINK=External Link EXTERNAL LINK PARAMETERS...=Create a Menu Item that links to another Web site. FEED DESCRIPTION=Feed Description FILTER FIELD=Filter Field FORM=Form FRONTPAGE=Front Page HEIGHT=Height HITS=Hits ICON=Icon IMAGE ALIGN=Image Align INACTIVE=Inactive INTERNAL LINK=Internal Link INVALID ID PROVIDED=Invalid ID provided ITEM DESCRIPTION=Item Description ITEM MUST HAVE A TITLE=Item must have a Title ITEM RATING=Item Rating ITEM TITLES=Item Titles ITEM(S) SENT TO THE TRASH=%s Item(s) sent to the Trash. ITEMID=ItemID LAYOUT=Layout LEAST HITS=Least Hits LINK=Link LINK DESCRIPTIONS=Link Descriptions LINKED TITLES=Linked Titles MAKE YOUR ITEM TITLES LINKABLE=Make your Item Titles linkable MAX LEVELS=Max Levels MENU=Menu MENU BEING COPIED=Menu being Copied MENU DETAILS=Menu MENU ITEM=Menu Item MENU ITEM DETAILS=Menu Item Details MENU ITEM MOVED DOWN=Menu Item moved down MENU ITEM MOVED UP=Menu Item moved up MENU ITEM PARAMETERS=Menu Item Parameters MENU ITEM SAVED=Menu Item Saved MENU ITEM TYPE=Menu Item Type MENU ITEM TO LINK TO...=Menu Item to Link to... MENU ITEMS=Menu Item(s) MENU ITEMS & MODULES UPDATED=Menu Item(s) and Modules updated MENU ITEMS BEING COPIED=Menu Item(s) being copied MENU ITEMS BEING DELETED=Menu Item(s) being deleted MENU ITEMS BEING MOVED=Menu Item(s) being moved MENU ITEMS COPIED TO=%s Menu Item(s) copied to %s MENU ITEMS MOVED TO=%s Menu Item(s) moved to %s MENU ITEMS PUBLISHED=%s Menu Item(s) published MENU ITEMS SET PUBLIC=%s Menu Item(s) set to Public access MENU ITEMS SET REGISTERED=%s Menu Item(s) set to Registered access MENU ITEMS SET SPECIAL=%s Menu Item(s) set to Special access MENU ITEMS UNPUBLISHED=%s Menu Item(s) unpublished MENU LINK=Menu Link MENU LINK PARAMETERS...=This Menu Item creates a Link to an existing Menu Item. It will take the parameter setup of the target Menu Item. MENU TYPE=Unique Name MENUS=Menus MISCELLANEOUS=Miscellaneous MODIFIED DATE AND TIME=Modified Date and Time MODULE TITLE=Module Title MODULE(S) BEING DELETED=Module(s) being deleted MODULE NAME=Module Name MOD_MENU=mod_menu MOST HITS=Most Hits MOST RECENT FIRST=Most recent first MOVE TO MENU=Move to Menu NAME COLUMN=Name Column NEW MENU=New Menu NEW MENU CREATED=New Menu created [%s] NEW MENU NAME=New Menu Title NEW MODULE NAME=New Module Name NUM MODULES=# Modules NO, ORDER BY PRIMARY ORDER ONLY=No, Order by Primary Order Only NUM ARTICLES COLUMN=# Articles Column NUM CATEGORY ITEMS=# Category Items NUM INTRO=# Intro NUM LEADING=# Leading NUMBER OF ITEMS TO DISPLAY AS LINKS.=Number of Items to display as Links. OLDEST FIRST=Oldest first ON CLICK, OPEN IN=On Click, Open in OPML=OPML ORDER BY=Order ORDER ITEMS BY CATEGORY=Order Items by Category ORDER THAT THE ITEMS WILL BE DISPLAYED IN.=Order that the Items will be displayed in. OTHER=Other OTHER CATEGORIES=Other Categories PAGINATION=Pagination PAGINATION RESULTS=Pagination Results PARAMADD=By default, http:// will be added unless it detects http:// or https:// in the URL you provide. This allows you to switch off this functionality. PARAMETERS - ADVANCED=Parameters Advanced PARAMARTICLES=Show/Hide the # of Articles in the Feed PARAMAUTHOR=Show/Hide the name of the Article Author (only affects this page) PARAMHORIVERT=Show/Hide the horizontal & vertical scrollbars. PARAMCATDESC=Show/Hide the Category Description PARAMCATEG=Show/Hide the Category the Item belongs to PARAMCATEGLINK=Make the Category Title a Link to the actual Category page PARAMCATITEMS=Show/Hide the number of Items in each Category PARAMCATLIST=Show/Hide the List of Categories in list view page PARAMCATLISTCAT=Show/Hide the List of Categories in table view page PARAMCOLUMNS=When displaying the Intro text, set how many columns to use per row PARAMSHOWHIDE=Show/Hide the Category Description. It will appear below the Category Name. PARAMSHOWHIDELINKS=Show/Hide the description text of the Links PARAMCREATEDATE=Show/Hide the Item Creation Date (only affects this page) PARAMDATEFORMAT=The format of the date displayed (using PHPs strftime command Format). If left blank, it will load the format from your language file. PARAMEMAIL=Show/Hide the Item E-mail button (only affects this page) PARAMFEEDDESC=Show/Hide the description text of the Feed PARAMHEIGHT=Height of the IFrame window PARAMHEIGHTAUTO=The height will automatically be set to the size of the external page. This will only work for pages on your own domain. If you see a JavaScript error, make sure this parameter is disabled. This will break XHTML compatibility for this page. PARAMIMAGE=The image for this page must be located in the /images/stories folder. Select the required image from the dropdown list. To display no image, select None Selected. PARAMINTRO=Number of Articles to display with the Intro text shown. PARAMITEMDESC=Show/Hide the description or Intro text of an Article. PARAMLEADING=Number of Articles to display as a leading (full width) Article. 0 will mean that no Articles will be displayed as leading. PARAMMODIFYDATE=Show/Hide the Item Modification Date (only affects this page) PARAMORDERBY=This overrides the Ordering of the Items. PARAMORDERBYSEC=Order that the Items will be displayed in. PARAMOTHERCAT=Show/Hide the Description for the list of other Categories PARAMOTHERCATSECTION=Show/Hide the List of Categories in list view page PARAMTABLECATSEC=Show/Hide the List of Categories in table view page PARAMPAGINATIONRESULTS=Show/Hide Pagination Results Information ( e.g 1-4 of 4 ) PARAMPDF=Show/Hide the Item PDF button (only affects this page) PARAMPRINT=Show/Hide the Item Print button (only affects this page) PARAMRATING=Show/Hide the Item Rating (only affects this page) PARAMSECTIONLINK=Make the Section Title a link to the actual Section page PARAMSECURE=Selects whether or not this link should use SSL and the Secure Site URL PARAMSHOWFEEDLINK=Select whether or not the Feed Links will be displayed. PARAMSPECCAT=Shows Contacts only from the selected Category PARAMWIDTH=Width of the iframe window. You can enter an absolute figure in pixels or a relative figure by adding a %. PARAMWORDCOUNT=Allows you to limit the amount of visible Item description text. 0 will show all the text. PARAMWHENVIEWCAT=When viewing a Category, Show/Hide the list of other Categories PARAMETERS - BASIC=Parameters (Basic) PARAMETERS - COMPONENT=Parameters (Component) PARAMETERS - SYSTEM=Parameters (System) PDF ICON=PDF Icon PLEASE ENTER A MENU NAME=Please enter a Unique Name for your Menu PLEASE ENTER A MODULE NAME FOR YOUR MENU=Please enter a Module Title for your Menu PLEASE ENTER A NAME FOR THE COPY OF THE MENU=Please enter a title for the copy of the Menu. PLEASE ENTER A NAME FOR THE NEW MODULE=Please enter a title for the new Module. PLEASE SELECT A CATEGORY=Please select a Category PLEASE SELECT AN ARTICLE=Please select an Article POLL=Poll PRIMARY ORDER=Primary Order READ MORE=Read more... RSS=RSS SCROLL BARS=Scrollbars SEARCH=Search SECTION NAME=Section Title SECTION NAME LINKABLE=Section Title Linkable SECTION TITLE=Section Title SELECT=Select SELECT AN ARTICLE=Select an Article SELECT ARTICLE=Select Article SELECT ITEM=Select Item SELECT MENU ITEM TYPE=Select Menu Item Type SEPARATOR=Separator SEPARATOR PARAMETERS...=This Menu Item creates a Menu Placeholder or a Separator within the Menu.
    Use to break up long Menus or to add temporary Menu Items to aid visualisation of the Menu. SHOW AUTHOR=Show Author SHOW CREATED DATE AND TIME=Show Created Date and Time SHOW A FEED LINK=Show a Feed Link SHOW THE SEARCH AREAS CHECKBOXES=Show the search areas check boxes SHOW/HIDE EMPTY(NO ITEMS) CATEGORIES=Show/Hide Empty(no Items) Categories SHOW/HIDE EMPTY(NO ITEMS) CATEGORIES IN SECTION VIEW=Show/Hide Empty(no Items) Categories in Section view SHOW/HIDE PAGINATION SUPPORT=Show/Hide Pagination support SHOW/HIDE THE CATEGORY DESCRIPTION=Show/Hide the Category Description SHOW/HIDE THE DATE COLUMN=Show/Hide the Date column SHOW/HIDE THE DESCRIPTION BELOW=Show/Hide the Description below SHOW/HIDE THE DISPLAY SELECT DROPDOWN=Show/Hide the Display Select dropdown SHOW/HIDE THE FEED LINK COLUMN=Show/Hide the Feed Link column SHOW/HIDE THE FEED NAME COLUMN=Show/Hide the Feed Name column SHOW/HIDE THE FILTER ABILITY=Show/Hide the Filter availability SHOW/HIDE THE IMAGE OF THE FEED=Show/Hide the image of the Feed SHOW/HIDE THE ITEMS TITLE=Show/Hide the Item Title SSL ENABLED=SSL Enabled STEP=Step SUBMIT=Submit TABLE HEADINGS=Table Headings TELEPHONE COLUMN=Telephone Column THE DEFAULT MENU ITEM MUST BE PUBLISHED=The default menu item must be published. THE MENU NAME CANNOT CONTAIN A '=The Menu Name cannot contain a ' character. THERE ARE NO PARAMETERS FOR THIS ITEM=There are no Parameters for this Menu Item THERE ARE NO ADVANCED PARAMETERS FOR THIS ITEM=There are no Advanced Parameters for this Menu Item TIPLINKS=If Yes, it will show links to Registered content even if you are not logged in. The User will need to Login to see the full Article. TIPIFYESTITLECONTENTITEMS=If Yes, the Title of Articles will be hyperlinked to the Article itself. TIPIFSETTOSHOWAUTHOR=If set to Show, the Name of the Author will be displayed. This a global setting but can be changed at Menu and Item levels. TIPIFSETTOSHOWDATETIMECREATED=If set to Show, the Date and Time an Article was created will be displayed. This a global setting but can be changed at Menu and Item levels. TIPIFSETTOSHOWDATETIMEMODIFIED=If set to Show, the date and time an Article was last modified will be displayed. This a global setting but can be changed at Menu and Item levels. TIPIFSETTOSHOWREADMORELINK=If set to Show, the Read more... link will show if Main text has been created for the Article. TIPIFSETTOSHOWVOTING=If set to Show, a Voting system will be enabled for Articles TIPPRINTPDFEMAIL=Print, PDF, and E-mail will utilise Icons or Text TIPIFSETTOSHOWHITS=If set to Show, the hits for a particular Article will be displayed. This a global setting but can be changed at Menu and Article levels. TIPNAMEUSEDTOIDENTIFYMENU=This is the name used by Joomla! to identify this Menu within the code so it must be unique. We recommend that you do not have any spaces in your unique name TIPPARAMLISTMENUITEM=Parameter list will be available once you save this new Menu Item. TIPTITLEMAINMENUMODULEREQUIRED=Title that will be given to the mod_mainmenu Module in the Module Manager. If left blank, a Module will not be created and the Menu will not be available for display in the Front-end. TITLE ALPHABETICAL=Title (Alphabetical) TITLE REVERSE-ALPHABETICAL=Title (Reverse Alphabetical) TYPE=Type TYPEARTICLAYDESC=Choose an Article view Layout. TYPEARCHLAYDESC=Choose an Archive view Layout. TYPECATEGLAYDESC=Choose a Category view Layout. TYPECATEGORIESDESC=This View shows all Web Link Categories TYPECATEGORYDESC=This view shows a Web Link Category TYPEFRONTLAYDESC=Front Page is a specialised view of the Articles Component that shows specially selected Articles that have been set to Show on the Front Page. TYPELOGINDESC=Choose a Login view Layout TYPEREGISTERDESC=Create a new Registration form layout TYPEREMINDDESC=Create a new password Reminder form layout TYPERESETDESC=Create a new password Reset form layout TYPESECTLAYDESC=Choose a Section view Layout. TYPEPOLLDESC=Create a new Poll view Layout. TYPESEARCHDESC=Create a new Search view Layout. TYPEUSERDESC=Create new User associated view layouts TYPEWEBLINKDESC=This view displays a single Web Link layout TYPEWRAPPERDESC=This view displays a Wrapper layout URL TO OPEN IN AN IFRAME=URL to open in an IFrame USE SEARCH AREAS=Use Search Areas USER FORM LAYOUT=User Form Layout USER FORM LAYOUT DESC=This layout allows a User to edit their account details, choose a new password, language preference for both back-end and front-end, and also their time zone.
    Users with publishing permissions will also be able to choose a text editor.
    Users with administrator permissions will be able to choose what Help Site they prefer on the back-end. USER SELF-MANAGEMENT=User Self-Management VIEW MENUS=View Menus VIEW MENU ITEMS=View Menu Item(s) WEB LINK=Web Link WHICH FIELD SHALL THE FILTER APPLY TO=Select which field the filter will be applied to WORD COUNT=Word Count WRAPPER=Wrapper WRAPPER URL=Wrapper URL YOU CANNOT TRASH THE DEFAULT MENU ITEM=You cannot trash the default menu item. YOU CANNOT UNPUBLISH THE DEFAULT MENU ITEM=You cannot unpublish the default menu item. ARTICLE ORDER=Article Order ORDER THAT THE ARTICLES WILL BE DISPLAYED IN.=Order in which Articles will be displayed. elracodelangela/administrator/language/en-GB/en-GB.tpl_khepri.ini0000755000176700017710000000165311061563413025515 0ustar essawireessawire# $Id: en-GB.tpl_khepri.ini 8057 2007-07-18 15:05:56Z humvee $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ADMINISTRATION TEMPLATE FOR JOOMLA! 1.5=Khepri is a fresh new template for the Joomla! Administrator Back-end. The clean design of this template makes it very lightweight and fast.

    NuoveXT Icons: Copyright Alexandre Moore (Saki), license GNU General Public License (GPL) ENABLE/DISABLE ROUNDED CORNER EFFECT=Enable or disable the rounded corner effect for the template. HEADER COLOR=Header Color KHEPRI=Khepri SHOW SITE NAME=Show Site Name SHOW THE SITE NAME IN THE TEMPLATE HEADER=Show the site name in the template header THE COLOR OF THE BAR UNDER THE HEADER=The color of the bar under the header USE ROUNDED CORNERS=Use Rounded Corners elracodelangela/administrator/language/en-GB/en-GB.com_trash.ini0000755000176700017710000000306211061563413025327 0ustar essawireessawire# $Id: en-GB.com_trash.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM PERMDELETETHESEITEMS=* This will Permanently Delete
    these Items from the Database * RESTOREITEMS=* This will Restore these Items, DELETE=Delete DELETE ITEMS=Permanently Delete Items ITEM(S) SUCCESSFULLY DELETED=%s Item(s) permanently deleted. ITEM(S) SUCCESSFULLY RESTORED=%s Item(s) successfully restored. ITEMS BEING DELETED=Items being deleted ITEMS BEING RESTORED=Items being restored MENU=Menu MENU ITEMS=Menu Items NUMBER OF ITEMS=Number of Items PARAMTRASH=This Component manages the Trash functionality. #If the variable does not work in your language use following line # PLEASE MAKE A SELECTION FROM THE LIST TO=Please select an Item from the list #instead of PLEASE MAKE A SELECTION FROM THE LIST TO=Please select an Item from the list to %s PERMANENTLY DELETE=Permanently Delete RESTORE ITEMS=Restore Items TIPWILLBERETURNED=they will be returned to their original places as unpublished Items. * TRASH MANAGER=Trash Manager UNCATEGORIZED=Uncategorised WARNRESTORE=Are you sure you want to restore the listed Items? WARNWANTDELLISTEDITEMS=Are you sure you want to delete the listed Items?
    This will Permanently Delete them from the database. elracodelangela/administrator/language/en-GB/en-GB.com_admin.ini0000755000176700017710000000332611061563414025302 0ustar essawireessawire# $Id: en-GB.com_admin.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM CACHE DIRECTORY=Cache Directory CHANGELOG=Changelog CLEAR RESULTS=Clear Results CONFIGURATION FILE=Configuration File CONTROL PANEL=Control Panel CREDITS=Credits DATABASE COLLATION=Database Collation DATABASE VERSION=Database Version DESCDIRWRITABLE=For all Joomla! functions and features to work properly, all of the following directories should be writable: DIRECTORY=Directory DISABLED FUNCTIONS=Disabled Functions DISPLAY ERRORS=Display Errors FILE UPLOADS=File Uploads GLOSSARY=Glossary ICONV AVAILABLE=Iconv Available INDEX=Index INFORMATION=Information LATEST VERSION CHECK=Latest Version Check LICENSE=License MAGIC QUOTES=Magic Quotes MBSTRING ENABLED=Mbstring Enabled JOOMLA! VERSION=Joomla! Version OPEN BASEDIR=Open basedir OPEN IN NEW WINDOW=Open in new Window OUTPUT BUFFERING=Output Buffering PHP BUILT ON=PHP Built on PHP INFO=PHP Info PHP INFORMATION=PHP Information PHP SETTINGS=PHP Settings PHP VERSION=PHP Version REGISTER GLOBALS=Register Globals RELEVANT PHP SETTINGS=Relevant PHP Settings SAFE MODE=Safe Mode SESSION AUTO START=Session Auto Start SESSION SAVE PATH=Session Save Path SETTING=Setting SHORT OPEN TAGS=Short Open Tags SITE PREVIEW=Site Preview STATUS=Status SUPPORT=Support SYSTEM INFO=System Info SYSTEM INFORMATION=System Information USER AGENT=User Agent VALUE=Value WEB SERVER=Web Server WEBSERVER TO PHP INTERFACE=Web Server to PHP interface WYSIWYG EDITOR=WYSIWYG Editor XML ENABLED=XML Enabled ZLIB ENABLED=Zlib Enabled elracodelangela/administrator/language/en-GB/en-GB.mod_submenu.ini0000755000176700017710000000063311061563413025666 0ustar essawireessawire# $Id: en-GB.mod_submenu.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM MOD_SUBMENU=mod_submenu THIS MODULE SHOWS THE SUBMENU NAVIGATION MODULE=This Module shows the sub-Menu Navigation Module elracodelangela/administrator/language/en-GB/en-GB.com_massmail.ini0000755000176700017710000000210711061563414026014 0ustar essawireessawire# $Id: en-GB.com_massmail.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM ALL USER GROUPS=All User Groups BODYSUFFIXTIP=This gets added after the mail text DESCMASSMAIL=This Component allows you to send a mass e-mail to certain User Groups E-MAIL SENT TO=E-mail sent to %s Users GROUP=Group MAILBODY SUFFIX=Mailbody Suffix MAIL TO CHILD GROUPS=Mail to Child Groups MASS MAIL=Mass Mail PLEASE FILL IN THE FORM CORRECTLY=Please fill in the form correctly PLEASE FILL IN THE SUBJECT=Please enter a subject PLEASE FILLIN THE MESSAGE=Please enter a message PLEASE SELECT A GROUP=Please select a Group RECIPIENTS AS BCC=Recipients as BCC.
    Adds copy to site e-mail. SEND AS BLIND CARBON COPY=Hides recipient list. SEND IN HTML MODE=Send in HTML mode SEND MAIL=Send mail SUBJECT PREFIX=Subject Prefix SUBJECTPREFIXTIP=This gets added in front of each mail subject USERS=Users elracodelangela/administrator/language/en-GB/en-GB.tpl_ja_purity.ini0000755000176700017710000000517311061563413026242 0ustar essawireessawire# $Id: en-GB.tpl_ja_purity.ini 10496 2008-07-03 07:08:39Z ircmaxell $ # Joomla! Project # Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 JA PURITY DESCRIPTION=JA Purity designed by JoomlArt.com: A highly accessible, elegant and easy template customization. LOGO TYPE=Logo type LOGO TYPE DESCRIPTION=If you don't want to use a logo picture located in <b>templates/this template/images/logo.gif</b>, use the pre-styled text. IMAGE=Image TEXT=Text LOGO TEXT=Logo text LOGO TEXT DESCRIPTION=If Logo_type is Text, please fill in your logo text here. Blank to use your site name SLOGAN=Slogan SLOGAN DESCRIPTION=If Logo_type is Text, the slogan will be shown under the Logo Text FONT SIZE=Font size FONT SIZE DESCRIPTION=Web site default font size TEMPLATE WIDTH=Template Width TEMPLATE WIDTH DESCRIPTION=Width of the template. Auto for fluid. AUTO=Auto (fluid) NARROW SCREEN=Narrow Screen WIDE SCREEN=Wide Screen SPECIFIED PERCENTAGE=Specified in percentage (fluid) SPECIFIED PIXEL=Specified in pixels SPECIFIED WIDTH=Specified width SPECIFIED WIDTH DESCRIPTION=If Template_Width is specified (in percentage or in pixels), add the number here HEADER THEMES=Header Themes HEADER THEMES DESCRIPTION=Support 3 built-in themes BACKGROUND THEMES=Background Themes BACKGROUND THEMES DESCRIPTION=Page background themes PRIMARY ELEMENTS=Primary Elements PRIMARY ELEMENTS DESCRIPTION=Page primary elements themes HORIZONTAL NAVIGATION=Horizontal Navigation HORIZONTAL NAVIGATION DESCRIPTION=Enable/disable horizontal embedded navigation DISABLE=Disable USE EMBEDED NAVIGATION=Use Embedded Navigation USE EXTERNAL MODULE=Use external module MENU TYPE=Menu Type MENU TYPE DESCRIPTION=Menu type will display in horizontal navigation HORIZONTAL NAVIGATION TYPE=Horizontal Navigation Type. SUCKERFISH MENU OR JAMOO MENU=Suckerfish menu or JAMoo menu. Read the instructions in the template description to enable the embedded dropdown navigation. JAMOO MENU=JAMoo Menu SUCKERFISH MENU=Suckerfish Menu RIGHT MODULES COLLAPSIBLE FUNCTION=Right modules collapsible function RIGHT MODULES COLLAPSIBLE FUNCTION DESCRIPTION=Enable/disable right column collapsible ENABLE=Enable DEFAULT STATUS=Default status DEFAULT STATUS DESCRIPTION=By default, collapse all or expand all EXPAND ALL=Expand All COLLAPSE ALL=Collapse All EXCLUDE MODULES=Exclude Modules EXCLUDE MODULES DESCRIPTION=ID of Modules on which collapsible function doesn't apply (separated by a comma) SHOW COMPONENT=Show Component SHOW COMPONENT DESCRIPTION=Show/Hide the component output elracodelangela/administrator/language/en-GB/en-GB.plg_user_joomla.ini0000755000176700017710000000072211061563414026532 0ustar essawireessawire# $Id: en-GB.plg_user_joomla.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM AUTO CREATE USERS=Auto-create Users PARAMAUTOCREATEUSERS=Automatically create Registered Users where possible PLG_USER_JOOMLA=Handles Joomla!'s default User synchronisation elracodelangela/administrator/language/en-GB/en-GB.plg_authentication_openid.ini0000755000176700017710000000075211061563413030572 0ustar essawireessawire# $Id: en-GB.plg_authentication_openid.ini # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM HANDLES USER AUTHENTICATION WITH AN OPENID (REQUIRES PHP5)=Handles user authentication with an OpenID (Requires PHP5) LOGIN_WITH_OPENID=Login with an OpenID NORMAL_LOGIN=Go back to normal login WHAT_IS_OPENID=What is OpenId?elracodelangela/administrator/language/en-GB/en-GB.com_search.ini0000755000176700017710000000154411061563414025457 0ustar essawireessawire# $Id: en-GB.com_search.ini 10388 2008-06-03 11:16:20Z pasamio $ # Joomla! Project # Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php # Note : All ini files need to be saved as UTF-8 - No BOM DESCSEARCH=This Component manages the Search functionality. GATHER SEARCH STATISTICS=Gather Search Statistics HIDE SEARCH RESULTS=Hide Search Results RESULTS RETURNED=Results Returned SEARCH LOGGING=Search Logging SEARCH STATISTICS=Search Statistics SEARCH TEXT=Search Text SHOW CREATED DATE=Show Created Date SHOW SEARCH RESULTS=Show Search Results STANDARD SEARCH FORM=Standard Search Form STANDARD SEARCH LAYOUT DESC=The standard Search layout displays the Search Form and result. TIMES REQUESTED=Times Requested TIPSEARCHSTATISTICS=Enable/Disable collection of site statisticselracodelangela/administrator/language/index.html0000755000176700017710000000005411061563414023064 0ustar essawireessawireelracodelangela/administrator/includes/0000755000176700017710000000000011061563571021114 5ustar essawireessawireelracodelangela/administrator/includes/pcl/0000755000176700017710000000000011061563571021672 5ustar essawireessawireelracodelangela/administrator/includes/pcl/pclerror.lib.php0000755000176700017710000001141111061563440024774 0ustar essawireessawire"; $v_message .= "

    PclError Library has detected a fatal error on file '$p_file', line $p_line

    "; $v_message .= "

    $p_error_string

    "; $v_message .= ""; die($v_message); } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclErrorReset() // Description : // Parameters : // -------------------------------------------------------------------------------- function PclErrorReset() { global $g_pcl_error_string; global $g_pcl_error_code; $g_pcl_error_code = 1; $g_pcl_error_string = ""; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclErrorCode() // Description : // Parameters : // -------------------------------------------------------------------------------- function PclErrorCode() { global $g_pcl_error_string; global $g_pcl_error_code; return($g_pcl_error_code); } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclErrorString() // Description : // Parameters : // -------------------------------------------------------------------------------- function PclErrorString() { global $g_pcl_error_string; global $g_pcl_error_code; return($g_pcl_error_string." [code $g_pcl_error_code]"); } // -------------------------------------------------------------------------------- // ----- End of double include look } ?>elracodelangela/administrator/includes/pcl/pcltar.lib.php0000755000176700017710000033624411061563440024447 0ustar essawireessawire"; // -------------------------------------------------------------------------------- function PclTarList($p_tarname, $p_mode="") { TrFctStart(__FILE__, __LINE__, "PclTarList", "tar=$p_tarname, mode='$p_mode'"); $v_result=1; // ----- Extract the tar format from the extension if (($p_mode == "") || (($p_mode!="tar") && ($p_mode!="tgz"))) { if (($p_mode = PclTarHandleExtension($p_tarname)) == "") { // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } } // ----- Call the extracting fct $p_list = array(); if (($v_result = PclTarHandleExtract($p_tarname, 0, $p_list, "list", "", $p_mode, "")) != 1) { unset($p_list); TrFctEnd(__FILE__, __LINE__, 0, PclErrorString()); return(0); } // ----- Return TrFctEnd(__FILE__, __LINE__, $p_list); return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarExtract() // Description : // Extract all the files present in the archive $p_tarname, in the directory // $p_path. The relative path of the archived files are keep and become // relative to $p_path. // If a file with the same name already exists it will be replaced. // If the path to the file does not exist, it will be created. // Depending on the $p_tarname extension (.tar, .tar.gz or .tgz) the // function will determine the type of the archive. // Parameters : // $p_tarname : Name of an existing tar file. // $p_path : Path where the files will be extracted. The files will use // their memorized path from $p_path. // If $p_path is "", files will be extracted in "./". // $p_remove_path : Path to remove (from the file memorized path) while writing the // extracted files. If the path does not match the file path, // the file is extracted with its memorized path. // $p_path and $p_remove_path are commulative. // $p_mode : 'tar' or 'tgz', if not set, will be determined by $p_tarname extension // Return Values : // Same as PclTarList() // -------------------------------------------------------------------------------- function PclTarExtract($p_tarname, $p_path="./", $p_remove_path="", $p_mode="") { TrFctStart(__FILE__, __LINE__, "PclTarExtract", "tar='$p_tarname', path='$p_path', remove_path='$p_remove_path', mode='$p_mode'"); $v_result=1; // ----- Extract the tar format from the extension if (($p_mode == "") || (($p_mode!="tar") && ($p_mode!="tgz"))) { if (($p_mode = PclTarHandleExtension($p_tarname)) == "") { // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } } // ----- Call the extracting fct if (($v_result = PclTarHandleExtract($p_tarname, 0, $p_list, "complete", $p_path, $p_mode, $p_remove_path)) != 1) { TrFctEnd(__FILE__, __LINE__, 0, PclErrorString()); return(0); } // ----- Return TrFctEnd(__FILE__, __LINE__, $p_list); return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarExtractList() // Description : // Extract the files present in the archive $p_tarname and specified in // $p_filelist, in the directory // $p_path. The relative path of the archived files are keep and become // relative to $p_path. // If a directory is sp�cified in the list, all the files from this directory // will be extracted. // If a file with the same name already exists it will be replaced. // If the path to the file does not exist, it will be created. // Depending on the $p_tarname extension (.tar, .tar.gz or .tgz) the // function will determine the type of the archive. // Parameters : // $p_tarname : Name of an existing tar file // $p_filelist : An array containing file or directory names, or // a string containing one filename or directory name, or // a string containing a list of filenames and/or directory // names separated by spaces. // $p_path : Path where the files will be extracted. The files will use // their memorized path from $p_path. // If $p_path is "", files will be extracted in "./". // $p_remove_path : Path to remove (from the file memorized path) while writing the // extracted files. If the path does not match the file path, // the file is extracted with its memorized path. // $p_path and $p_remove_path are commulative. // $p_mode : 'tar' or 'tgz', if not set, will be determined by $p_tarname extension // Return Values : // Same as PclTarList() // -------------------------------------------------------------------------------- function PclTarExtractList($p_tarname, $p_filelist, $p_path="./", $p_remove_path="", $p_mode="") { TrFctStart(__FILE__, __LINE__, "PclTarExtractList", "tar=$p_tarname, list, path=$p_path, remove_path='$p_remove_path', mode='$p_mode'"); $v_result=1; // ----- Extract the tar format from the extension if (($p_mode == "") || (($p_mode!="tar") && ($p_mode!="tgz"))) { if (($p_mode = PclTarHandleExtension($p_tarname)) == "") { // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } } // ----- Look if the $p_filelist is really an array if (is_array($p_filelist)) { // ----- Call the extracting fct if (($v_result = PclTarHandleExtract($p_tarname, $p_filelist, $p_list, "partial", $p_path, $v_tar_mode, $p_remove_path)) != 1) { TrFctEnd(__FILE__, __LINE__, 0, PclErrorString()); return(0); } } // ----- Look if the $p_filelist is a string else if (is_string($p_filelist)) { // ----- Create a list with the elements from the string $v_list = explode(" ", $p_filelist); // ----- Call the extracting fct if (($v_result = PclTarHandleExtract($p_tarname, $v_list, $p_list, "partial", $p_path, $v_tar_mode, $p_remove_path)) != 1) { TrFctEnd(__FILE__, __LINE__, 0, PclErrorString()); return(0); } } // ----- Invalid variable else { // ----- Error log PclErrorLog(-3, "Invalid variable type p_filelist"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } // ----- Return TrFctEnd(__FILE__, __LINE__, $p_list); return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarExtractIndex() // Description : // Extract the files present in the archive $p_tarname and specified at // the indexes in $p_index, in the directory // $p_path. The relative path of the archived files are keep and become // relative to $p_path. // If a directory is specified in the list, the directory only is created. All // the file stored in this archive for this directory // are not extracted. // If a file with the same name already exists it will be replaced. // If the path to the file does not exist, it will be created. // Depending on the $p_tarname extension (.tar, .tar.gz or .tgz) the // function will determine the type of the archive. // Parameters : // $p_tarname : Name of an existing tar file // $p_index : A single index (integer) or a string of indexes of files to // extract. The form of the string is "0,4-6,8-12" with only numbers // and '-' for range or ',' to separate ranges. No spaces or ';' // are allowed. // $p_path : Path where the files will be extracted. The files will use // their memorized path from $p_path. // If $p_path is "", files will be extracted in "./". // $p_remove_path : Path to remove (from the file memorized path) while writing the // extracted files. If the path does not match the file path, // the file is extracted with its memorized path. // $p_path and $p_remove_path are commulative. // $p_mode : 'tar' or 'tgz', if not set, will be determined by $p_tarname extension // Return Values : // Same as PclTarList() // -------------------------------------------------------------------------------- function PclTarExtractIndex($p_tarname, $p_index, $p_path="./", $p_remove_path="", $p_mode="") { TrFctStart(__FILE__, __LINE__, "PclTarExtractIndex", "tar=$p_tarname, index='$p_index', path=$p_path, remove_path='$p_remove_path', mode='$p_mode'"); $v_result=1; // ----- Extract the tar format from the extension if (($p_mode == "") || (($p_mode!="tar") && ($p_mode!="tgz"))) { if (($p_mode = PclTarHandleExtension($p_tarname)) == "") { // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } } // ----- Look if the $p_index is really an integer if (is_integer($p_index)) { // ----- Call the extracting fct if (($v_result = PclTarHandleExtractByIndexList($p_tarname, "$p_index", $p_list, $p_path, $p_remove_path, $v_tar_mode)) != 1) { TrFctEnd(__FILE__, __LINE__, 0, PclErrorString()); return(0); } } // ----- Look if the $p_filelist is a string else if (is_string($p_index)) { // ----- Call the extracting fct if (($v_result = PclTarHandleExtractByIndexList($p_tarname, $p_index, $p_list, $p_path, $p_remove_path, $v_tar_mode)) != 1) { TrFctEnd(__FILE__, __LINE__, 0, PclErrorString()); return(0); } } // ----- Invalid variable else { // ----- Error log PclErrorLog(-3, "Invalid variable type $p_index"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } // ----- Return TrFctEnd(__FILE__, __LINE__, $p_list); return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarDelete() // Description : // This function deletes from the archive $p_tarname the files which are listed // in $p_filelist. $p_filelist can be a string with file names separated by // spaces, or an array containing the file names. // Parameters : // $p_tarname : Name of an existing tar file // $p_filelist : An array or a string containing file names to remove from the // archive. // $p_mode : 'tar' or 'tgz', if not set, will be determined by $p_tarname extension // Return Values : // List of the files which are kept in the archive (same format as PclTarList()) // -------------------------------------------------------------------------------- function PclTarDelete($p_tarname, $p_filelist, $p_mode="") { TrFctStart(__FILE__, __LINE__, "PclTarDelete", "tar='$p_tarname', list='$p_filelist', mode='$p_mode'"); $v_result=1; // ----- Extract the tar format from the extension if (($p_mode == "") || (($p_mode!="tar") && ($p_mode!="tgz"))) { if (($p_mode = PclTarHandleExtension($p_tarname)) == "") { // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } } // ----- Look if the $p_filelist is really an array if (is_array($p_filelist)) { // ----- Call the extracting fct if (($v_result = PclTarHandleDelete($p_tarname, $p_filelist, $p_list, $p_mode)) != 1) { TrFctEnd(__FILE__, __LINE__, 0, PclErrorString()); return(0); } } // ----- Look if the $p_filelist is a string else if (is_string($p_filelist)) { // ----- Create a list with the elements from the string $v_list = explode(" ", $p_filelist); // ----- Call the extracting fct if (($v_result = PclTarHandleDelete($p_tarname, $v_list, $p_list, $p_mode)) != 1) { TrFctEnd(__FILE__, __LINE__, 0, PclErrorString()); return(0); } } // ----- Invalid variable else { // ----- Error log PclErrorLog(-3, "Invalid variable type p_filelist"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } // ----- Return TrFctEnd(__FILE__, __LINE__, $p_list); return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarUpdate() // Description : // This function updates the files in $p_filelist which are already in the // $p_tarname archive with an older last modified date. If the file does not // exist, it is added at the end of the archive. // Parameters : // $p_tarname : Name of an existing tar file // $p_filelist : An array or a string containing file names to update from the // archive. // $p_mode : 'tar' or 'tgz', if not set, will be determined by $p_tarname extension // Return Values : // List of the files contained in the archive. The field status contains // "updated", "not_updated", "added" or "ok" for the files not concerned. // -------------------------------------------------------------------------------- function PclTarUpdate($p_tarname, $p_filelist, $p_mode="", $p_add_dir="", $p_remove_dir="") { TrFctStart(__FILE__, __LINE__, "PclTarUpdate", "tar='$p_tarname', list='$p_filelist', mode='$p_mode'"); $v_result=1; // ----- Extract the tar format from the extension if (($p_mode == "") || (($p_mode!="tar") && ($p_mode!="tgz"))) { if (($p_mode = PclTarHandleExtension($p_tarname)) == "") { // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } } // ----- Look if the $p_filelist is really an array if (is_array($p_filelist)) { // ----- Call the extracting fct if (($v_result = PclTarHandleUpdate($p_tarname, $p_filelist, $p_list, $p_mode, $p_add_dir, $p_remove_dir)) != 1) { TrFctEnd(__FILE__, __LINE__, 0, PclErrorString()); return(0); } } // ----- Look if the $p_filelist is a string else if (is_string($p_filelist)) { // ----- Create a list with the elements from the string $v_list = explode(" ", $p_filelist); // ----- Call the extracting fct if (($v_result = PclTarHandleUpdate($p_tarname, $v_list, $p_list, $p_mode, $p_add_dir, $p_remove_dir)) != 1) { TrFctEnd(__FILE__, __LINE__, 0, PclErrorString()); return(0); } } // ----- Invalid variable else { // ----- Error log PclErrorLog(-3, "Invalid variable type p_filelist"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } // ----- Return TrFctEnd(__FILE__, __LINE__, $p_list); return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarMerge() // Description : // This function add the content of $p_tarname_add at the end of $p_tarname. // Parameters : // $p_tarname : Name of an existing tar file // $p_tarname_add : Name of an existing tar file taht will be added at the end // of $p_tarname. // $p_mode : 'tar' or 'tgz', if not set, will be determined by $p_tarname extension // $p_mode_add : 'tar' or 'tgz', if not set, will be determined by $p_tarname_add // extension // Return Values : // List of the files contained in the archive. The field status contains // "updated", "not_updated", "added" or "ok" for the files not concerned. // -------------------------------------------------------------------------------- function PclTarMerge($p_tarname, $p_tarname_add, $p_mode="", $p_mode_add="") { TrFctStart(__FILE__, __LINE__, "PclTarMerge", "tar='$p_tarname', tar_add='$p_tarname_add', mode='$p_mode', mode_add='$p_mode_add'"); $v_result=1; // ----- Check the parameters if (($p_tarname == "") || ($p_tarname_add == "")) { // ----- Error log PclErrorLog(-3, "Invalid empty archive name"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Extract the tar format from the extension if (($p_mode == "") || (($p_mode!="tar") && ($p_mode!="tgz"))) { if (($p_mode = PclTarHandleExtension($p_tarname)) == "") { // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } } if (($p_mode_add == "") || (($p_mode_add!="tar") && ($p_mode_add!="tgz"))) { if (($p_mode_add = PclTarHandleExtension($p_tarname_add)) == "") { // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return 0; } } // ----- Clear filecache clearstatcache(); // ----- Check the file size if ((!is_file($p_tarname)) || (((($v_size = filesize($p_tarname)) % 512) != 0) && ($p_mode=="tar"))) { // ----- Error log if (!is_file($p_tarname)) PclErrorLog(-4, "Archive '$p_tarname' does not exist"); else PclErrorLog(-6, "Archive '$p_tarname' has invalid size ".filesize($p_tarname)."(not a 512 block multiple)"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } if ((!is_file($p_tarname_add)) || (((($v_size_add = filesize($p_tarname_add)) % 512) != 0) && ($p_mode_add=="tar"))) { // ----- Error log if (!is_file($p_tarname_add)) PclErrorLog(-4, "Archive '$p_tarname_add' does not exist"); else PclErrorLog(-6, "Archive '$p_tarname_add' has invalid size ".filesize($p_tarname_add)."(not a 512 block multiple)"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Look for compressed archive if ($p_mode == "tgz") { // ----- Open the file in read mode if (($p_tar = @gzopen($p_tarname, "rb")) == 0) { // ----- Error log PclErrorLog(-2, "Unable to open file '$p_tarname' in binary read mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Open a temporary file in write mode $v_temp_tarname = uniqid("pcltar-").".tmp"; TrFctMessage(__FILE__, __LINE__, 2, "Creating temporary archive file $v_temp_tarname"); if (($v_temp_tar = @gzopen($v_temp_tarname, "wb")) == 0) { // ----- Close tar file gzclose($p_tar); // ----- Error log PclErrorLog(-1, "Unable to open file '$v_temp_tarname' in binary write mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Read the first 512 bytes block $v_buffer = gzread($p_tar, 512); // ----- Read the following blocks but not the last one if (!gzeof($p_tar)) { TrFctMessage(__FILE__, __LINE__, 3, "More than one 512 block file"); $i=1; // ----- Read new 512 block and write the already read do{ // ----- Write the already read block $v_binary_data = pack("a512", "$v_buffer"); gzputs($v_temp_tar, $v_binary_data); $i++; TrFctMessage(__FILE__, __LINE__, 3, "Reading block $i"); // ----- Read next block $v_buffer = gzread($p_tar, 512); } while (!gzeof($p_tar)); TrFctMessage(__FILE__, __LINE__, 3, "$i 512 bytes blocks"); } } // ----- Look for uncompressed tar file else if ($p_mode=="tar") { // ----- Open the tar file if (($p_tar = fopen($p_tarname, "r+b")) == 0) { // ----- Error log PclErrorLog(-1, "Unable to open file '$p_tarname' in binary write mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Go to the beginning of last block TrFctMessage(__FILE__, __LINE__, 4, "Position before :".($p_mode=="tar"?ftell($p_tar):gztell($p_tar))); fseek($p_tar, $v_size-512); TrFctMessage(__FILE__, __LINE__, 4, "Position after :".($p_mode=="tar"?ftell($p_tar):gztell($p_tar))); } // ----- Look for unknown type else { // ----- Error log PclErrorLog(-3, "Invalid tar mode $p_mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Look for type of archive to add if ($p_mode_add == "tgz") { TrFctMessage(__FILE__, __LINE__, 4, "Opening file $p_tarname_add"); // ----- Open the file in read mode if (($p_tar_add = @gzopen($p_tarname_add, "rb")) == 0) { // ----- Error log PclErrorLog(-2, "Unable to open file '$p_tarname_add' in binary read mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Read the first 512 bytes block $v_buffer = gzread($p_tar_add, 512); // ----- Read the following blocks but not the last one if (!gzeof($p_tar_add)) { TrFctMessage(__FILE__, __LINE__, 3, "More than one 512 block file"); $i=1; // ----- Read new 512 block and write the already read do{ // ----- Write the already read block $v_binary_data = pack("a512", "$v_buffer"); if ($p_mode=="tar") fputs($p_tar, $v_binary_data); else gzputs($v_temp_tar, $v_binary_data); $i++; TrFctMessage(__FILE__, __LINE__, 3, "Reading block $i"); // ----- Read next block $v_buffer = gzread($p_tar_add, 512); } while (!gzeof($p_tar_add)); TrFctMessage(__FILE__, __LINE__, 3, "$i 512 bytes blocks"); } // ----- Close the files gzclose($p_tar_add); } // ----- Look for uncompressed tar file else if ($p_mode=="tar") { // ----- Open the file in read mode if (($p_tar_add = @fopen($p_tarname_add, "rb")) == 0) { // ----- Error log PclErrorLog(-2, "Unable to open file '$p_tarname_add' in binary read mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Read the first 512 bytes block $v_buffer = fread($p_tar_add, 512); // ----- Read the following blocks but not the last one if (!feof($p_tar_add)) { TrFctMessage(__FILE__, __LINE__, 3, "More than one 512 block file"); $i=1; // ----- Read new 512 block and write the already read do{ // ----- Write the already read block $v_binary_data = pack("a512", "$v_buffer"); if ($p_mode=="tar") fputs($p_tar, $v_binary_data); else gzputs($v_temp_tar, $v_binary_data); $i++; TrFctMessage(__FILE__, __LINE__, 3, "Reading block $i"); // ----- Read next block $v_buffer = fread($p_tar_add, 512); } while (!feof($p_tar_add)); TrFctMessage(__FILE__, __LINE__, 3, "$i 512 bytes blocks"); } // ----- Close the files fclose($p_tar_add); } // ----- Call the footer of the tar archive $v_result = PclTarHandleFooter($p_tar, $p_mode); // ----- Look for closing compressed archive if ($p_mode == "tgz") { // ----- Close the files gzclose($p_tar); gzclose($v_temp_tar); // ----- Unlink tar file if (!@unlink($p_tarname)) { // ----- Error log PclErrorLog(-11, "Error while deleting archive name $p_tarname"); } // ----- Rename tar file if (!@rename($v_temp_tarname, $p_tarname)) { // ----- Error log PclErrorLog(-12, "Error while renaming temporary file $v_temp_tarname to archive name $p_tarname"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Look for closing uncompressed tar file else if ($p_mode=="tar") { // ----- Close the tarfile fclose($p_tar); } // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // ***** UNDER THIS LINE ARE DEFINED PRIVATE INTERNAL FUNCTIONS ***** // ***** ***** // ***** THESES FUNCTIONS MUST NOT BE USED DIRECTLY ***** // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarHandleCreate() // Description : // Parameters : // $p_tarname : Name of the tar file // $p_list : An array containing the file or directory names to add in the tar // $p_mode : "tar" for normal tar archive, "tgz" for gzipped tar archive // Return Values : // -------------------------------------------------------------------------------- function PclTarHandleCreate($p_tarname, $p_list, $p_mode, $p_add_dir="", $p_remove_dir="") { TrFctStart(__FILE__, __LINE__, "PclTarHandleCreate", "tar=$p_tarname, list, mode=$p_mode, add_dir='$p_add_dir', remove_dir='$p_remove_dir'"); $v_result=1; $v_list_detail = array(); // ----- Check the parameters if (($p_tarname == "") || (($p_mode != "tar") && ($p_mode != "tgz"))) { // ----- Error log if ($p_tarname == "") PclErrorLog(-3, "Invalid empty archive name"); else PclErrorLog(-3, "Unknown mode '$p_mode'"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Look for tar file if ($p_mode == "tar") { // ----- Open the tar file if (($p_tar = fopen($p_tarname, "wb")) == 0) { // ----- Error log PclErrorLog(-1, "Unable to open file [$p_tarname] in binary write mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Call the adding fct inside the tar if (($v_result = PclTarHandleAddList($p_tar, $p_list, $p_mode, $v_list_detail, $p_add_dir, $p_remove_dir)) == 1) { // ----- Call the footer of the tar archive $v_result = PclTarHandleFooter($p_tar, $p_mode); } // ----- Close the tarfile fclose($p_tar); } // ----- Look for tgz file else { // ----- Open the tar file if (($p_tar = @gzopen($p_tarname, "wb")) == 0) { // ----- Error log PclErrorLog(-1, "Unable to open file [$p_tarname] in binary write mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Call the adding fct inside the tar if (($v_result = PclTarHandleAddList($p_tar, $p_list, $p_mode, $v_list_detail, $p_add_dir, $p_remove_dir)) == 1) { // ----- Call the footer of the tar archive $v_result = PclTarHandleFooter($p_tar, $p_mode); } // ----- Close the tarfile gzclose($p_tar); } // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarHandleAppend() // Description : // Parameters : // $p_tarname : Name of the tar file // $p_list : An array containing the file or directory names to add in the tar // $p_mode : "tar" for normal tar archive, "tgz" for gzipped tar archive // Return Values : // -------------------------------------------------------------------------------- function PclTarHandleAppend($p_tarname, $p_list, $p_mode, &$p_list_detail, $p_add_dir, $p_remove_dir) { TrFctStart(__FILE__, __LINE__, "PclTarHandleAppend", "tar=$p_tarname, list, mode=$p_mode"); $v_result=1; // ----- Check the parameters if ($p_tarname == "") { // ----- Error log PclErrorLog(-3, "Invalid empty archive name"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } clearstatcache(); // ----- Check the file size if ((!is_file($p_tarname)) || (((($v_size = filesize($p_tarname)) % 512) != 0) && ($p_mode=="tar"))) { // ----- Error log if (!is_file($p_tarname)) PclErrorLog(-4, "Archive '$p_tarname' does not exist"); else PclErrorLog(-6, "Archive '$p_tarname' has invalid size ".filesize($p_tarname)."(not a 512 block multiple)"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Look for compressed archive if ($p_mode == "tgz") { // ----- Open the file in read mode if (($p_tar = @gzopen($p_tarname, "rb")) == 0) { // ----- Error log PclErrorLog(-2, "Unable to open file '$p_tarname' in binary read mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Open a temporary file in write mode $v_temp_tarname = uniqid("pcltar-").".tmp"; TrFctMessage(__FILE__, __LINE__, 2, "Creating temporary archive file $v_temp_tarname"); if (($v_temp_tar = @gzopen($v_temp_tarname, "wb")) == 0) { // ----- Close tar file gzclose($p_tar); // ----- Error log PclErrorLog(-1, "Unable to open file '$v_temp_tarname' in binary write mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Read the first 512 bytes block $v_buffer = gzread($p_tar, 512); // ----- Read the following blocks but not the last one if (!gzeof($p_tar)) { TrFctMessage(__FILE__, __LINE__, 3, "More than one 512 block file"); $i=1; // ----- Read new 512 block and write the already read do{ // ----- Write the already read block $v_binary_data = pack("a512", "$v_buffer"); gzputs($v_temp_tar, $v_binary_data); $i++; TrFctMessage(__FILE__, __LINE__, 3, "Reading block $i"); // ----- Read next block $v_buffer = gzread($p_tar, 512); } while (!gzeof($p_tar)); TrFctMessage(__FILE__, __LINE__, 3, "$i 512 bytes blocks"); } // ----- Call the adding fct inside the tar if (($v_result = PclTarHandleAddList($v_temp_tar, $p_list, $p_mode, $p_list_detail, $p_add_dir, $p_remove_dir)) == 1) { // ----- Call the footer of the tar archive $v_result = PclTarHandleFooter($v_temp_tar, $p_mode); } // ----- Close the files gzclose($p_tar); gzclose($v_temp_tar); // ----- Unlink tar file if (!@unlink($p_tarname)) { // ----- Error log PclErrorLog(-11, "Error while deleting archive name $p_tarname"); } // ----- Rename tar file if (!@rename($v_temp_tarname, $p_tarname)) { // ----- Error log PclErrorLog(-12, "Error while renaming temporary file $v_temp_tarname to archive name $p_tarname"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Look for uncompressed tar file else if ($p_mode=="tar") { // ----- Open the tar file if (($p_tar = fopen($p_tarname, "r+b")) == 0) { // ----- Error log PclErrorLog(-1, "Unable to open file '$p_tarname' in binary write mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Go to the beginning of last block TrFctMessage(__FILE__, __LINE__, 4, "Position before :".($p_mode=="tar"?ftell($p_tar):gztell($p_tar))); fseek($p_tar, $v_size-512); TrFctMessage(__FILE__, __LINE__, 4, "Position after :".($p_mode=="tar"?ftell($p_tar):gztell($p_tar))); // ----- Call the adding fct inside the tar if (($v_result = PclTarHandleAddList($p_tar, $p_list, $p_mode, $p_list_detail, $p_add_dir, $p_remove_dir)) == 1) { // ----- Call the footer of the tar archive $v_result = PclTarHandleFooter($p_tar, $p_mode); } // ----- Close the tarfile fclose($p_tar); } // ----- Look for unknown type else { // ----- Error log PclErrorLog(-3, "Invalid tar mode $p_mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarHandleAddList() // Description : // $p_add_dir and $p_remove_dir will give the ability to memorize a path which is // different from the real path of the file. This is usefull if you want to have PclTar // running in any directory, and memorize relative path from an other directory. // Parameters : // $p_tar : File descriptor of the tar archive // $p_list : An array containing the file or directory names to add in the tar // $p_mode : "tar" for normal tar archive, "tgz" for gzipped tar archive // $p_list_detail : list of added files with their properties (specially the status field) // $p_add_dir : Path to add in the filename path archived // $p_remove_dir : Path to remove in the filename path archived // Return Values : // -------------------------------------------------------------------------------- function PclTarHandleAddList($p_tar, $p_list, $p_mode, &$p_list_detail, $p_add_dir, $p_remove_dir) { TrFctStart(__FILE__, __LINE__, "PclTarHandleAddList", "tar='$p_tar', list, mode='$p_mode', add_dir='$p_add_dir', remove_dir='$p_remove_dir'"); $v_result=1; $v_header = array(); // ----- Recuperate the current number of elt in list $v_nb = sizeof($p_list_detail); // ----- Check the parameters if ($p_tar == 0) { // ----- Error log PclErrorLog(-3, "Invalid file descriptor in file ".__FILE__.", line ".__LINE__); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Check the arguments if (sizeof($p_list) == 0) { // ----- Error log PclErrorLog(-3, "Invalid file list parameter (invalid or empty list)"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Loop on the files for ($j=0; ($j 99) { // ----- Error log PclErrorLog(-5, "File name is too long (max. 99) : '$p_filename'"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } TrFctMessage(__FILE__, __LINE__, 4, "File position before header =".($p_mode=="tar"?ftell($p_tar):gztell($p_tar))); // ----- Add the file if (($v_result = PclTarHandleAddFile($p_tar, $p_filename, $p_mode, $v_header, $p_add_dir, $p_remove_dir)) != 1) { // ----- Return status TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Store the file infos $p_list_detail[$v_nb++] = $v_header; // ----- Look for directory if (is_dir($p_filename)) { TrFctMessage(__FILE__, __LINE__, 2, "$p_filename is a directory"); // ----- Look for path if ($p_filename != ".") $v_path = $p_filename."/"; else $v_path = ""; // ----- Read the directory for files and sub-directories $p_hdir = opendir($p_filename); $p_hitem = readdir($p_hdir); // '.' directory $p_hitem = readdir($p_hdir); // '..' directory while ($p_hitem = readdir($p_hdir)) { // ----- Look for a file if (is_file($v_path.$p_hitem)) { TrFctMessage(__FILE__, __LINE__, 4, "Add the file '".$v_path.$p_hitem."'"); // ----- Add the file if (($v_result = PclTarHandleAddFile($p_tar, $v_path.$p_hitem, $p_mode, $v_header, $p_add_dir, $p_remove_dir)) != 1) { // ----- Return status TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Store the file infos $p_list_detail[$v_nb++] = $v_header; } // ----- Recursive call to PclTarHandleAddFile() else { TrFctMessage(__FILE__, __LINE__, 4, "'".$v_path.$p_hitem."' is a directory"); // ----- Need an array as parameter $p_temp_list[0] = $v_path.$p_hitem; $v_result = PclTarHandleAddList($p_tar, $p_temp_list, $p_mode, $p_list_detail, $p_add_dir, $p_remove_dir); } } // ----- Free memory for the recursive loop unset($p_temp_list); unset($p_hdir); unset($p_hitem); } else { TrFctMessage(__FILE__, __LINE__, 4, "File position after blocks =".($p_mode=="tar"?ftell($p_tar):gztell($p_tar))); } } // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarHandleAddFile() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function PclTarHandleAddFile($p_tar, $p_filename, $p_mode, &$p_header, $p_add_dir, $p_remove_dir) { TrFctStart(__FILE__, __LINE__, "PclTarHandleAddFile", "tar='$p_tar', filename='$p_filename', p_mode='$p_mode', add_dir='$p_add_dir', remove_dir='$p_remove_dir'"); $v_result=1; // ----- Check the parameters if ($p_tar == 0) { // ----- Error log PclErrorLog(-3, "Invalid file descriptor in file ".__FILE__.", line ".__LINE__); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Skip empty file names if ($p_filename == "") { // ----- Error log PclErrorLog(-3, "Invalid file list parameter (invalid or empty list)"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Calculate the stored filename $v_stored_filename = $p_filename; if ($p_remove_dir != "") { if (substr($p_remove_dir, -1) != '/') $p_remove_dir .= "/"; if ((substr($p_filename, 0, 2) == "./") || (substr($p_remove_dir, 0, 2) == "./")) { if ((substr($p_filename, 0, 2) == "./") && (substr($p_remove_dir, 0, 2) != "./")) $p_remove_dir = "./".$p_remove_dir; if ((substr($p_filename, 0, 2) != "./") && (substr($p_remove_dir, 0, 2) == "./")) $p_remove_dir = substr($p_remove_dir, 2); } if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir) { $v_stored_filename = substr($p_filename, strlen($p_remove_dir)); TrFctMessage(__FILE__, __LINE__, 3, "Remove path '$p_remove_dir' in file '$p_filename' = '$v_stored_filename'"); } } if ($p_add_dir != "") { if (substr($p_add_dir, -1) == "/") $v_stored_filename = $p_add_dir.$v_stored_filename; else $v_stored_filename = $p_add_dir."/".$v_stored_filename; TrFctMessage(__FILE__, __LINE__, 3, "Add path '$p_add_dir' in file '$p_filename' = '$v_stored_filename'"); } // ----- Check the path length if (strlen($v_stored_filename) > 99) { // ----- Error log PclErrorLog(-5, "Stored file name is too long (max. 99) : '$v_stored_filename'"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Look for a file if (is_file($p_filename)) { // ----- Open the source file if (($v_file = fopen($p_filename, "rb")) == 0) { // ----- Error log PclErrorLog(-2, "Unable to open file '$p_filename' in binary read mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Call the header generation if (($v_result = PclTarHandleHeader($p_tar, $p_filename, $p_mode, $p_header, $v_stored_filename)) != 1) { // ----- Return status TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } TrFctMessage(__FILE__, __LINE__, 4, "File position after header =".($p_mode=="tar"?ftell($p_tar):gztell($p_tar))); // ----- Read the file by 512 octets blocks $i=0; while (($v_buffer = fread($v_file, 512)) != "") { $v_binary_data = pack("a512", "$v_buffer"); if ($p_mode == "tar") fputs($p_tar, $v_binary_data); else gzputs($p_tar, $v_binary_data); $i++; } TrFctMessage(__FILE__, __LINE__, 2, "$i 512 bytes blocks"); // ----- Close the file fclose($v_file); TrFctMessage(__FILE__, __LINE__, 4, "File position after blocks =".($p_mode=="tar"?ftell($p_tar):gztell($p_tar))); } // ----- Look for a directory else { // ----- Call the header generation if (($v_result = PclTarHandleHeader($p_tar, $p_filename, $p_mode, $p_header, $v_stored_filename)) != 1) { // ----- Return status TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } TrFctMessage(__FILE__, __LINE__, 4, "File position after header =".($p_mode=="tar"?ftell($p_tar):gztell($p_tar))); } // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarHandleHeader() // Description : // This function creates in the TAR $p_tar, the TAR header for the file // $p_filename. // // 1. The informations needed to compose the header are recuperated and formatted // 2. Two binary strings are composed for the first part of the header, before // and after checksum field. // 3. The checksum is calculated from the two binary strings // 4. The header is write in the tar file (first binary string, binary string // for checksum and last binary string). // Parameters : // $p_tar : a valid file descriptor, opened in write mode, // $p_filename : The name of the file the header is for, // $p_mode : The mode of the archive ("tar" or "tgz"). // $p_header : A pointer to a array where will be set the file properties // Return Values : // -------------------------------------------------------------------------------- function PclTarHandleHeader($p_tar, $p_filename, $p_mode, &$p_header, $p_stored_filename) { TrFctStart(__FILE__, __LINE__, "PclTarHandleHeader", "tar=$p_tar, file='$p_filename', mode='$p_mode', stored_filename='$p_stored_filename'"); $v_result=1; // ----- Check the parameters if (($p_tar == 0) || ($p_filename == "")) { // ----- Error log PclErrorLog(-3, "Invalid file descriptor in file ".__FILE__.", line ".__LINE__); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Filename (reduce the path of stored name) if ($p_stored_filename == "") $p_stored_filename = $p_filename; $v_reduce_filename = PclTarHandlePathReduction($p_stored_filename); TrFctMessage(__FILE__, __LINE__, 2, "Filename (reduced) '$v_reduce_filename', strlen ".strlen($v_reduce_filename)); // ----- Get file info $v_info = stat($p_filename); $v_uid = sprintf("%6s ", DecOct($v_info[4])); $v_gid = sprintf("%6s ", DecOct($v_info[5])); TrFctMessage(__FILE__, __LINE__, 3, "uid=$v_uid, gid=$v_gid"); $v_perms = sprintf("%6s ", DecOct(fileperms($p_filename))); TrFctMessage(__FILE__, __LINE__, 3, "file permissions $v_perms"); // ----- File mtime $v_mtime_data = filemtime($p_filename); TrFctMessage(__FILE__, __LINE__, 2, "File mtime : $v_mtime_data"); $v_mtime = sprintf("%11s", DecOct($v_mtime_data)); // ----- File typeflag // '0' or '\0' is the code for regular file // '5' is directory if (is_dir($p_filename)) { $v_typeflag = "5"; $v_size = 0; } else { $v_typeflag = ""; // ----- Get the file size clearstatcache(); $v_size = filesize($p_filename); } TrFctMessage(__FILE__, __LINE__, 2, "File size : $v_size"); $v_size = sprintf("%11s ", DecOct($v_size)); TrFctMessage(__FILE__, __LINE__, 2, "File typeflag : $v_typeflag"); // ----- Linkname $v_linkname = ""; // ----- Magic $v_magic = ""; // ----- Version $v_version = ""; // ----- uname $v_uname = ""; // ----- gname $v_gname = ""; // ----- devmajor $v_devmajor = ""; // ----- devminor $v_devminor = ""; // ----- prefix $v_prefix = ""; // ----- Compose the binary string of the header in two parts arround the checksum position $v_binary_data_first = pack("a100a8a8a8a12A12", $v_reduce_filename, $v_perms, $v_uid, $v_gid, $v_size, $v_mtime); $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", $v_typeflag, $v_linkname, $v_magic, $v_version, $v_uname, $v_gname, $v_devmajor, $v_devminor, $v_prefix, ""); // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header for ($i=0; $i<148; $i++) { $v_checksum += ord(substr($v_binary_data_first,$i,1)); } // ..... Ignore the checksum value and replace it by ' ' (space) for ($i=148; $i<156; $i++) { $v_checksum += ord(' '); } // ..... Last part of the header for ($i=156, $j=0; $i<512; $i++, $j++) { $v_checksum += ord(substr($v_binary_data_last,$j,1)); } TrFctMessage(__FILE__, __LINE__, 3, "Calculated checksum : $v_checksum"); // ----- Write the first 148 bytes of the header in the archive if ($p_mode == "tar") fputs($p_tar, $v_binary_data_first, 148); else gzputs($p_tar, $v_binary_data_first, 148); // ----- Write the calculated checksum $v_checksum = sprintf("%6s ", DecOct($v_checksum)); $v_binary_data = pack("a8", $v_checksum); if ($p_mode == "tar") fputs($p_tar, $v_binary_data, 8); else gzputs($p_tar, $v_binary_data, 8); // ----- Write the last 356 bytes of the header in the archive if ($p_mode == "tar") fputs($p_tar, $v_binary_data_last, 356); else gzputs($p_tar, $v_binary_data_last, 356); // ----- Set the properties in the header "structure" $p_header[filename] = $v_reduce_filename; $p_header[mode] = $v_perms; $p_header[uid] = $v_uid; $p_header[gid] = $v_gid; $p_header[size] = $v_size; $p_header[mtime] = $v_mtime; $p_header[typeflag] = $v_typeflag; $p_header[status] = "added"; // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarHandleFooter() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function PclTarHandleFooter($p_tar, $p_mode) { TrFctStart(__FILE__, __LINE__, "PclTarHandleFooter", "tar='$p_tar', p_mode=$p_mode"); $v_result=1; // ----- Write the last 0 filled block for end of archive $v_binary_data = pack("a512", ""); if ($p_mode == "tar") fputs($p_tar, $v_binary_data); else gzputs($p_tar, $v_binary_data); // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarHandleExtract() // Description : // Parameters : // $p_tarname : Filename of the tar (or tgz) archive // $p_file_list : An array which contains the list of files to extract, this // array may be empty when $p_mode is 'complete' // $p_list_detail : An array where will be placed the properties of each extracted/listed file // $p_mode : 'complete' will extract all files from the archive, // 'partial' will look for files in $p_file_list // 'list' will only list the files from the archive without any extract // $p_path : Path to add while writing the extracted files // $p_tar_mode : 'tar' for GNU TAR archive, 'tgz' for compressed archive // $p_remove_path : Path to remove (from the file memorized path) while writing the // extracted files. If the path does not match the file path, // the file is extracted with its memorized path. // $p_remove_path does not apply to 'list' mode. // $p_path and $p_remove_path are commulative. // Return Values : // -------------------------------------------------------------------------------- function PclTarHandleExtract($p_tarname, $p_file_list, &$p_list_detail, $p_mode, $p_path, $p_tar_mode, $p_remove_path) { TrFctStart(__FILE__, __LINE__, "PclTarHandleExtract", "archive='$p_tarname', list, mode=$p_mode, path=$p_path, tar_mode=$p_tar_mode, remove_path='$p_remove_path'"); $v_result=1; $v_nb = 0; $v_extract_all = TRUE; $v_listing = FALSE; // ----- Check the path /* if (($p_path == "") || ((substr($p_path, 0, 1) != "/") && (substr($p_path, 0, 3) != "../"))) $p_path = "./".$p_path; */ $isWin = (substr(PHP_OS, 0, 3) == 'WIN'); if(!$isWin) { if (($p_path == "") || ((substr($p_path, 0, 1) != "/") && (substr($p_path, 0, 3) != "../"))) $p_path = "./".$p_path; } // ----- Look for path to remove format (should end by /) if (($p_remove_path != "") && (substr($p_remove_path, -1) != '/')) { $p_remove_path .= '/'; } $p_remove_path_size = strlen($p_remove_path); // ----- Study the mode switch ($p_mode) { case "complete" : // ----- Flag extract of all files $v_extract_all = TRUE; $v_listing = FALSE; break; case "partial" : // ----- Flag extract of specific files $v_extract_all = FALSE; $v_listing = FALSE; break; case "list" : // ----- Flag list of all files $v_extract_all = FALSE; $v_listing = TRUE; break; default : // ----- Error log PclErrorLog(-3, "Invalid extract mode ($p_mode)"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Open the tar file if ($p_tar_mode == "tar") { TrFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); $v_tar = fopen($p_tarname, "rb"); } else { TrFctMessage(__FILE__, __LINE__, 3, "Open file in gzip binary read mode"); $v_tar = @gzopen($p_tarname, "rb"); } // ----- Check that the archive is open if ($v_tar == 0) { // ----- Error log PclErrorLog(-2, "Unable to open archive '$p_tarname' in binary read mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Read the blocks While (!($v_end_of_file = ($p_tar_mode == "tar"?feof($v_tar):gzeof($v_tar)))) { TrFctMessage(__FILE__, __LINE__, 3, "Looking for next header ..."); // ----- Clear cache of file infos clearstatcache(); // ----- Reset extract tag $v_extract_file = FALSE; $v_extraction_stopped = 0; // ----- Read the 512 bytes header if ($p_tar_mode == "tar") $v_binary_data = fread($v_tar, 512); else $v_binary_data = gzread($v_tar, 512); // ----- Read the header properties if (($v_result = PclTarHandleReadHeader($v_binary_data, $v_header)) != 1) { // ----- Close the archive file if ($p_tar_mode == "tar") fclose($v_tar); else gzclose($v_tar); // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Look for empty blocks to skip if ($v_header["filename"] == "") { TrFctMessage(__FILE__, __LINE__, 2, "Empty block found. End of archive ?"); continue; } TrFctMessage(__FILE__, __LINE__, 2, "Found file '" . $v_header["filename"] . "', size '$v_header[size]'"); // ----- Look for partial extract if ((!$v_extract_all) && (is_array($p_file_list))) { TrFctMessage(__FILE__, __LINE__, 2, "Look if the file '$v_header[filename]' need to be extracted"); // ----- By default no unzip if the file is not found $v_extract_file = FALSE; // ----- Look into the file list for ($i=0; $i strlen($p_file_list[$i])) && (substr($v_header["filename"], 0, strlen($p_file_list[$i])) == $p_file_list[$i])) { // ----- The file is in the directory, so extract it TrFctMessage(__FILE__, __LINE__, 2, "File '$v_header[filename]' is in directory '$p_file_list[$i]' : extract it"); $v_extract_file = TRUE; // ----- End of loop break; } } // ----- It is a file, so compare the file names else if ($p_file_list[$i] == $v_header["filename"]) { // ----- File found TrFctMessage(__FILE__, __LINE__, 2, "File '$v_header[filename]' should be extracted"); $v_extract_file = TRUE; // ----- End of loop break; } } // ----- Trace if (!$v_extract_file) { TrFctMessage(__FILE__, __LINE__, 2, "File '$v_header[filename]' should not be extracted"); } } else { // ----- All files need to be extracted $v_extract_file = TRUE; } // ----- Look if this file need to be extracted if (($v_extract_file) && (!$v_listing)) { // ----- Look for path to remove if (($p_remove_path != "") && (substr($v_header["filename"], 0, $p_remove_path_size) == $p_remove_path)) { TrFctMessage(__FILE__, __LINE__, 3, "Found path '$p_remove_path' to remove in file '$v_header[filename]'"); // ----- Remove the path $v_header["filename"] = substr($v_header["filename"], $p_remove_path_size); TrFctMessage(__FILE__, __LINE__, 3, "Reslting file is '$v_header[filename]'"); } // ----- Add the path to the file if (($p_path != "./") && ($p_path != "/")) { // ----- Look for the path end '/' while (substr($p_path, -1) == "/") { TrFctMessage(__FILE__, __LINE__, 3, "Destination path [$p_path] ends by '/'"); $p_path = substr($p_path, 0, strlen($p_path)-1); TrFctMessage(__FILE__, __LINE__, 3, "Modified to [$p_path]"); } // ----- Add the path if (substr($v_header["filename"], 0, 1) == "/") $v_header["filename"] = $p_path.$v_header["filename"]; else $v_header["filename"] = $p_path."/".$v_header["filename"]; } // ----- Trace TrFctMessage(__FILE__, __LINE__, 2, "Extracting file (with path) '$v_header[filename]', size '$v_header[size]'"); // ----- Check that the file does not exists if (file_exists($v_header["filename"])) { TrFctMessage(__FILE__, __LINE__, 2, "File '$v_header[filename]' already exists"); // ----- Look if file is a directory if (is_dir($v_header["filename"])) { TrFctMessage(__FILE__, __LINE__, 2, "Existing file '$v_header[filename]' is a directory"); // ----- Change the file status $v_header["status"] = "already_a_directory"; // ----- Skip the extract $v_extraction_stopped = 1; $v_extract_file = 0; } // ----- Look if file is write protected else if (!is_writeable($v_header["filename"])) { TrFctMessage(__FILE__, __LINE__, 2, "Existing file '$v_header[filename]' is write protected"); // ----- Change the file status $v_header["status"] = "write_protected"; // ----- Skip the extract $v_extraction_stopped = 1; $v_extract_file = 0; } // ----- Look if the extracted file is older else if (filemtime($v_header["filename"]) > $v_header["mtime"]) { TrFctMessage(__FILE__, __LINE__, 2, "Existing file '$v_header[filename]' is newer (".date("l dS of F Y h:i:s A", filemtime($v_header[filename])).") than the extracted file (".date("l dS of F Y h:i:s A", $v_header[mtime]).")"); // ----- Change the file status $v_header["status"] = "newer_exist"; // ----- Skip the extract $v_extraction_stopped = 1; $v_extract_file = 0; } } // ----- Check the directory availability and create it if necessary else { if ($v_header["typeflag"]=="5") $v_dir_to_check = $v_header["filename"]; else if (!strstr($v_header["filename"], "/")) $v_dir_to_check = ""; else $v_dir_to_check = dirname($v_header["filename"]); if (($v_result = PclTarHandlerDirCheck($v_dir_to_check)) != 1) { TrFctMessage(__FILE__, __LINE__, 2, "Unable to create path for '$v_header[filename]'"); // ----- Change the file status $v_header["status"] = "path_creation_fail"; // ----- Skip the extract $v_extraction_stopped = 1; $v_extract_file = 0; } } // ----- Do the extraction if (($v_extract_file) && ($v_header["typeflag"]!="5")) { // ----- Open the destination file in write mode if (($v_dest_file = @fopen($v_header["filename"], "wb")) == 0) { TrFctMessage(__FILE__, __LINE__, 2, "Error while opening '$v_header[filename]' in write binary mode"); // ----- Change the file status $v_header["status"] = "write_error"; // ----- Jump to next file TrFctMessage(__FILE__, __LINE__, 2, "Jump to next file"); if ($p_tar_mode == "tar") fseek($v_tar, ftell($v_tar)+(ceil(($v_header[size]/512))*512)); else gzseek($v_tar, gztell($v_tar)+(ceil(($v_header[size]/512))*512)); } else { TrFctMessage(__FILE__, __LINE__, 2, "Start extraction of '$v_header[filename]'"); // ----- Read data $n = floor($v_header["size"]/512); for ($i=0; $i<$n; $i++) { TrFctMessage(__FILE__, __LINE__, 3, "Read complete 512 bytes block number ".($i+1)); if ($p_tar_mode == "tar") $v_content = fread($v_tar, 512); else $v_content = gzread($v_tar, 512); fwrite($v_dest_file, $v_content, 512); } if (($v_header["size"] % 512) != 0) { TrFctMessage(__FILE__, __LINE__, 3, "Read last ".($v_header["size"] % 512)." bytes in a 512 block"); if ($p_tar_mode == "tar") $v_content = fread($v_tar, 512); else $v_content = gzread($v_tar, 512); fwrite($v_dest_file, $v_content, ($v_header["size"] % 512)); } // ----- Close the destination file fclose($v_dest_file); // ----- Change the file mode, mtime touch($v_header["filename"], $v_header["mtime"]); //chmod($v_header[filename], DecOct($v_header[mode])); } // ----- Check the file size clearstatcache(); if (filesize($v_header["filename"]) != $v_header["size"]) { // ----- Close the archive file if ($p_tar_mode == "tar") fclose($v_tar); else gzclose($v_tar); // ----- Error log PclErrorLog(-7, "Extracted file '$v_header[filename]' does not have the correct file size '".filesize($v_filename)."' ('$v_header[size]' expected). Archive may be corrupted."); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Trace TrFctMessage(__FILE__, __LINE__, 2, "Extraction done"); } else { TrFctMessage(__FILE__, __LINE__, 2, "Extraction of file '$v_header[filename]' skipped."); // ----- Jump to next file TrFctMessage(__FILE__, __LINE__, 2, "Jump to next file"); if ($p_tar_mode == "tar") fseek($v_tar, ftell($v_tar)+(ceil(($v_header["size"]/512))*512)); else gzseek($v_tar, gztell($v_tar)+(ceil(($v_header["size"]/512))*512)); } } // ----- Look for file that is not to be unzipped else { // ----- Trace TrFctMessage(__FILE__, __LINE__, 2, "Jump file '$v_header[filename]'"); TrFctMessage(__FILE__, __LINE__, 4, "Position avant jump [".($p_tar_mode=="tar"?ftell($v_tar):gztell($v_tar))."]"); // ----- Jump to next file if ($p_tar_mode == "tar") fseek($v_tar, ($p_tar_mode=="tar"?ftell($v_tar):gztell($v_tar))+(ceil(($v_header[size]/512))*512)); else gzseek($v_tar, gztell($v_tar)+(ceil(($v_header[size]/512))*512)); TrFctMessage(__FILE__, __LINE__, 4, "Position apr�s jump [".($p_tar_mode=="tar"?ftell($v_tar):gztell($v_tar))."]"); } if ($p_tar_mode == "tar") $v_end_of_file = feof($v_tar); else $v_end_of_file = gzeof($v_tar); // ----- File name and properties are logged if listing mode or file is extracted if ($v_listing || $v_extract_file || $v_extraction_stopped) { TrFctMessage(__FILE__, __LINE__, 2, "Memorize info about file '$v_header[filename]'"); // ----- Log extracted files if (($v_file_dir = dirname($v_header["filename"])) == $v_header["filename"]) $v_file_dir = ""; if ((substr($v_header["filename"], 0, 1) == "/") && ($v_file_dir == "")) $v_file_dir = "/"; // ----- Add the array describing the file into the list $p_list_detail[$v_nb] = $v_header; // ----- Increment $v_nb++; } } // ----- Close the tarfile if ($p_tar_mode == "tar") fclose($v_tar); else gzclose($v_tar); // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarHandleExtractByIndexList() // Description : // Extract the files which are at the indexes specified. If the 'file' at the // index is a directory, the directory only is created, not all the files stored // for that directory. // Parameters : // $p_index_string : String of indexes of files to extract. The form of the // string is "0,4-6,8-12" with only numbers and '-' for // for range, and ',' to separate ranges. No spaces or ';' // are allowed. // Return Values : // -------------------------------------------------------------------------------- function PclTarHandleExtractByIndexList($p_tarname, $p_index_string, &$p_list_detail, $p_path, $p_remove_path, $p_tar_mode) { TrFctStart(__FILE__, __LINE__, "PclTarHandleExtractByIndexList", "archive='$p_tarname', index_string='$p_index_string', list, path=$p_path, remove_path='$p_remove_path', tar_mode=$p_tar_mode"); $v_result=1; $v_nb = 0; // ----- TBC : I should check the string by a regexp // ----- Check the path if (($p_path == "") || ((substr($p_path, 0, 1) != "/") && (substr($p_path, 0, 3) != "../") && (substr($p_path, 0, 2) != "./"))) $p_path = "./".$p_path; // ----- Look for path to remove format (should end by /) if (($p_remove_path != "") && (substr($p_remove_path, -1) != '/')) { $p_remove_path .= '/'; } $p_remove_path_size = strlen($p_remove_path); // ----- Open the tar file if ($p_tar_mode == "tar") { TrFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); $v_tar = @fopen($p_tarname, "rb"); } else { TrFctMessage(__FILE__, __LINE__, 3, "Open file in gzip binary read mode"); $v_tar = @gzopen($p_tarname, "rb"); } // ----- Check that the archive is open if ($v_tar == 0) { // ----- Error log PclErrorLog(-2, "Unable to open archive '$p_tarname' in binary read mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Manipulate the index list $v_list = explode(",", $p_index_string); sort($v_list); // ----- Loop on the index list $v_index=0; for ($i=0; ($i $p_index_stop) { TrFctMessage(__FILE__, __LINE__, 2, "Stop extraction, past stop index"); break; } // ----- Clear cache of file infos clearstatcache(); // ----- Reset extract tag $v_extract_file = FALSE; $v_extraction_stopped = 0; // ----- Read the 512 bytes header if ($p_tar_mode == "tar") $v_binary_data = fread($v_tar, 512); else $v_binary_data = gzread($v_tar, 512); // ----- Read the header properties if (($v_result = PclTarHandleReadHeader($v_binary_data, $v_header)) != 1) { // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Look for empty blocks to skip if ($v_header[filename] == "") { TrFctMessage(__FILE__, __LINE__, 2, "Empty block found. End of archive ?"); continue; } TrFctMessage(__FILE__, __LINE__, 2, "Found file '$v_header[filename]', size '$v_header[size]'"); // ----- Look if file is in the range to be extracted if (($p_index_current >= $p_index_start) && ($p_index_current <= $p_index_stop)) { TrFctMessage(__FILE__, __LINE__, 2, "File '$v_header[filename]' is in the range to be extracted"); $v_extract_file = TRUE; } else { TrFctMessage(__FILE__, __LINE__, 2, "File '$v_header[filename]' is out of the range"); $v_extract_file = FALSE; } // ----- Look if this file need to be extracted if ($v_extract_file) { if (($v_result = PclTarHandleExtractFile($v_tar, $v_header, $p_path, $p_remove_path, $p_tar_mode)) != 1) { // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } } // ----- Look for file that is not to be extracted else { // ----- Trace TrFctMessage(__FILE__, __LINE__, 2, "Jump file '$v_header[filename]'"); TrFctMessage(__FILE__, __LINE__, 4, "Position avant jump [".($p_tar_mode=="tar"?ftell($v_tar):gztell($v_tar))."]"); // ----- Jump to next file if ($p_tar_mode == "tar") fseek($v_tar, ($p_tar_mode=="tar"?ftell($v_tar):gztell($v_tar))+(ceil(($v_header[size]/512))*512)); else gzseek($v_tar, gztell($v_tar)+(ceil(($v_header[size]/512))*512)); TrFctMessage(__FILE__, __LINE__, 4, "Position apr�s jump [".($p_tar_mode=="tar"?ftell($v_tar):gztell($v_tar))."]"); } if ($p_tar_mode == "tar") $v_end_of_file = feof($v_tar); else $v_end_of_file = gzeof($v_tar); // ----- File name and properties are logged if listing mode or file is extracted if ($v_extract_file) { TrFctMessage(__FILE__, __LINE__, 2, "Memorize info about file '$v_header[filename]'"); // ----- Log extracted files if (($v_file_dir = dirname($v_header[filename])) == $v_header[filename]) $v_file_dir = ""; if ((substr($v_header[filename], 0, 1) == "/") && ($v_file_dir == "")) $v_file_dir = "/"; // ----- Add the array describing the file into the list $p_list_detail[$v_nb] = $v_header; // ----- Increment $v_nb++; } // ----- Increment the current file index $p_index_current++; } // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarHandleExtractFile() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function PclTarHandleExtractFile($p_tar, &$v_header, $p_path, $p_remove_path, $p_tar_mode) { TrFctStart(__FILE__, __LINE__, "PclTarHandleExtractFile", "archive_descr='$p_tar', path=$p_path, remove_path='$p_remove_path', tar_mode=$p_tar_mode"); $v_result=1; // TBC : I should replace all $v_tar by $p_tar in this function .... $v_tar = $p_tar; $v_extract_file = 1; $p_remove_path_size = strlen($p_remove_path); // ----- Look for path to remove if (($p_remove_path != "") && (substr($v_header[filename], 0, $p_remove_path_size) == $p_remove_path)) { TrFctMessage(__FILE__, __LINE__, 3, "Found path '$p_remove_path' to remove in file '$v_header[filename]'"); // ----- Remove the path $v_header[filename] = substr($v_header[filename], $p_remove_path_size); TrFctMessage(__FILE__, __LINE__, 3, "Resulting file is '$v_header[filename]'"); } // ----- Add the path to the file if (($p_path != "./") && ($p_path != "/")) { // ----- Look for the path end '/' while (substr($p_path, -1) == "/") { TrFctMessage(__FILE__, __LINE__, 3, "Destination path [$p_path] ends by '/'"); $p_path = substr($p_path, 0, strlen($p_path)-1); TrFctMessage(__FILE__, __LINE__, 3, "Modified to [$p_path]"); } // ----- Add the path if (substr($v_header[filename], 0, 1) == "/") $v_header[filename] = $p_path.$v_header[filename]; else $v_header[filename] = $p_path."/".$v_header[filename]; } // ----- Trace TrFctMessage(__FILE__, __LINE__, 2, "Extracting file (with path) '$v_header[filename]', size '$v_header[size]'"); // ----- Check that the file does not exists if (file_exists($v_header[filename])) { TrFctMessage(__FILE__, __LINE__, 2, "File '$v_header[filename]' already exists"); // ----- Look if file is a directory if (is_dir($v_header[filename])) { TrFctMessage(__FILE__, __LINE__, 2, "Existing file '$v_header[filename]' is a directory"); // ----- Change the file status $v_header[status] = "already_a_directory"; // ----- Skip the extract $v_extraction_stopped = 1; $v_extract_file = 0; } // ----- Look if file is write protected else if (!is_writeable($v_header[filename])) { TrFctMessage(__FILE__, __LINE__, 2, "Existing file '$v_header[filename]' is write protected"); // ----- Change the file status $v_header[status] = "write_protected"; // ----- Skip the extract $v_extraction_stopped = 1; $v_extract_file = 0; } // ----- Look if the extracted file is older else if (filemtime($v_header[filename]) > $v_header[mtime]) { TrFctMessage(__FILE__, __LINE__, 2, "Existing file '$v_header[filename]' is newer (".date("l dS of F Y h:i:s A", filemtime($v_header[filename])).") than the extracted file (".date("l dS of F Y h:i:s A", $v_header[mtime]).")"); // ----- Change the file status $v_header[status] = "newer_exist"; // ----- Skip the extract $v_extraction_stopped = 1; $v_extract_file = 0; } } // ----- Check the directory availability and create it if necessary else { if ($v_header[typeflag]=="5") $v_dir_to_check = $v_header[filename]; else if (!strstr($v_header[filename], "/")) $v_dir_to_check = ""; else $v_dir_to_check = dirname($v_header[filename]); if (($v_result = PclTarHandlerDirCheck($v_dir_to_check)) != 1) { TrFctMessage(__FILE__, __LINE__, 2, "Unable to create path for '$v_header[filename]'"); // ----- Change the file status $v_header[status] = "path_creation_fail"; // ----- Skip the extract $v_extraction_stopped = 1; $v_extract_file = 0; } } // ----- Do the real bytes extraction (if not a directory) if (($v_extract_file) && ($v_header[typeflag]!="5")) { // ----- Open the destination file in write mode if (($v_dest_file = @fopen($v_header[filename], "wb")) == 0) { TrFctMessage(__FILE__, __LINE__, 2, "Error while opening '$v_header[filename]' in write binary mode"); // ----- Change the file status $v_header[status] = "write_error"; // ----- Jump to next file TrFctMessage(__FILE__, __LINE__, 2, "Jump to next file"); if ($p_tar_mode == "tar") fseek($v_tar, ftell($v_tar)+(ceil(($v_header[size]/512))*512)); else gzseek($v_tar, gztell($v_tar)+(ceil(($v_header[size]/512))*512)); } else { TrFctMessage(__FILE__, __LINE__, 2, "Start extraction of '$v_header[filename]'"); // ----- Read data $n = floor($v_header[size]/512); for ($i=0; $i<$n; $i++) { TrFctMessage(__FILE__, __LINE__, 3, "Read complete 512 bytes block number ".($i+1)); if ($p_tar_mode == "tar") $v_content = fread($v_tar, 512); else $v_content = gzread($v_tar, 512); fwrite($v_dest_file, $v_content, 512); } if (($v_header[size] % 512) != 0) { TrFctMessage(__FILE__, __LINE__, 3, "Read last ".($v_header[size] % 512)." bytes in a 512 block"); if ($p_tar_mode == "tar") $v_content = fread($v_tar, 512); else $v_content = gzread($v_tar, 512); fwrite($v_dest_file, $v_content, ($v_header[size] % 512)); } // ----- Close the destination file fclose($v_dest_file); // ----- Change the file mode, mtime touch($v_header[filename], $v_header[mtime]); //chmod($v_header[filename], DecOct($v_header[mode])); } // ----- Check the file size clearstatcache(); if (filesize($v_header[filename]) != $v_header[size]) { // ----- Error log PclErrorLog(-7, "Extracted file '$v_header[filename]' does not have the correct file size '".filesize($v_filename)."' ('$v_header[size]' expected). Archive may be corrupted."); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Trace TrFctMessage(__FILE__, __LINE__, 2, "Extraction done"); } else { TrFctMessage(__FILE__, __LINE__, 2, "Extraction of file '$v_header[filename]' skipped."); // ----- Jump to next file TrFctMessage(__FILE__, __LINE__, 2, "Jump to next file"); if ($p_tar_mode == "tar") fseek($v_tar, ftell($v_tar)+(ceil(($v_header[size]/512))*512)); else gzseek($v_tar, gztell($v_tar)+(ceil(($v_header[size]/512))*512)); } // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTarHandleDelete() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function PclTarHandleDelete($p_tarname, $p_file_list, &$p_list_detail, $p_tar_mode) { TrFctStart(__FILE__, __LINE__, "PclTarHandleDelete", "archive='$p_tarname', list, tar_mode=$p_tar_mode"); $v_result=1; $v_nb=0; // ----- Look for regular tar file if ($p_tar_mode == "tar") { // ----- Open file TrFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($v_tar = @fopen($p_tarname, "rb")) == 0) { // ----- Error log PclErrorLog(-2, "Unable to open file '$p_tarname' in binary read mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Open a temporary file in write mode $v_temp_tarname = uniqid("pcltar-").".tmp"; TrFctMessage(__FILE__, __LINE__, 2, "Creating temporary archive file $v_temp_tarname"); if (($v_temp_tar = @fopen($v_temp_tarname, "wb")) == 0) { // ----- Close tar file fclose($v_tar); // ----- Error log PclErrorLog(-1, "Unable to open file '$v_temp_tarname' in binary write mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } } // ----- Look for compressed tar file else { // ----- Open the file in read mode TrFctMessage(__FILE__, __LINE__, 3, "Open file in gzip binary read mode"); if (($v_tar = @gzopen($p_tarname, "rb")) == 0) { // ----- Error log PclErrorLog(-2, "Unable to open file '$p_tarname' in binary read mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } // ----- Open a temporary file in write mode $v_temp_tarname = uniqid("pcltar-").".tmp"; TrFctMessage(__FILE__, __LINE__, 2, "Creating temporary archive file $v_temp_tarname"); if (($v_temp_tar = @gzopen($v_temp_tarname, "wb")) == 0) { // ----- Close tar file gzclose($v_tar); // ----- Error log PclErrorLog(-1, "Unable to open file '$v_temp_tarname' in binary write mode"); // ----- Return TrFctEnd(__FILE__, __LINE__, PclErrorCode(), PclErrorString()); return PclErrorCode(); } } // ----- Read the blocks While (!($v_end_of_file = ($p_tar_mode == "tar"?feof($v_tar):gzeof($v_tar)))) { TrFctMessage(__FILE__, __LINE__, 3, "Looking for next header ..."); // ----- Clear cache of file infos clearstatcache(); // ----- Reset delete tag $v_delete_file = FALSE; // ----- Read the first 512 block header if ($p_tar_mode == "tar") $v_binary_data = fread($v_tar, 512); else $v_binary_data = gzread($v_tar, 512); // ----- Read the header properties if (($v_result = PclTarHandleReadHeader($v_binary_data, $v_header)) != 1) { // ----- Close the archive file if ($p_tar_mode == "tar") { fclose($v_tar); fclose($v_temp_tar); } else { gzclose($v_tar); gzclose($v_temp_tar); } @unlink($v_temp_tarname); // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Look for empty blocks to skip if ($v_header[filename] == "") { TrFctMessage(__FILE__, __LINE__, 2, "Empty block found. End of archive ?"); continue; } TrFctMessage(__FILE__, __LINE__, 2, "Found file '$v_header[filename]', size '$v_header[size]'"); // ----- Look for filenames to delete for ($i=0, $v_delete_file=FALSE; ($i $v_header[mtime]) { TrFctMessage(__FILE__, __LINE__, 3, "File '$p_file_list[$i]' need to be updated"); $v_update_file = TRUE; } else { TrFctMessage(__FILE__, __LINE__, 3, "File '$p_file_list[$i]' does not need to be updated"); $v_update_file = FALSE; } // ----- Flag the name in order not to add the file at the end $v_found_list[$i] = 1; } else { TrFctMessage(__FILE__, __LINE__, 4, "File '$p_file_list[$i]' is not '$v_header[filename]'"); } } // ----- Copy files that do not need to be updated if (!$v_update_file) { TrFctMessage(__FILE__, __LINE__, 2, "Keep file '$v_header[filename]'"); // ----- Write the file header if ($p_tar_mode == "tar") { fputs($v_temp_tar, $v_binary_data, 512); } else { gzputs($v_temp_tar, $v_binary_data, 512); } // ----- Write the file data $n = ceil($v_header[size]/512); for ($j=0; $j<$n; $j++) { TrFctMessage(__FILE__, __LINE__, 3, "Read complete 512 bytes block number ".($j+1)); if ($p_tar_mode == "tar") { $v_content = fread($v_tar, 512); fwrite($v_temp_tar, $v_content, 512); } else { $v_content = gzread($v_tar, 512); gzwrite($v_temp_tar, $v_content, 512); } } // ----- File name and properties are logged if listing mode or file is extracted TrFctMessage(__FILE__, __LINE__, 2, "Memorize info about file '$v_header[filename]'"); // ----- Add the array describing the file into the list $p_list_detail[$v_nb] = $v_header; $p_list_detail[$v_nb][status] = ($v_found_file?"not_updated":"ok"); // ----- Increment $v_nb++; } // ----- Look for file that need to be updated else { // ----- Trace TrFctMessage(__FILE__, __LINE__, 2, "Start update of file '$v_current_filename'"); // ----- Store the old file size $v_old_size = $v_header[size]; // ----- Add the file if (($v_result = PclTarHandleAddFile($v_temp_tar, $v_current_filename, $p_tar_mode, $v_header, $p_add_dir, $p_remove_dir)) != 1) { // ----- Close the tarfile if ($p_tar_mode == "tar") { fclose($v_tar); fclose($v_temp_tar); } else { gzclose($v_tar); gzclose($v_temp_tar); } @unlink($p_temp_tarname); // ----- Return status TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Trace TrFctMessage(__FILE__, __LINE__, 2, "Skip old file '$v_header[filename]'"); // ----- Jump to next file if ($p_tar_mode == "tar") fseek($v_tar, ftell($v_tar)+(ceil(($v_old_size/512))*512)); else gzseek($v_tar, gztell($v_tar)+(ceil(($v_old_size/512))*512)); // ----- Add the array describing the file into the list $p_list_detail[$v_nb] = $v_header; $p_list_detail[$v_nb][status] = "updated"; // ----- Increment $v_nb++; } // ----- Look for end of file if ($p_tar_mode == "tar") $v_end_of_file = feof($v_tar); else $v_end_of_file = gzeof($v_tar); } // ----- Look for files that does not exists in the archive and need to be added for ($i=0; $i=0; $i--) { // ----- Look for current path if ($v_list[$i] == ".") { // ----- Ignore this directory // Should be the first $i=0, but no check is done } else if ($v_list[$i] == "..") { // ----- Ignore it and ignore the $i-1 $i--; } else if (($v_list[$i] == "") && ($i!=(sizeof($v_list)-1)) && ($i!=0)) { // ----- Ignore only the double '//' in path, // but not the first and last '/' } else { $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?"/".$v_result:""); } } } // ----- Return TrFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // ----- End of double include look } ?>elracodelangela/administrator/includes/pcl/pclzip.lib.php0000755000176700017710000054413411061563440024462 0ustar essawireessawirezipname = $p_zipname; $this->zip_fd = 0; // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 1); return; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : // create($p_filelist, $p_add_dir="", $p_remove_dir="") // create($p_filelist, $p_option, $p_option_value, ...) // Description : // This method supports two different synopsis. The first one is historical. // This method creates a Zip Archive. The Zip file is created in the // filesystem. The files and directories indicated in $p_filelist // are added in the archive. See the parameters description for the // supported format of $p_filelist. // When a directory is in the list, the directory and its content is added // in the archive. // In this synopsis, the function takes an optional variable list of // options. See bellow the supported options. // Parameters : // $p_filelist : An array containing file or directory names, or // a string containing one filename or one directory name, or // a string containing a list of filenames and/or directory // names separated by spaces. // $p_add_dir : A path to add before the real path of the archived file, //in order to have it memorized in the archive. // $p_remove_dir : A path to remove from the real path of the file to archive, // in order to have a shorter path memorized in the archive. // When $p_add_dir and $p_remove_dir are set, $p_remove_dir // is removed first, before $p_add_dir is added. // Options : // PCLZIP_OPT_ADD_PATH : // PCLZIP_OPT_REMOVE_PATH : // PCLZIP_OPT_REMOVE_ALL_PATH : // PCLZIP_OPT_COMMENT : // PCLZIP_CB_PRE_ADD : // PCLZIP_CB_POST_ADD : // Return Values : // 0 on failure, // The list of the added files, with a status of the add action. // (see PclZip::listContent() for list entry format) // -------------------------------------------------------------------------------- // function create($p_filelist, $p_add_dir="", $p_remove_dir="") function create($p_filelist /*, options */) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::create', "filelist='$p_filelist', ..."); $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Set default values $v_options = array(); $v_add_path = ""; $v_remove_path = ""; $v_remove_all_path = false; $v_options[PCLZIP_OPT_NO_COMPRESSION] = FALSE; // ----- Look for variable options arguments $v_size = func_num_args(); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method"); // ----- Look for arguments if ($v_size > 1) { // ----- Get the arguments $v_arg_list = &func_get_args(); // ----- Remove form the options list the first argument array_shift($v_arg_list); $v_size--; // ----- Look for first arg if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options detected"); // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array (PCLZIP_OPT_REMOVE_PATH => 'optional', PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', PCLZIP_OPT_ADD_PATH => 'optional', PCLZIP_CB_PRE_ADD => 'optional', PCLZIP_CB_POST_ADD => 'optional', PCLZIP_OPT_NO_COMPRESSION => 'optional', PCLZIP_OPT_COMMENT => 'optional' )); if ($v_result != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return 0; } // ----- Set the arguments if (isset($v_options[PCLZIP_OPT_ADD_PATH])) { $v_add_path = $v_options[PCLZIP_OPT_ADD_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) { $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH]; } } // ----- Look for 2 args // Here we need to support the first historic synopsis of the // method. else { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis"); // ----- Get the first argument $v_add_path = $v_arg_list[0]; // ----- Look for the optional second argument if ($v_size == 2) { $v_remove_path = $v_arg_list[1]; } else if ($v_size > 2) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return 0; } } } // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "add_path='$v_add_path', remove_path='$v_remove_path', remove_all_path='".($v_remove_all_path?'true':'false')."'"); // ----- Look if the $p_filelist is really an array $p_result_list = array(); if (is_array($p_filelist)) { // ----- Call the create fct $v_result = $this->privCreate($p_filelist, $p_result_list, $v_add_path, $v_remove_path, $v_remove_all_path, $v_options); } // ----- Look if the $p_filelist is a string else if (is_string($p_filelist)) { // ----- Create a list with the elements from the string $v_list = explode(PCLZIP_SEPARATOR, $p_filelist); // ----- Call the create fct $v_result = $this->privCreate($v_list, $p_result_list, $v_add_path, $v_remove_path, $v_remove_all_path, $v_options); } // ----- Invalid variable else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_filelist"); $v_result = PCLZIP_ERR_INVALID_PARAMETER; } if ($v_result != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return 0; } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_result_list); return $p_result_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : // add($p_filelist, $p_add_dir="", $p_remove_dir="") // add($p_filelist, $p_option, $p_option_value, ...) // Description : // This method supports two synopsis. The first one is historical. // This methods add the list of files in an existing archive. // If a file with the same name already exists, it is added at the end of the // archive, the first one is still present. // If the archive does not exist, it is created. // Parameters : // $p_filelist : An array containing file or directory names, or // a string containing one filename or one directory name, or // a string containing a list of filenames and/or directory // names separated by spaces. // $p_add_dir : A path to add before the real path of the archived file, //in order to have it memorized in the archive. // $p_remove_dir : A path to remove from the real path of the file to archive, // in order to have a shorter path memorized in the archive. // When $p_add_dir and $p_remove_dir are set, $p_remove_dir // is removed first, before $p_add_dir is added. // Options : // PCLZIP_OPT_ADD_PATH : // PCLZIP_OPT_REMOVE_PATH : // PCLZIP_OPT_REMOVE_ALL_PATH : // PCLZIP_OPT_COMMENT : // PCLZIP_OPT_ADD_COMMENT : // PCLZIP_OPT_PREPEND_COMMENT : // PCLZIP_CB_PRE_ADD : // PCLZIP_CB_POST_ADD : // Return Values : // 0 on failure, // The list of the added files, with a status of the add action. // (see PclZip::listContent() for list entry format) // -------------------------------------------------------------------------------- // function add($p_filelist, $p_add_dir="", $p_remove_dir="") function add($p_filelist /* options */) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::add', "filelist='$p_filelist', ..."); $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Set default values $v_options = array(); $v_add_path = ""; $v_remove_path = ""; $v_remove_all_path = false; $v_options[PCLZIP_OPT_NO_COMPRESSION] = FALSE; // ----- Look for variable options arguments $v_size = func_num_args(); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method"); // ----- Look for arguments if ($v_size > 1) { // ----- Get the arguments $v_arg_list = &func_get_args(); // ----- Remove form the options list the first argument array_shift($v_arg_list); $v_size--; // ----- Look for first arg if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options detected"); // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array (PCLZIP_OPT_REMOVE_PATH => 'optional', PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', PCLZIP_OPT_ADD_PATH => 'optional', PCLZIP_CB_PRE_ADD => 'optional', PCLZIP_CB_POST_ADD => 'optional', PCLZIP_OPT_NO_COMPRESSION => 'optional', PCLZIP_OPT_COMMENT => 'optional', PCLZIP_OPT_ADD_COMMENT => 'optional', PCLZIP_OPT_PREPEND_COMMENT => 'optional' )); if ($v_result != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return 0; } // ----- Set the arguments if (isset($v_options[PCLZIP_OPT_ADD_PATH])) { $v_add_path = $v_options[PCLZIP_OPT_ADD_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) { $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH]; } } // ----- Look for 2 args // Here we need to support the first historic synopsis of the // method. else { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis"); // ----- Get the first argument $v_add_path = $v_arg_list[0]; // ----- Look for the optional second argument if ($v_size == 2) { $v_remove_path = $v_arg_list[1]; } else if ($v_size > 2) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return 0; } } } // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "add_path='$v_add_path', remove_path='$v_remove_path', remove_all_path='".($v_remove_all_path?'true':'false')."'"); // ----- Look if the $p_filelist is really an array $p_result_list = array(); if (is_array($p_filelist)) { // ----- Call the create fct $v_result = $this->privAdd($p_filelist, $p_result_list, $v_add_path, $v_remove_path, $v_remove_all_path, $v_options); } // ----- Look if the $p_filelist is a string else if (is_string($p_filelist)) { // ----- Create a list with the elements from the string $v_list = explode(PCLZIP_SEPARATOR, $p_filelist); // ----- Call the create fct $v_result = $this->privAdd($v_list, $p_result_list, $v_add_path, $v_remove_path, $v_remove_all_path, $v_options); } // ----- Invalid variable else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_filelist"); $v_result = PCLZIP_ERR_INVALID_PARAMETER; } if ($v_result != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return 0; } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_result_list); return $p_result_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : listContent() // Description : // This public method, gives the list of the files and directories, with their // properties. // The properties of each entries in the list are (used also in other functions) : // filename : Name of the file. For a create or add action it is the filename //given by the user. For an extract function it is the filename //of the extracted file. // stored_filename : Name of the file / directory stored in the archive. // size : Size of the stored file. // compressed_size : Size of the file's data compressed in the archive // (without the headers overhead) // mtime : Last known modification date of the file (UNIX timestamp) // comment : Comment associated with the file // folder : true | false // index : index of the file in the archive // status : status of the action (depending of the action) : // Values are : //ok : OK ! //filtered : the file / dir is not extracted (filtered by user) //already_a_directory : the file can not be extracted because a // directory with the same name already exists //write_protected : the file can not be extracted because a file // with the same name already exists and is // write protected //newer_exist : the file was not extracted because a newer file exists //path_creation_fail : the file is not extracted because the folder // does not exists and can not be created //write_error : the file was not extracted because there was a // error while writing the file //read_error : the file was not extracted because there was a error // while reading the file //invalid_header : the file was not extracted because of an archive // format error (bad file header) // Note that each time a method can continue operating when there // is an action error on a file, the error is only logged in the file status. // Return Values : // 0 on an unrecoverable failure, // The list of the files in the archive. // -------------------------------------------------------------------------------- function listContent() { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::listContent', ""); $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return(0); } // ----- Call the extracting fct $p_list = array(); if (($v_result = $this->privList($p_list)) != 1) { unset($p_list); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo()); return(0); } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list); return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : // extract($p_path="./", $p_remove_path="") // extract([$p_option, $p_option_value, ...]) // Description : // This method supports two synopsis. The first one is historical. // This method extract all the files / directories from the archive to the // folder indicated in $p_path. // If you want to ignore the 'root' part of path of the memorized files // you can indicate this in the optional $p_remove_path parameter. // By default, if a newer file with the same name already exists, the // file is not extracted. // // If both PCLZIP_OPT_PATH and PCLZIP_OPT_ADD_PATH aoptions // are used, the path indicated in PCLZIP_OPT_ADD_PATH is append // at the end of the path value of PCLZIP_OPT_PATH. // Parameters : // $p_path : Path where the files and directories are to be extracted // $p_remove_path : First part ('root' part) of the memorized path //(if any similar) to remove while extracting. // Options : // PCLZIP_OPT_PATH : // PCLZIP_OPT_ADD_PATH : // PCLZIP_OPT_REMOVE_PATH : // PCLZIP_OPT_REMOVE_ALL_PATH : // PCLZIP_CB_PRE_EXTRACT : // PCLZIP_CB_POST_EXTRACT : // Return Values : // 0 or a negative value on failure, // The list of the extracted files, with a status of the action. // (see PclZip::listContent() for list entry format) // -------------------------------------------------------------------------------- //function extract($p_path="./", $p_remove_path="") function extract(/* options */) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::extract", ""); $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return(0); } // ----- Set default values $v_options = array(); $v_path = "./"; $v_remove_path = ""; $v_remove_all_path = false; // ----- Look for variable options arguments $v_size = func_num_args(); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method"); // ----- Default values for option $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE; // ----- Look for arguments if ($v_size > 0) { // ----- Get the arguments $v_arg_list = func_get_args(); // ----- Look for first arg if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options"); // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array (PCLZIP_OPT_PATH => 'optional', PCLZIP_OPT_REMOVE_PATH => 'optional', PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', PCLZIP_OPT_ADD_PATH => 'optional', PCLZIP_CB_PRE_EXTRACT => 'optional', PCLZIP_CB_POST_EXTRACT => 'optional', PCLZIP_OPT_SET_CHMOD => 'optional', PCLZIP_OPT_BY_NAME => 'optional', PCLZIP_OPT_BY_EREG => 'optional', PCLZIP_OPT_BY_PREG => 'optional', PCLZIP_OPT_BY_INDEX => 'optional', PCLZIP_OPT_EXTRACT_AS_STRING => 'optional', PCLZIP_OPT_EXTRACT_IN_OUTPUT => 'optional' )); if ($v_result != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return 0; } // ----- Set the arguments if (isset($v_options[PCLZIP_OPT_PATH])) { $v_path = $v_options[PCLZIP_OPT_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) { $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH]; } if (isset($v_options[PCLZIP_OPT_ADD_PATH])) { // ----- Check for '/' in last path char if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) { $v_path .= '/'; } $v_path .= $v_options[PCLZIP_OPT_ADD_PATH]; } } // ----- Look for 2 args // Here we need to support the first historic synopsis of the // method. else { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis"); // ----- Get the first argument $v_path = $v_arg_list[0]; // ----- Look for the optional second argument if ($v_size == 2) { $v_remove_path = $v_arg_list[1]; } else if ($v_size > 2) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo()); return 0; } } } // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "path='$v_path', remove_path='$v_remove_path', remove_all_path='".($v_remove_path?'true':'false')."'"); // ----- Call the extracting fct $p_list = array(); $v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v_options); if ($v_result < 1) { unset($p_list); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo()); return(0); } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list); return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : // extractByIndex($p_index, $p_path="./", $p_remove_path="") // extractByIndex($p_index, [$p_option, $p_option_value, ...]) // Description : // This method supports two synopsis. The first one is historical. // This method is doing a partial extract of the archive. // The extracted files or folders are identified by their index in the // archive (from 0 to n). // Note that if the index identify a folder, only the folder entry is // extracted, not all the files included in the archive. // Parameters : // $p_index : A single index (integer) or a string of indexes of files to // extract. The form of the string is "0,4-6,8-12" with only numbers // and '-' for range or ',' to separate ranges. No spaces or ';' // are allowed. // $p_path : Path where the files and directories are to be extracted // $p_remove_path : First part ('root' part) of the memorized path //(if any similar) to remove while extracting. // Options : // PCLZIP_OPT_PATH : // PCLZIP_OPT_ADD_PATH : // PCLZIP_OPT_REMOVE_PATH : // PCLZIP_OPT_REMOVE_ALL_PATH : // PCLZIP_OPT_EXTRACT_AS_STRING : The files are extracted as strings and // not as files. // The resulting content is in a new field 'content' in the file // structure. // This option must be used alone (any other options are ignored). // PCLZIP_CB_PRE_EXTRACT : // PCLZIP_CB_POST_EXTRACT : // Return Values : // 0 on failure, // The list of the extracted files, with a status of the action. // (see PclZip::listContent() for list entry format) // -------------------------------------------------------------------------------- function extractByIndex($p_index /* $options */) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::extractByIndex", "index='$p_index', ..."); $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return(0); } // ----- Set default values $v_options = array(); $v_path = "./"; $v_remove_path = ""; $v_remove_all_path = false; // ----- Look for variable options arguments $v_size = func_num_args(); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method"); // ----- Default values for option $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE; // ----- Look for arguments if ($v_size > 1) { // ----- Get the arguments $v_arg_list = &func_get_args(); // ----- Remove form the options list the first argument array_shift($v_arg_list); $v_size--; // ----- Look for first arg if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options"); // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array (PCLZIP_OPT_PATH => 'optional', PCLZIP_OPT_REMOVE_PATH => 'optional', PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', PCLZIP_OPT_EXTRACT_AS_STRING => 'optional', PCLZIP_OPT_ADD_PATH => 'optional', PCLZIP_CB_PRE_EXTRACT => 'optional', PCLZIP_CB_POST_EXTRACT => 'optional', PCLZIP_OPT_SET_CHMOD => 'optional' )); if ($v_result != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return 0; } // ----- Set the arguments if (isset($v_options[PCLZIP_OPT_PATH])) { $v_path = $v_options[PCLZIP_OPT_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) { $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH]; } if (isset($v_options[PCLZIP_OPT_ADD_PATH])) { // ----- Check for '/' in last path char if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) { $v_path .= '/'; } $v_path .= $v_options[PCLZIP_OPT_ADD_PATH]; } if (!isset($v_options[PCLZIP_OPT_EXTRACT_AS_STRING])) { $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Option PCLZIP_OPT_EXTRACT_AS_STRING not set."); } else { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Option PCLZIP_OPT_EXTRACT_AS_STRING set."); } } // ----- Look for 2 args // Here we need to support the first historic synopsis of the // method. else { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis"); // ----- Get the first argument $v_path = $v_arg_list[0]; // ----- Look for the optional second argument if ($v_size == 2) { $v_remove_path = $v_arg_list[1]; } else if ($v_size > 2) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return 0; } } } // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "index='$p_index', path='$v_path', remove_path='$v_remove_path', remove_all_path='".($v_remove_path?'true':'false')."'"); // ----- Trick // Here I want to reuse extractByRule(), so I need to parse the $p_index // with privParseOptions() $v_arg_trick = array (PCLZIP_OPT_BY_INDEX, $p_index); $v_options_trick = array(); $v_result = $this->privParseOptions($v_arg_trick, sizeof($v_arg_trick), $v_options_trick, array (PCLZIP_OPT_BY_INDEX => 'optional' )); if ($v_result != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return 0; } $v_options[PCLZIP_OPT_BY_INDEX] = $v_options_trick[PCLZIP_OPT_BY_INDEX]; // ----- Call the extracting fct if (($v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v_options)) < 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo()); return(0); } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list); return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : // delete([$p_option, $p_option_value, ...]) // Description : // Parameters : // None // Options : // PCLZIP_OPT_BY_INDEX : // Return Values : // 0 on failure, // The list of the files which are still present in the archive. // (see PclZip::listContent() for list entry format) // -------------------------------------------------------------------------------- function delete(/* options */) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::delete", ""); $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return(0); } // ----- Set default values $v_options = array(); // ----- Look for variable options arguments $v_size = func_num_args(); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method"); // ----- Look for no arguments if ($v_size <= 0) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing arguments"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo()); return 0; } // ----- Get the arguments $v_arg_list = &func_get_args(); // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array (PCLZIP_OPT_BY_NAME => 'optional', PCLZIP_OPT_BY_EREG => 'optional', PCLZIP_OPT_BY_PREG => 'optional', PCLZIP_OPT_BY_INDEX => 'optional' )); if ($v_result != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return 0; } // ----- Check that at least one rule is set if ( (!isset($v_options[PCLZIP_OPT_BY_NAME])) && (!isset($v_options[PCLZIP_OPT_BY_EREG])) && (!isset($v_options[PCLZIP_OPT_BY_PREG])) && (!isset($v_options[PCLZIP_OPT_BY_INDEX]))) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "At least one filtering rule must be set"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo()); return 0; } // ----- Call the delete fct $v_list = array(); if (($v_result = $this->privDeleteByRule($v_list, $v_options)) != 1) { unset($v_list); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo()); return(0); } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_list); return $v_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : deleteByIndex() // Description : // ***** Deprecated ***** // delete(PCLZIP_OPT_BY_INDEX, $p_index) should be prefered. // -------------------------------------------------------------------------------- function deleteByIndex($p_index) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::deleteByIndex", "index='$p_index'"); $p_list = $this->delete(PCLZIP_OPT_BY_INDEX, $p_index); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list); return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : properties() // Description : // This method gives the properties of the archive. // The properties are : // nb : Number of files in the archive // comment : Comment associated with the archive file // status : not_exist, ok // Parameters : // None // Return Values : // 0 on failure, // An array with the archive properties. // -------------------------------------------------------------------------------- function properties() { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::properties", ""); // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return(0); } // ----- Default properties $v_prop = array(); $v_prop['comment'] = ''; $v_prop['nb'] = 0; $v_prop['status'] = 'not_exist'; // ----- Look if file exists if (@is_file($this->zipname)) { // ----- Open the zip file //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), 0); return 0; } // ----- Read the central directory informations $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return 0; } // ----- Close the zip file $this->privCloseFd(); // ----- Set the user attributes $v_prop['comment'] = $v_central_dir['comment']; $v_prop['nb'] = $v_central_dir['entries']; $v_prop['status'] = 'ok'; } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_prop); return $v_prop; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : duplicate() // Description : // This method creates an archive by copying the content of an other one. If // the archive already exist, it is replaced by the new one without any warning. // Parameters : // $p_archive : The filename of a valid archive, or //a valid PclZip object. // Return Values : // 1 on success. // 0 or a negative value on error (error code). // -------------------------------------------------------------------------------- function duplicate($p_archive) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::duplicate", ""); $v_result = 1; // ----- Reset the error handler $this->privErrorReset(); // ----- Look if the $p_archive is a PclZip object if ((is_object($p_archive)) && (get_class($p_archive) == 'pclzip')) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The parameter is valid PclZip object '".$p_archive->zipname."'"); // ----- Duplicate the archive $v_result = $this->privDuplicate($p_archive->zipname); } // ----- Look if the $p_archive is a string (so a filename) else if (is_string($p_archive)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The parameter is a filename '$p_archive'"); // ----- Check that $p_archive is a valid zip file // TBC : Should also check the archive format if (!is_file($p_archive)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "No file with filename '".$p_archive."'"); $v_result = PCLZIP_ERR_MISSING_FILE; } else { // ----- Duplicate the archive $v_result = $this->privDuplicate($p_archive); } } // ----- Invalid variable else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_archive_to_add"); $v_result = PCLZIP_ERR_INVALID_PARAMETER; } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : merge() // Description : // This method merge the $p_archive_to_add archive at the end of the current // one ($this). // If the archive ($this) does not exist, the merge becomes a duplicate. // If the $p_archive_to_add archive does not exist, the merge is a success. // Parameters : // $p_archive_to_add : It can be directly the filename of a valid zip archive, // or a PclZip object archive. // Return Values : // 1 on success, // 0 or negative values on error (see below). // -------------------------------------------------------------------------------- function merge($p_archive_to_add) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::merge", ""); $v_result = 1; // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0); return(0); } // ----- Look if the $p_archive_to_add is a PclZip object if ((is_object($p_archive_to_add)) && (get_class($p_archive_to_add) == 'pclzip')) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The parameter is valid PclZip object"); // ----- Merge the archive $v_result = $this->privMerge($p_archive_to_add); } // ----- Look if the $p_archive_to_add is a string (so a filename) else if (is_string($p_archive_to_add)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The parameter is a filename"); // ----- Create a temporary archive $v_object_archive = new PclZip($p_archive_to_add); // ----- Merge the archive $v_result = $this->privMerge($v_object_archive); } // ----- Invalid variable else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_archive_to_add"); $v_result = PCLZIP_ERR_INVALID_PARAMETER; } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : errorCode() // Description : // Parameters : // -------------------------------------------------------------------------------- function errorCode() { if (PCLZIP_ERROR_EXTERNAL == 1) { return(PclErrorCode()); } else { return($this->error_code); } } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : errorName() // Description : // Parameters : // -------------------------------------------------------------------------------- function errorName($p_with_code=false) { $v_name = array ( PCLZIP_ERR_NO_ERROR => 'PCLZIP_ERR_NO_ERROR', PCLZIP_ERR_WRITE_OPEN_FAIL => 'PCLZIP_ERR_WRITE_OPEN_FAIL', PCLZIP_ERR_READ_OPEN_FAIL => 'PCLZIP_ERR_READ_OPEN_FAIL', PCLZIP_ERR_INVALID_PARAMETER => 'PCLZIP_ERR_INVALID_PARAMETER', PCLZIP_ERR_MISSING_FILE => 'PCLZIP_ERR_MISSING_FILE', PCLZIP_ERR_FILENAME_TOO_LONG => 'PCLZIP_ERR_FILENAME_TOO_LONG', PCLZIP_ERR_INVALID_ZIP => 'PCLZIP_ERR_INVALID_ZIP', PCLZIP_ERR_BAD_EXTRACTED_FILE => 'PCLZIP_ERR_BAD_EXTRACTED_FILE', PCLZIP_ERR_DIR_CREATE_FAIL => 'PCLZIP_ERR_DIR_CREATE_FAIL', PCLZIP_ERR_BAD_EXTENSION => 'PCLZIP_ERR_BAD_EXTENSION', PCLZIP_ERR_BAD_FORMAT => 'PCLZIP_ERR_BAD_FORMAT', PCLZIP_ERR_DELETE_FILE_FAIL => 'PCLZIP_ERR_DELETE_FILE_FAIL', PCLZIP_ERR_RENAME_FILE_FAIL => 'PCLZIP_ERR_RENAME_FILE_FAIL', PCLZIP_ERR_BAD_CHECKSUM => 'PCLZIP_ERR_BAD_CHECKSUM', PCLZIP_ERR_INVALID_ARCHIVE_ZIP => 'PCLZIP_ERR_INVALID_ARCHIVE_ZIP', PCLZIP_ERR_MISSING_OPTION_VALUE => 'PCLZIP_ERR_MISSING_OPTION_VALUE', PCLZIP_ERR_INVALID_OPTION_VALUE => 'PCLZIP_ERR_INVALID_OPTION_VALUE' ); if (isset($v_name[$this->error_code])) { $v_value = $v_name[$this->error_code]; } else { $v_value = 'NoName'; } if ($p_with_code) { return($v_value.' ('.$this->error_code.')'); } else { return($v_value); } } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : errorInfo() // Description : // Parameters : // -------------------------------------------------------------------------------- function errorInfo($p_full=false) { if (PCLZIP_ERROR_EXTERNAL == 1) { return(PclErrorString()); } else { if ($p_full) { return($this->errorName(true)." : ".$this->error_string); } else { return($this->error_string." [code ".$this->error_code."]"); } } } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // ***** UNDER THIS LINE ARE DEFINED PRIVATE INTERNAL FUNCTIONS ***** // ********** // ***** THESES FUNCTIONS MUST NOT BE USED DIRECTLY ***** // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privCheckFormat() // Description : // This method check that the archive exists and is a valid zip archive. // Several level of check exists. (futur) // Parameters : // $p_level : Level of check. Default 0. // 0 : Check the first bytes (magic codes) (default value)) // 1 : 0 + Check the central directory (futur) // 2 : 1 + Check each file header (futur) // Return Values : // true on success, // false on error, the error code is set. // -------------------------------------------------------------------------------- function privCheckFormat($p_level=0) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCheckFormat", ""); $v_result = true; // ----- Reset the file system cache clearstatcache(); // ----- Reset the error handler $this->privErrorReset(); // ----- Look if the file exits if (!is_file($this->zipname)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "Missing archive file '".$this->zipname."'"); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, false, PclZip::errorInfo()); return(false); } // ----- Check that the file is readeable if (!is_readable($this->zipname)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to read archive '".$this->zipname."'"); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, false, PclZip::errorInfo()); return(false); } // ----- Check the magic code // TBC // ----- Check the central header // TBC // ----- Check each file header // TBC // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privParseOptions() // Description : // This internal methods reads the variable list of arguments ($p_options_list, // $p_size) and generate an array with the options and values ($v_result_list). // $v_requested_options contains the options that can be present and those that // must be present. // $v_requested_options is an array, with the option value as key, and 'optional', // or 'mandatory' as value. // Parameters : // See above. // Return Values : // 1 on success. // 0 on failure. // -------------------------------------------------------------------------------- function privParseOptions(&$p_options_list, $p_size, &$v_result_list, $v_requested_options=false) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privParseOptions", ""); $v_result=1; // ----- Read the options $i=0; while ($i<$p_size) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Looking for table index $i, option = '".PclZipUtilOptionText($p_options_list[$i])."(".$p_options_list[$i].")'"); // ----- Check if the option is requested if (!isset($v_requested_options[$p_options_list[$i]])) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid optional parameter '".$p_options_list[$i]."' for this method"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Look for next option switch ($p_options_list[$i]) { // ----- Look for options that request a path value case PCLZIP_OPT_PATH : case PCLZIP_OPT_REMOVE_PATH : case PCLZIP_OPT_ADD_PATH : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Get the value $v_result_list[$p_options_list[$i]] = PclZipUtilTranslateWinPath($p_options_list[$i+1], false); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'"); $i++; break; // ----- Look for options that request an array of string for value case PCLZIP_OPT_BY_NAME : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Get the value if (is_string($p_options_list[$i+1])) { $v_result_list[$p_options_list[$i]][0] = $p_options_list[$i+1]; } else if (is_array($p_options_list[$i+1])) { $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; } else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } ////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'"); $i++; break; // ----- Look for options that request an EREG or PREG expression case PCLZIP_OPT_BY_EREG : case PCLZIP_OPT_BY_PREG : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Get the value if (is_string($p_options_list[$i+1])) { $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; } else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'"); $i++; break; // ----- Look for options that takes a string case PCLZIP_OPT_COMMENT : case PCLZIP_OPT_ADD_COMMENT : case PCLZIP_OPT_PREPEND_COMMENT : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '" .PclZipUtilOptionText($p_options_list[$i]) ."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Get the value if (is_string($p_options_list[$i+1])) { $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; } else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '" .PclZipUtilOptionText($p_options_list[$i]) ."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'"); $i++; break; // ----- Look for options that request an array of index case PCLZIP_OPT_BY_INDEX : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Get the value $v_work_list = array(); if (is_string($p_options_list[$i+1])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is a string '".$p_options_list[$i+1]."'"); // ----- Remove spaces $p_options_list[$i+1] = strtr($p_options_list[$i+1], ' ', ''); // ----- Parse items $v_work_list = explode(",", $p_options_list[$i+1]); } else if (is_integer($p_options_list[$i+1])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is an integer '".$p_options_list[$i+1]."'"); $v_work_list[0] = $p_options_list[$i+1].'-'.$p_options_list[$i+1]; } else if (is_array($p_options_list[$i+1])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is an array"); $v_work_list = $p_options_list[$i+1]; } else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Value must be integer, string or array for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Reduce the index list // each index item in the list must be a couple with a start and // an end value : [0,3], [5-5], [8-10], ... // ----- Check the format of each item $v_sort_flag=false; $v_sort_value=0; for ($j=0; $j= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Get the value $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'"); $i++; break; // ----- Look for options that request a call-back case PCLZIP_CB_PRE_EXTRACT : case PCLZIP_CB_POST_EXTRACT : case PCLZIP_CB_PRE_ADD : case PCLZIP_CB_POST_ADD : /* for futur use case PCLZIP_CB_PRE_DELETE : case PCLZIP_CB_POST_DELETE : case PCLZIP_CB_PRE_LIST : case PCLZIP_CB_POST_LIST : */ // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Get the value $v_function_name = $p_options_list[$i+1]; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "call-back ".PclZipUtilOptionText($p_options_list[$i])." = '".$v_function_name."'"); // ----- Check that the value is a valid existing function if (!function_exists($v_function_name)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Function '".$v_function_name."()' is not an existing function for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Set the attribute $v_result_list[$p_options_list[$i]] = $v_function_name; $i++; break; default : // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Unknown parameter '" .$p_options_list[$i]."'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Next options $i++; } // ----- Look for mandatory options if ($v_requested_options !== false) { for ($key=reset($v_requested_options); $key=key($v_requested_options); $key=next($v_requested_options)) { // ----- Look for mandatory option if ($v_requested_options[$key] == 'mandatory') { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Detect a mandatory option : ".PclZipUtilOptionText($key)."(".$key.")"); // ----- Look if present if (!isset($v_result_list[$key])) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing mandatory parameter ".PclZipUtilOptionText($key)."(".$key.")"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } } } } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privCreate() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privCreate($p_list, &$p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_options) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCreate", "list, result_list, add_dir='$p_add_dir', remove_dir='$p_remove_dir'"); $v_result=1; $v_list_detail = array(); // ----- Open the file in write mode if (($v_result = $this->privOpenFd('wb')) != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Add the list of files $v_result = $this->privAddList($p_list, $p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_options); // ----- Close $this->privCloseFd(); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privAdd() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privAdd($p_list, &$p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_options) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAdd", "list, result_list, add_dir='$p_add_dir', remove_dir='$p_remove_dir'"); $v_result=1; $v_list_detail = array(); // ----- Look if the archive exists or is empty if ((!is_file($this->zipname)) || (filesize($this->zipname) == 0)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive does not exist, or is empty, create it."); // ----- Do a create $v_result = $this->privCreate($p_list, $p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_options); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Open the zip file //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($v_result=$this->privOpenFd('rb')) != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Read the central directory informations $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Go to beginning of File //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($this->zip_fd)."'"); @rewind($this->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($this->zip_fd)."'"); // ----- Creates a temporay file $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; // ----- Open the temporary file in write mode //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($v_zip_temp_fd = @fopen($v_zip_temp_name, 'wb')) == 0) { $this->privCloseFd(); PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_zip_temp_name.'\' in binary write mode'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Copy the files from the archive to the temporary file // TBC : Here I should better append the file and go back to erase the central dir $v_size = $v_central_dir['offset']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes"); $v_buffer = fread($this->zip_fd, $v_read_size); @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Swap the file descriptor // Here is a trick : I swap the temporary fd with the zip fd, in order to use // the following methods on the temporary fil and not the real archive $v_swap = $this->zip_fd; $this->zip_fd = $v_zip_temp_fd; $v_zip_temp_fd = $v_swap; // ----- Add the files $v_header_list = array(); if (($v_result = $this->privAddFileList($p_list, $v_header_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_options)) != 1) { fclose($v_zip_temp_fd); $this->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Store the offset of the central dir $v_offset = @ftell($this->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "New offset of central dir : $v_offset"); // ----- Copy the block of file headers from the old archive $v_size = $v_central_dir['size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes"); $v_buffer = @fread($v_zip_temp_fd, $v_read_size); @fwrite($this->zip_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Create the Central Dir files header for ($i=0, $v_count=0; $iprivWriteCentralFileHeader($v_header_list[$i])) != 1) { fclose($v_zip_temp_fd); $this->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } $v_count++; } // ----- Transform the header to a 'usable' info $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); } // ----- Zip file comment $v_comment = $v_central_dir['comment']; if (isset($p_options[PCLZIP_OPT_COMMENT])) { $v_comment = $p_options[PCLZIP_OPT_COMMENT]; } if (isset($p_options[PCLZIP_OPT_ADD_COMMENT])) { $v_comment = $v_comment.$p_options[PCLZIP_OPT_ADD_COMMENT]; } if (isset($p_options[PCLZIP_OPT_PREPEND_COMMENT])) { $v_comment = $p_options[PCLZIP_OPT_PREPEND_COMMENT].$v_comment; } // ----- Calculate the size of the central header $v_size = @ftell($this->zip_fd)-$v_offset; // ----- Create the central dir footer if (($v_result = $this->privWriteCentralHeader($v_count+$v_central_dir['entries'], $v_size, $v_offset, $v_comment)) != 1) { // ----- Reset the file list unset($v_header_list); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Swap back the file descriptor $v_swap = $this->zip_fd; $this->zip_fd = $v_zip_temp_fd; $v_zip_temp_fd = $v_swap; // ----- Close $this->privCloseFd(); // ----- Close the temporary file @fclose($v_zip_temp_fd); // ----- Delete the zip file // TBC : I should test the result ... @unlink($this->zipname); // ----- Rename the temporary file // TBC : I should test the result ... //@rename($v_zip_temp_name, $this->zipname); PclZipUtilRename($v_zip_temp_name, $this->zipname); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privOpenFd() // Description : // Parameters : // -------------------------------------------------------------------------------- function privOpenFd($p_mode) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privOpenFd", 'mode='.$p_mode); $v_result=1; // ----- Look if already open if ($this->zip_fd != 0) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Zip file \''.$this->zipname.'\' already open'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Open the zip file //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Open file in '.$p_mode.' mode'); if (($this->zip_fd = @fopen($this->zipname, $p_mode)) == 0) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in '.$p_mode.' mode'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privCloseFd() // Description : // Parameters : // -------------------------------------------------------------------------------- function privCloseFd() { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCloseFd", ""); $v_result=1; if ($this->zip_fd != 0) @fclose($this->zip_fd); $this->zip_fd = 0; // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privAddList() // Description : // $p_add_dir and $p_remove_dir will give the ability to memorize a path which is // different from the real path of the file. This is usefull if you want to have PclTar // running in any directory, and memorize relative path from an other directory. // Parameters : // $p_list : An array containing the file or directory names to add in the tar // $p_result_list : list of added files with their properties (specially the status field) // $p_add_dir : Path to add in the filename path archived // $p_remove_dir : Path to remove in the filename path archived // Return Values : // -------------------------------------------------------------------------------- function privAddList($p_list, &$p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_options) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddList", "list, add_dir='$p_add_dir', remove_dir='$p_remove_dir'"); $v_result=1; // ----- Add the files $v_header_list = array(); if (($v_result = $this->privAddFileList($p_list, $v_header_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_options)) != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Store the offset of the central dir $v_offset = @ftell($this->zip_fd); // ----- Create the Central Dir files header for ($i=0,$v_count=0; $iprivWriteCentralFileHeader($v_header_list[$i])) != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } $v_count++; } // ----- Transform the header to a 'usable' info $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); } // ----- Zip file comment $v_comment = ''; if (isset($p_options[PCLZIP_OPT_COMMENT])) { $v_comment = $p_options[PCLZIP_OPT_COMMENT]; } // ----- Calculate the size of the central header $v_size = @ftell($this->zip_fd)-$v_offset; // ----- Create the central dir footer if (($v_result = $this->privWriteCentralHeader($v_count, $v_size, $v_offset, $v_comment)) != 1) { // ----- Reset the file list unset($v_header_list); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privAddFileList() // Description : // $p_add_dir and $p_remove_dir will give the ability to memorize a path which is // different from the real path of the file. This is usefull if you want to // run the lib in any directory, and memorize relative path from an other directory. // Parameters : // $p_list : An array containing the file or directory names to add in the tar // $p_result_list : list of added files with their properties (specially the status field) // $p_add_dir : Path to add in the filename path archived // $p_remove_dir : Path to remove in the filename path archived // Return Values : // -------------------------------------------------------------------------------- function privAddFileList($p_list, &$p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_options) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddFileList", "list, add_dir='$p_add_dir', remove_dir='$p_remove_dir'"); $v_result=1; $v_header = array(); // ----- Recuperate the current number of elt in list $v_nb = sizeof($p_result_list); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Before add, list have $v_nb elements"); // ----- Loop on the files for ($j=0; ($j 0xFF) { // ----- Error log PclZip::privErrorLog(-5, "File name is too long (max. 255) : '$p_filename'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } */ // ----- Look if it is a file or a dir with no all pathnre move if ((is_file($p_filename)) || ((is_dir($p_filename)) && !$p_remove_all_dir)) { // ----- Add the file if (($v_result = $this->privAddFile($p_filename, $v_header, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_options)) != 1) { // ----- Return status //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Store the file infos $p_result_list[$v_nb++] = $v_header; } // ----- Look for directory if (is_dir($p_filename)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "$p_filename is a directory"); // ----- Look for path if ($p_filename != ".") $v_path = $p_filename."/"; else $v_path = ""; // ----- Read the directory for files and sub-directories $p_hdir = opendir($p_filename); $p_hitem = readdir($p_hdir); // '.' directory $p_hitem = readdir($p_hdir); // '..' directory while (($p_hitem = readdir($p_hdir)) !== false) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Looking for $p_hitem in the directory"); // ----- Look for a file if (is_file($v_path.$p_hitem)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Add the file '".$v_path.$p_hitem."'"); // ----- Add the file if (($v_result = $this->privAddFile($v_path.$p_hitem, $v_header, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_options)) != 1) { // ----- Return status //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Store the file infos $p_result_list[$v_nb++] = $v_header; } // ----- Recursive call to privAddFileList() else { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Add the directory '".$v_path.$p_hitem."'"); // ----- Need an array as parameter $p_temp_list[0] = $v_path.$p_hitem; $v_result = $this->privAddFileList($p_temp_list, $p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_options); // ----- Update the number of elements of the list $v_nb = sizeof($p_result_list); } } // ----- Free memory for the recursive loop unset($p_temp_list); unset($p_hdir); unset($p_hitem); } } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "After add, list have $v_nb elements"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privAddFile() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privAddFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_options) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddFile", "filename='$p_filename', add_dir='$p_add_dir', remove_dir='$p_remove_dir'"); $v_result=1; if ($p_filename == "") { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid file list parameter (invalid or empty list)"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Calculate the stored filename $v_stored_filename = $p_filename; // ----- Look for all path to remove if ($p_remove_all_dir) { $v_stored_filename = basename($p_filename); } // ----- Look for partial path remove else if ($p_remove_dir != "") { if (substr($p_remove_dir, -1) != '/') $p_remove_dir .= "/"; if ((substr($p_filename, 0, 2) == "./") || (substr($p_remove_dir, 0, 2) == "./")) { if ((substr($p_filename, 0, 2) == "./") && (substr($p_remove_dir, 0, 2) != "./")) $p_remove_dir = "./".$p_remove_dir; if ((substr($p_filename, 0, 2) != "./") && (substr($p_remove_dir, 0, 2) == "./")) $p_remove_dir = substr($p_remove_dir, 2); } $v_compare = PclZipUtilPathInclusion($p_remove_dir, $p_filename); if ($v_compare > 0) // if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir) { if ($v_compare == 2) { $v_stored_filename = ""; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Path to remove is the current folder"); } else { $v_stored_filename = substr($p_filename, strlen($p_remove_dir)); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Remove path '$p_remove_dir' in file '$p_filename' = '$v_stored_filename'"); } } } // ----- Look for path to add if ($p_add_dir != "") { if (substr($p_add_dir, -1) == "/") $v_stored_filename = $p_add_dir.$v_stored_filename; else $v_stored_filename = $p_add_dir."/".$v_stored_filename; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Add path '$p_add_dir' in file '$p_filename' = '$v_stored_filename'"); } // ----- Filename (reduce the path of stored name) $v_stored_filename = PclZipUtilPathReduction($v_stored_filename); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Filename (reduced) '$v_stored_filename', strlen ".strlen($v_stored_filename)); /* filename length moved after call-back in release 1.3 // ----- Check the path length if (strlen($v_stored_filename) > 0xFF) { // ----- Error log PclZip::privErrorLog(-5, "Stored file name is too long (max. 255) : '$v_stored_filename'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } */ // ----- Set the file properties clearstatcache(); $p_header['version'] = 20; $p_header['version_extracted'] = 10; $p_header['flag'] = 0; $p_header['compression'] = 0; $p_header['mtime'] = filemtime($p_filename); $p_header['crc'] = 0; $p_header['compressed_size'] = 0; $p_header['size'] = filesize($p_filename); $p_header['filename_len'] = strlen($p_filename); $p_header['extra_len'] = 0; $p_header['comment_len'] = 0; $p_header['disk'] = 0; $p_header['internal'] = 0; $p_header['external'] = (is_file($p_filename)?0xFE49FFE0:0x41FF0010); $p_header['offset'] = 0; $p_header['filename'] = $p_filename; $p_header['stored_filename'] = $v_stored_filename; $p_header['extra'] = ''; $p_header['comment'] = ''; $p_header['status'] = 'ok'; $p_header['index'] = -1; // ----- Look for pre-add callback if (isset($p_options[PCLZIP_CB_PRE_ADD])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PCLZIP_CB_PRE_ADD]."()') is defined for the extraction"); // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_header, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. eval('$v_result = '.$p_options[PCLZIP_CB_PRE_ADD].'(PCLZIP_CB_PRE_ADD, $v_local_header);'); if ($v_result == 0) { // ----- Change the file status $p_header['status'] = "skipped"; $v_result = 1; } // ----- Update the informations // Only some fields can be modified if ($p_header['stored_filename'] != $v_local_header['stored_filename']) { $p_header['stored_filename'] = PclZipUtilPathReduction($v_local_header['stored_filename']); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New stored filename is '".$p_header['stored_filename']."'"); } } // ----- Look for empty stored filename if ($p_header['stored_filename'] == "") { $p_header['status'] = "filtered"; } // ----- Check the path length if (strlen($p_header['stored_filename']) > 0xFF) { $p_header['status'] = 'filename_too_long'; } // ----- Look if no error, or file not skipped if ($p_header['status'] == 'ok') { // ----- Look for a file if (is_file($p_filename)) { // ----- Open the source file if (($v_file = @fopen($p_filename, "rb")) == 0) { PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to open file '$p_filename' in binary read mode"); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) { // ----- Read the file content $v_content_compressed = @fread($v_file, $p_header['size']); // ----- Calculate the CRC $p_header['crc'] = crc32($v_content_compressed); } else { // ----- Read the file content $v_content = @fread($v_file, $p_header['size']); // ----- Calculate the CRC $p_header['crc'] = crc32($v_content); // ----- Compress the file $v_content_compressed = gzdeflate($v_content); } // ----- Set header parameters $p_header['compressed_size'] = strlen($v_content_compressed); $p_header['compression'] = 8; // ----- Call the header generation if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { @fclose($v_file); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Write the compressed content $v_binary_data = pack('a'.$p_header['compressed_size'], $v_content_compressed); @fwrite($this->zip_fd, $v_binary_data, $p_header['compressed_size']); // ----- Close the file @fclose($v_file); } // ----- Look for a directory else { // ----- Set the file properties $p_header['filename'] .= '/'; $p_header['filename_len']++; $p_header['size'] = 0; $p_header['external'] = 0x41FF0010; // Value for a folder : to be checked // ----- Call the header generation if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } } } // ----- Look for pre-add callback if (isset($p_options[PCLZIP_CB_POST_ADD])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[PCLZIP_CB_POST_ADD]."()') is defined for the extraction"); // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_header, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. eval('$v_result = '.$p_options[PCLZIP_CB_POST_ADD].'(PCLZIP_CB_POST_ADD, $v_local_header);'); if ($v_result == 0) { // ----- Ignored $v_result = 1; } // ----- Update the informations // Nothing can be modified } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privWriteFileHeader() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privWriteFileHeader(&$p_header) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteFileHeader", 'file="'.$p_header['filename'].'", stored as "'.$p_header['stored_filename'].'"'); $v_result=1; // TBC //for(reset($p_header); $key = key($p_header); next($p_header)) { // //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "header[$key] = ".$p_header[$key]); //} // ----- Store the offset position of the file $p_header['offset'] = ftell($this->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, 'File offset of the header :'.$p_header['offset']); // ----- Transform UNIX mtime to DOS format mdate/mtime //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", $p_header['mtime']).'\''); $v_date = getdate($p_header['mtime']); $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; // ----- Packed data $v_binary_data = pack("VvvvvvVVVvv", 0x04034b50, $p_header['version'], $p_header['flag'], $p_header['compression'], $v_mtime, $v_mdate, $p_header['crc'], $p_header['compressed_size'], $p_header['size'], strlen($p_header['stored_filename']), $p_header['extra_len']); // ----- Write the first 148 bytes of the header in the archive fputs($this->zip_fd, $v_binary_data, 30); // ----- Write the variable fields if (strlen($p_header['stored_filename']) != 0) { fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename'])); } if ($p_header['extra_len'] != 0) { fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']); } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privWriteCentralFileHeader() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privWriteCentralFileHeader(&$p_header) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteCentralFileHeader", 'file="'.$p_header['filename'].'", stored as "'.$p_header['stored_filename'].'"'); $v_result=1; // TBC //for(reset($p_header); $key = key($p_header); next($p_header)) { // //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "header[$key] = ".$p_header[$key]); //} // ----- Transform UNIX mtime to DOS format mdate/mtime //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", $p_header['mtime']).'\''); $v_date = getdate($p_header['mtime']); $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; // ----- Packed data $v_binary_data = pack("VvvvvvvVVVvvvvvVV", 0x02014b50, $p_header['version'], $p_header['version_extracted'], $p_header['flag'], $p_header['compression'], $v_mtime, $v_mdate, $p_header['crc'], $p_header['compressed_size'], $p_header['size'], strlen($p_header['stored_filename']), $p_header['extra_len'], $p_header['comment_len'], $p_header['disk'], $p_header['internal'], $p_header['external'], $p_header['offset']); // ----- Write the 42 bytes of the header in the zip file fputs($this->zip_fd, $v_binary_data, 46); // ----- Write the variable fields if (strlen($p_header['stored_filename']) != 0) { fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename'])); } if ($p_header['extra_len'] != 0) { fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']); } if ($p_header['comment_len'] != 0) { fputs($this->zip_fd, $p_header['comment'], $p_header['comment_len']); } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privWriteCentralHeader() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privWriteCentralHeader($p_nb_entries, $p_size, $p_offset, $p_comment) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteCentralHeader", 'nb_entries='.$p_nb_entries.', size='.$p_size.', offset='.$p_offset.', comment="'.$p_comment.'"'); $v_result=1; // ----- Packed data $v_binary_data = pack("VvvvvVVv", 0x06054b50, 0, 0, $p_nb_entries, $p_nb_entries, $p_size, $p_offset, strlen($p_comment)); // ----- Write the 22 bytes of the header in the zip file fputs($this->zip_fd, $v_binary_data, 22); // ----- Write the variable fields if (strlen($p_comment) != 0) { fputs($this->zip_fd, $p_comment, strlen($p_comment)); } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privList() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privList(&$p_list) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privList", "list"); $v_result=1; // ----- Open the zip file //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Read the central directory informations $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Go to beginning of Central Dir //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Offset : ".$v_central_dir['offset']."'"); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($this->zip_fd)."'"); @rewind($this->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($this->zip_fd)."'"); if (@fseek($this->zip_fd, $v_central_dir['offset'])) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($this->zip_fd)."'"); // ----- Read each entry for ($i=0; $i<$v_central_dir['entries']; $i++) { // ----- Read the file header if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } $v_header['index'] = $i; // ----- Get the only interesting attributes $this->privConvertHeader2FileInfo($v_header, $p_list[$i]); unset($v_header); } // ----- Close the zip file $this->privCloseFd(); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privConvertHeader2FileInfo() // Description : // This function takes the file informations from the central directory // entries and extract the interesting parameters that will be given back. // The resulting file infos are set in the array $p_info // $p_info['filename'] : Filename with full path. Given by user (add), // extracted in the filesystem (extract). // $p_info['stored_filename'] : Stored filename in the archive. // $p_info['size'] = Size of the file. // $p_info['compressed_size'] = Compressed size of the file. // $p_info['mtime'] = Last modification date of the file. // $p_info['comment'] = Comment associated with the file. // $p_info['folder'] = true/false : indicates if the entry is a folder or not. // $p_info['status'] = status of the action on the file. // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privConvertHeader2FileInfo($p_header, &$p_info) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privConvertHeader2FileInfo", "Filename='".$p_header['filename']."'"); $v_result=1; // ----- Get the interesting attributes $p_info['filename'] = $p_header['filename']; $p_info['stored_filename'] = $p_header['stored_filename']; $p_info['size'] = $p_header['size']; $p_info['compressed_size'] = $p_header['compressed_size']; $p_info['mtime'] = $p_header['mtime']; $p_info['comment'] = $p_header['comment']; $p_info['folder'] = (($p_header['external']&0x00000010)==0x00000010); $p_info['index'] = $p_header['index']; $p_info['status'] = $p_header['status']; // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privExtractByRule() // Description : // Extract a file or directory depending of rules (by index, by name, ...) // Parameters : // $p_file_list : An array where will be placed the properties of each // extracted file // $p_path : Path to add while writing the extracted files // $p_remove_path : Path to remove (from the file memorized path) while writing the //extracted files. If the path does not match the file path, //the file is extracted with its memorized path. //$p_remove_path does not apply to 'list' mode. //$p_path and $p_remove_path are commulative. // Return Values : // 1 on success,0 or less on error (see error code list) // -------------------------------------------------------------------------------- function privExtractByRule(&$p_file_list, $p_path, $p_remove_path, $p_remove_all_path, &$p_options) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privExtractByRule", "path='$p_path', remove_path='$p_remove_path', remove_all_path='".($p_remove_all_path?'true':'false')."'"); $v_result=1; // ----- Check the path if (($p_path == "") || ((substr($p_path, 0, 1) != "/") && (substr($p_path, 0, 3) != "../") && (substr($p_path,1,2)!=":/"))) $p_path = "./".$p_path; // ----- Reduce the path last (and duplicated) '/' if (($p_path != "./") && ($p_path != "/")) { // ----- Look for the path end '/' while (substr($p_path, -1) == "/") { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Destination path [$p_path] ends by '/'"); $p_path = substr($p_path, 0, strlen($p_path)-1); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Modified to [$p_path]"); } } // ----- Look for path to remove format (should end by /) if (($p_remove_path != "") && (substr($p_remove_path, -1) != '/')) { $p_remove_path .= '/'; } $p_remove_path_size = strlen($p_remove_path); // ----- Open the zip file //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($v_result = $this->privOpenFd('rb')) != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Read the central directory informations $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { // ----- Close the zip file $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Start at beginning of Central Dir $v_pos_entry = $v_central_dir['offset']; // ----- Read each entry $j_start = 0; for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Read next file header entry : '$i'"); // ----- Read next Central dir entry //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Position before rewind : ".ftell($this->zip_fd)."'"); @rewind($this->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Position after rewind : ".ftell($this->zip_fd)."'"); if (@fseek($this->zip_fd, $v_pos_entry)) { // ----- Close the zip file $this->privCloseFd(); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position after fseek : ".ftell($this->zip_fd)."'"); // ----- Read the file header $v_header = array(); if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1) { // ----- Close the zip file $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Store the index $v_header['index'] = $i; // ----- Store the file position $v_pos_entry = ftell($this->zip_fd); // ----- Look for the specific extract rules $v_extract = false; // ----- Look for extract by name rule if ( (isset($p_options[PCLZIP_OPT_BY_NAME])) && ($p_options[PCLZIP_OPT_BY_NAME] != 0)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByName'"); // ----- Look if the filename is in the list for ($j=0; ($j strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) && (substr($v_header['stored_filename'], 0, strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) == $p_options[PCLZIP_OPT_BY_NAME][$j])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The directory is in the file path"); $v_extract = true; } } // ----- Look for a filename elseif ($v_header['stored_filename'] == $p_options[PCLZIP_OPT_BY_NAME][$j]) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The file is the right one."); $v_extract = true; } } } // ----- Look for extract by ereg rule else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) && ($p_options[PCLZIP_OPT_BY_EREG] != "")) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'"); if (ereg($p_options[PCLZIP_OPT_BY_EREG], $v_header['stored_filename'])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression"); $v_extract = true; } } // ----- Look for extract by preg rule else if ( (isset($p_options[PCLZIP_OPT_BY_PREG])) && ($p_options[PCLZIP_OPT_BY_PREG] != "")) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByEreg'"); if (preg_match($p_options[PCLZIP_OPT_BY_PREG], $v_header['stored_filename'])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression"); $v_extract = true; } } // ----- Look for extract by index rule else if ( (isset($p_options[PCLZIP_OPT_BY_INDEX])) && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByIndex'"); // ----- Look if the index is in the list for ($j=$j_start; ($j=$p_options[PCLZIP_OPT_BY_INDEX][$j]['start']) && ($i<=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end'])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found as part of an index range"); $v_extract = true; } if ($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Do not look this index range for next loop"); $j_start = $j+1; } if ($p_options[PCLZIP_OPT_BY_INDEX][$j]['start']>$i) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Index range is greater than index, stop loop"); break; } } } // ----- Look for no rule, which means extract all the archive else { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with no rule (extract all)"); $v_extract = true; } // ----- Look for real extraction if ($v_extract) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file '".$v_header['filename']."', index '$i'"); // ----- Go to the file position //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftell($this->zip_fd)."'"); @rewind($this->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell($this->zip_fd)."'"); if (@fseek($this->zip_fd, $v_header['offset'])) { // ----- Close the zip file $this->privCloseFd(); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell($this->zip_fd)."'"); // ----- Look for extraction as string if ($p_options[PCLZIP_OPT_EXTRACT_AS_STRING]) { // ----- Extracting the file $v_result1 = $this->privExtractFileAsString($v_header, $v_string); if ($v_result1 < 1) { $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1); return $v_result1; } // ----- Get the only interesting attributes if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted])) != 1) { // ----- Close the zip file $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Set the file content $p_file_list[$v_nb_extracted]['content'] = $v_string; // ----- Next extracted file $v_nb_extracted++; // ----- Look for user callback abort if ($v_result1 == 2) { break; } } // ----- Look for extraction in standard output elseif ( (isset($p_options[PCLZIP_OPT_EXTRACT_IN_OUTPUT])) && ($p_options[PCLZIP_OPT_EXTRACT_IN_OUTPUT])) { // ----- Extracting the file in standard output $v_result1 = $this->privExtractFileInOutput($v_header, $p_options); if ($v_result1 < 1) { $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1); return $v_result1; } // ----- Get the only interesting attributes if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) { $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Look for user callback abort if ($v_result1 == 2) { break; } } // ----- Look for normal extraction else { // ----- Extracting the file $v_result1 = $this->privExtractFile($v_header, $p_path, $p_remove_path, $p_remove_all_path, $p_options); if ($v_result1 < 1) { $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1); return $v_result1; } // ----- Get the only interesting attributes if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) { // ----- Close the zip file $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Look for user callback abort if ($v_result1 == 2) { break; } } } } // ----- Close the zip file $this->privCloseFd(); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privExtractFile() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privExtractFile(&$p_entry, $p_path, $p_remove_path, $p_remove_all_path, &$p_options) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFile', "path='$p_path', remove_path='$p_remove_path', remove_all_path='".($p_remove_all_path?'true':'false')."'"); $v_result=1; // ----- Read the file header if (($v_result = $this->privReadFileHeader($v_header)) != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filename']."', size '".$v_header['size']."'"); // ----- Check that the file header is coherent with $p_entry info // TBC // ----- Look for all path to remove if ($p_remove_all_path == true) { // ----- Get the basename of the path $p_entry['filename'] = basename($p_entry['filename']); } // ----- Look for path to remove else if ($p_remove_path != "") { //if (strcmp($p_remove_path, $p_entry['filename'])==0) if (PclZipUtilPathInclusion($p_remove_path, $p_entry['filename']) == 2) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The folder is the same as the removed path '".$p_entry['filename']."'"); // ----- Change the file status $p_entry['status'] = "filtered"; // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } $p_remove_path_size = strlen($p_remove_path); if (substr($p_entry['filename'], 0, $p_remove_path_size) == $p_remove_path) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found path '$p_remove_path' to remove in file '".$p_entry['filename']."'"); // ----- Remove the path $p_entry['filename'] = substr($p_entry['filename'], $p_remove_path_size); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Resulting file is '".$p_entry['filename']."'"); } } // ----- Add the path if ($p_path != '') { $p_entry['filename'] = $p_path."/".$p_entry['filename']; } // ----- Look for pre-extract callback if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PCLZIP_CB_PRE_EXTRACT]."()') is defined for the extraction"); // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_entry, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); if ($v_result == 0) { // ----- Change the file status $p_entry['status'] = "skipped"; $v_result = 1; } // ----- Look for abort result if ($v_result == 2) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extraction"); // ----- This status is internal and will be changed in 'skipped' $p_entry['status'] = "aborted"; $v_result = PCLZIP_ERR_USER_ABORTED; } // ----- Update the informations // Only some fields can be modified $p_entry['filename'] = $v_local_header['filename']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New filename is '".$p_entry['filename']."'"); } // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file (with path) '".$p_entry['filename']."', size '$v_header[size]'"); // ----- Look if extraction should be done if ($p_entry['status'] == 'ok') { // ----- Look for specific actions while the file exist if (file_exists($p_entry['filename'])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$p_entry['filename']."' already exists"); // ----- Look if file is a directory if (is_dir($p_entry['filename'])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['filename']."' is a directory"); // ----- Change the file status $p_entry['status'] = "already_a_directory"; // ----- Return ////--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); //return $v_result; } // ----- Look if file is write protected else if (!is_writeable($p_entry['filename'])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['filename']."' is write protected"); // ----- Change the file status $p_entry['status'] = "write_protected"; // ----- Return ////--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); //return $v_result; } // ----- Look if the extracted file is older else if (filemtime($p_entry['filename']) > $p_entry['mtime']) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['filename']."' is newer (".date("l dS of F Y h:i:s A", filemtime($p_entry['filename'])).") than the extracted file (".date("l dS of F Y h:i:s A", $p_entry['mtime']).")"); // ----- Change the file status $p_entry['status'] = "newer_exist"; // ----- Return ////--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); //return $v_result; } } // ----- Check the directory availability and create it if necessary else { if ((($p_entry['external']&0x00000010)==0x00000010) || (substr($p_entry['filename'], -1) == '/')) $v_dir_to_check = $p_entry['filename']; else if (!strstr($p_entry['filename'], "/")) $v_dir_to_check = ""; else $v_dir_to_check = dirname($p_entry['filename']); if (($v_result = $this->privDirCheck($v_dir_to_check, (($p_entry['external']&0x00000010)==0x00000010))) != 1) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to create path for '".$p_entry['filename']."'"); // ----- Change the file status $p_entry['status'] = "path_creation_fail"; // ----- Return ////--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); //return $v_result; $v_result = 1; } } } // ----- Look if extraction should be done if ($p_entry['status'] == 'ok') { // ----- Do the extraction (if not a folder) if (!(($p_entry['external']&0x00000010)==0x00000010)) { // ----- Look for not compressed file if ($p_entry['compressed_size'] == $p_entry['size']) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed file"); // ----- Opening destination file if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Error while opening '".$p_entry['filename']."' in write binary mode"); // ----- Change the file status $p_entry['status'] = "write_error"; // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Reading '".$p_entry['size']."' bytes"); // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks $v_size = $p_entry['compressed_size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Read $v_read_size bytes"); $v_buffer = fread($this->zip_fd, $v_read_size); $v_binary_data = pack('a'.$v_read_size, $v_buffer); @fwrite($v_dest_file, $v_binary_data, $v_read_size); $v_size -= $v_read_size; } // ----- Closing the destination file fclose($v_dest_file); // ----- Change the file mtime touch($p_entry['filename'], $p_entry['mtime']); } else { // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file"); // ----- Opening destination file if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Error while opening '".$p_entry['filename']."' in write binary mode"); // ----- Change the file status $p_entry['status'] = "write_error"; //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Reading '".$p_entry['size']."' bytes"); // ----- Read the compressed file in a buffer (one shot) $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); // ----- Decompress the file $v_file_content = gzinflate($v_buffer); unset($v_buffer); // ----- Write the uncompressed data @fwrite($v_dest_file, $v_file_content, $p_entry['size']); unset($v_file_content); // ----- Closing the destination file @fclose($v_dest_file); // ----- Change the file mtime touch($p_entry['filename'], $p_entry['mtime']); } // ----- Look for chmod option if (isset($p_options[PCLZIP_OPT_SET_CHMOD])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "chmod option activated '".$p_options[PCLZIP_OPT_SET_CHMOD]."'"); // ----- Change the mode of the file chmod($p_entry['filename'], $p_options[PCLZIP_OPT_SET_CHMOD]); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done"); } } // ----- Change abort status if ($p_entry['status'] == "aborted") { $p_entry['status'] = "skipped"; } // ----- Look for post-extract callback elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[PCLZIP_CB_POST_EXTRACT]."()') is defined for the extraction"); // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_entry, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);'); // ----- Look for abort result if ($v_result == 2) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extraction"); $v_result = PCLZIP_ERR_USER_ABORTED; } } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privExtractFileInOutput() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privExtractFileInOutput(&$p_entry, &$p_options) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFileInOutput', ""); $v_result=1; // ----- Read the file header if (($v_result = $this->privReadFileHeader($v_header)) != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filename']."', size '".$v_header['size']."'"); // ----- Check that the file header is coherent with $p_entry info // TBC // ----- Look for pre-extract callback if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PCLZIP_CB_PRE_EXTRACT]."()') is defined for the extraction"); // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_entry, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); if ($v_result == 0) { // ----- Change the file status $p_entry['status'] = "skipped"; $v_result = 1; } // ----- Look for abort result if ($v_result == 2) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extraction"); // ----- This status is internal and will be changed in 'skipped' $p_entry['status'] = "aborted"; $v_result = PCLZIP_ERR_USER_ABORTED; } // ----- Update the informations // Only some fields can be modified $p_entry['filename'] = $v_local_header['filename']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New filename is '".$p_entry['filename']."'"); } // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file (with path) '".$p_entry['filename']."', size '$v_header[size]'"); // ----- Look if extraction should be done if ($p_entry['status'] == 'ok') { // ----- Do the extraction (if not a folder) if (!(($p_entry['external']&0x00000010)==0x00000010)) { // ----- Look for not compressed file if ($p_entry['compressed_size'] == $p_entry['size']) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed file"); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Reading '".$p_entry['size']."' bytes"); // ----- Read the file in a buffer (one shot) $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); // ----- Send the file to the output echo $v_buffer; unset($v_buffer); } else { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file"); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Reading '".$p_entry['size']."' bytes"); // ----- Read the compressed file in a buffer (one shot) $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); // ----- Decompress the file $v_file_content = gzinflate($v_buffer); unset($v_buffer); // ----- Send the file to the output echo $v_file_content; unset($v_file_content); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done"); } } // ----- Change abort status if ($p_entry['status'] == "aborted") { $p_entry['status'] = "skipped"; } // ----- Look for post-extract callback elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[PCLZIP_CB_POST_EXTRACT]."()') is defined for the extraction"); // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_entry, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);'); // ----- Look for abort result if ($v_result == 2) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extraction"); $v_result = PCLZIP_ERR_USER_ABORTED; } } //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privExtractFileAsString() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privExtractFileAsString(&$p_entry, &$p_string) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFileAsString', "p_entry['filename']='".$p_entry['filename']."'"); $v_result=1; // ----- Read the file header $v_header = array(); if (($v_result = $this->privReadFileHeader($v_header)) != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filename']."', size '".$v_header['size']."'"); // ----- Check that the file header is coherent with $p_entry info // TBC // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file in string (with path) '".$p_entry['filename']."', size '$v_header[size]'"); // ----- Do the extraction (if not a folder) if (!(($p_entry['external']&0x00000010)==0x00000010)) { // ----- Look for not compressed file if ($p_entry['compressed_size'] == $p_entry['size']) { // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed file"); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Reading '".$p_entry['size']."' bytes"); // ----- Reading the file $p_string = fread($this->zip_fd, $p_entry['compressed_size']); } else { // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file"); // ----- Reading the file $v_data = fread($this->zip_fd, $p_entry['compressed_size']); // ----- Decompress the file $p_string = gzinflate($v_data); } // ----- Trace //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done"); } else { // TBC : error : can not extract a folder in a string } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privReadFileHeader() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privReadFileHeader(&$p_header) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadFileHeader", ""); $v_result=1; // ----- Read the 4 bytes signature $v_binary_data = @fread($this->zip_fd, 4); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary data is : '".sprintf("%08x", $v_binary_data)."'"); $v_data = unpack('Vid', $v_binary_data); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprintf("0x%08x", $v_data['id'])."'"); // ----- Check signature if ($v_data['id'] != 0x04034b50) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid File header"); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Read the first 42 bytes of the header $v_binary_data = fread($this->zip_fd, 26); // ----- Look for invalid block size if (strlen($v_binary_data) != 26) { $p_header['filename'] = ""; $p_header['status'] = "invalid_header"; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid block size : ".strlen($v_binary_data)); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid block size : ".strlen($v_binary_data)); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Extract the values //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Header : '".$v_binary_data."'"); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Header (Hex) : '".bin2hex($v_binary_data)."'"); $v_data = unpack('vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $v_binary_data); // ----- Get filename //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "File name length : ".$v_data['filename_len']); $p_header['filename'] = fread($this->zip_fd, $v_data['filename_len']); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Filename : \''.$p_header['filename'].'\''); // ----- Get extra_fields //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extra field length : ".$v_data['extra_len']); if ($v_data['extra_len'] != 0) { $p_header['extra'] = fread($this->zip_fd, $v_data['extra_len']); } else { $p_header['extra'] = ''; } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Extra field : \''.bin2hex($p_header['extra']).'\''); // ----- Extract properties $p_header['compression'] = $v_data['compression']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compression method : \''.bin2hex($p_header['compression']).'\''); $p_header['size'] = $v_data['size']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size : \''.$p_header['size'].'\''); $p_header['compressed_size'] = $v_data['compressed_size']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compressed Size : \''.$p_header['compressed_size'].'\''); $p_header['crc'] = $v_data['crc']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'CRC : \''.$p_header['crc'].'\''); $p_header['flag'] = $v_data['flag']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Flag : \''.$p_header['flag'].'\''); // ----- Recuperate date in UNIX format $p_header['mdate'] = $v_data['mdate']; $p_header['mtime'] = $v_data['mtime']; if ($p_header['mdate'] && $p_header['mtime']) { // ----- Extract time $v_hour = ($p_header['mtime'] & 0xF800) >> 11; $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; $v_seconde = ($p_header['mtime'] & 0x001F)*2; // ----- Extract date $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; $v_month = ($p_header['mdate'] & 0x01E0) >> 5; $v_day = $p_header['mdate'] & 0x001F; // ----- Get UNIX date format $p_header['mtime'] = mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", $p_header['mtime']).'\''); } else { $p_header['mtime'] = time(); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date is actual : \''.date("d/m/y H:i:s", $p_header['mtime']).'\''); } // ----- Other informations //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Compression type : ".$v_data['compression']); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Version : ".$v_data['version']); // TBC //for(reset($v_data); $key = key($v_data); next($v_data)) { // //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Attribut[$key] = ".$v_data[$key]); //} // ----- Set the stored filename $p_header['stored_filename'] = $p_header['filename']; // ----- Set the status field $p_header['status'] = "ok"; // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privReadCentralFileHeader() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privReadCentralFileHeader(&$p_header) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadCentralFileHeader", ""); $v_result=1; // ----- Read the 4 bytes signature $v_binary_data = @fread($this->zip_fd, 4); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary data is : '".sprintf("%08x", $v_binary_data)."'"); $v_data = unpack('Vid', $v_binary_data); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprintf("0x%08x", $v_data['id'])."'"); // ----- Check signature if ($v_data['id'] != 0x02014b50) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid Central Dir File signature"); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Read the first 42 bytes of the header $v_binary_data = fread($this->zip_fd, 42); // ----- Look for invalid block size if (strlen($v_binary_data) != 42) { $p_header['filename'] = ""; $p_header['status'] = "invalid_header"; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid block size : ".strlen($v_binary_data)); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid block size : ".strlen($v_binary_data)); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Extract the values //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header : '".$v_binary_data."'"); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header (Hex) : '".bin2hex($v_binary_data)."'"); $p_header = unpack('vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $v_binary_data); // ----- Get filename //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "File name length : ".$p_header['filename_len']); if ($p_header['filename_len'] != 0) $p_header['filename'] = fread($this->zip_fd, $p_header['filename_len']); else $p_header['filename'] = ''; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Filename : \''.$p_header['filename'].'\''); // ----- Get extra //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Extra length : ".$p_header['extra_len']); if ($p_header['extra_len'] != 0) $p_header['extra'] = fread($this->zip_fd, $p_header['extra_len']); else $p_header['extra'] = ''; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Extra : \''.$p_header['extra'].'\''); // ----- Get comment //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Comment length : ".$p_header['comment_len']); if ($p_header['comment_len'] != 0) $p_header['comment'] = fread($this->zip_fd, $p_header['comment_len']); else $p_header['comment'] = ''; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Comment : \''.$p_header['comment'].'\''); // ----- Extract properties //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version : \''.($p_header['version']/10).'.'.($p_header['version']%10).'\''); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version need to extract : \''.($p_header['version_extracted']/10).'.'.($p_header['version_extracted']%10).'\''); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Size : \''.$p_header['size'].'\''); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Compressed Size : \''.$p_header['compressed_size'].'\''); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'CRC : \''.$p_header['crc'].'\''); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Flag : \''.$p_header['flag'].'\''); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Offset : \''.$p_header['offset'].'\''); // ----- Recuperate date in UNIX format if ($p_header['mdate'] && $p_header['mtime']) { // ----- Extract time $v_hour = ($p_header['mtime'] & 0xF800) >> 11; $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; $v_seconde = ($p_header['mtime'] & 0x001F)*2; // ----- Extract date $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; $v_month = ($p_header['mdate'] & 0x01E0) >> 5; $v_day = $p_header['mdate'] & 0x001F; // ----- Get UNIX date format $p_header['mtime'] = mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Date : \''.date("d/m/y H:i:s", $p_header['mtime']).'\''); } else { $p_header['mtime'] = time(); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Date is actual : \''.date("d/m/y H:i:s", $p_header['mtime']).'\''); } // ----- Set the stored filename $p_header['stored_filename'] = $p_header['filename']; // ----- Set default status to ok $p_header['status'] = 'ok'; // ----- Look if it is a directory //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Internal (Hex) : '".sprintf("Ox%04X", $p_header['internal'])."'"); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "External (Hex) : '".sprintf("Ox%04X", $p_header['external'])."' (".(($p_header['external']&0x00000010)==0x00000010?'is a folder':'is a file').')'); if (substr($p_header['filename'], -1) == '/') { $p_header['external'] = 0x41FF0010; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Force folder external : \''.$p_header['external'].'\''); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Header of filename : \''.$p_header['filename'].'\''); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privReadEndCentralDir() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privReadEndCentralDir(&$p_central_dir) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadEndCentralDir", ""); $v_result=1; // ----- Go to the end of the zip file $v_size = filesize($this->zipname); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Size of the file :$v_size"); @fseek($this->zip_fd, $v_size); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position at end of zip file : \''.ftell($this->zip_fd).'\''); if (@ftell($this->zip_fd) != $v_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to go to the end of the archive \''.$this->zipname.'\''); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- First try : look if this is an archive with no commentaries (most of the time) // in this case the end of central dir is at 22 bytes of the file end $v_found = 0; if ($v_size > 26) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Look for central dir with no comment'); @fseek($this->zip_fd, $v_size-22); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position after min central position : \''.ftell($this->zip_fd).'\''); if (($v_pos = @ftell($this->zip_fd)) != ($v_size-22)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\''); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Read for bytes $v_binary_data = @fread($this->zip_fd, 4); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Binary data is : '".sprintf("%08x", $v_binary_data)."'"); $v_data = @unpack('Vid', $v_binary_data); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprintf("0x%08x", $v_data['id'])."'"); // ----- Check signature if ($v_data['id'] == 0x06054b50) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found central dir at the default position."); $v_found = 1; } $v_pos = ftell($this->zip_fd); } // ----- Go back to the maximum possible size of the Central Dir End Record if (!$v_found) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Start extended search of end central dir'); $v_maximum_size = 65557; // 0xFFFF + 22; if ($v_maximum_size > $v_size) $v_maximum_size = $v_size; @fseek($this->zip_fd, $v_size-$v_maximum_size); if (@ftell($this->zip_fd) != ($v_size-$v_maximum_size)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\''); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position after max central position : \''.ftell($this->zip_fd).'\''); // ----- Read byte per byte in order to find the signature $v_pos = ftell($this->zip_fd); $v_bytes = 0x00000000; while ($v_pos < $v_size) { // ----- Read a byte $v_byte = @fread($this->zip_fd, 1); // ----- Add the byte $v_bytes = ($v_bytes << 8) | Ord($v_byte); // ----- Compare the bytes if ($v_bytes == 0x504b0506) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Found End Central Dir signature at position : \''.ftell($this->zip_fd).'\''); $v_pos++; break; } $v_pos++; } // ----- Look if not found end of central dir if ($v_pos == $v_size) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to find End of Central Dir Record signature"); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Unable to find End of Central Dir Record signature"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } } // ----- Read the first 18 bytes of the header $v_binary_data = fread($this->zip_fd, 18); // ----- Look for invalid block size if (strlen($v_binary_data) != 18) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid End of Central Dir Record size : ".strlen($v_binary_data)); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid End of Central Dir Record size : ".strlen($v_binary_data)); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Extract the values ////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Central Dir Record : '".$v_binary_data."'"); ////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Central Dir Record (Hex) : '".bin2hex($v_binary_data)."'"); $v_data = unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', $v_binary_data); // ----- Check the global size //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Comment length : ".$v_data['comment_size']); if (($v_pos + $v_data['comment_size'] + 18) != $v_size) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Fail to find the right signature"); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Fail to find the right signature"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Get comment if ($v_data['comment_size'] != 0) $p_central_dir['comment'] = fread($this->zip_fd, $v_data['comment_size']); else $p_central_dir['comment'] = ''; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Comment : \''.$p_central_dir['comment'].'\''); $p_central_dir['entries'] = $v_data['entries']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Nb of entries : \''.$p_central_dir['entries'].'\''); $p_central_dir['disk_entries'] = $v_data['disk_entries']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Nb of entries for this disk : \''.$p_central_dir['disk_entries'].'\''); $p_central_dir['offset'] = $v_data['offset']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Offset of Central Dir : \''.$p_central_dir['offset'].'\''); $p_central_dir['size'] = $v_data['size']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size of Central Dir : \''.$p_central_dir['size'].'\''); $p_central_dir['disk'] = $v_data['disk']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Disk number : \''.$p_central_dir['disk'].'\''); $p_central_dir['disk_start'] = $v_data['disk_start']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Start disk number : \''.$p_central_dir['disk_start'].'\''); // TBC //for(reset($p_central_dir); $key = key($p_central_dir); next($p_central_dir)) { // //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "central_dir[$key] = ".$p_central_dir[$key]); //} // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privDeleteByRule() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privDeleteByRule(&$p_result_list, &$p_options) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDeleteByRule", ""); $v_result=1; $v_list_detail = array(); // ----- Open the zip file //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($v_result=$this->privOpenFd('rb')) != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Read the central directory informations $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Go to beginning of File //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($this->zip_fd)."'"); @rewind($this->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($this->zip_fd)."'"); // ----- Scan all the files // ----- Start at beginning of Central Dir $v_pos_entry = $v_central_dir['offset']; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftell($this->zip_fd)."'"); @rewind($this->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell($this->zip_fd)."'"); if (@fseek($this->zip_fd, $v_pos_entry)) { // ----- Close the zip file $this->privCloseFd(); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell($this->zip_fd)."'"); // ----- Read each entry $v_header_list = array(); $j_start = 0; for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Read next file header entry (index '$i')"); // ----- Read the file header $v_header_list[$v_nb_extracted] = array(); if (($v_result = $this->privReadCentralFileHeader($v_header_list[$v_nb_extracted])) != 1) { // ----- Close the zip file $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename (index '$i') : '".$v_header_list[$v_nb_extracted]['stored_filename']."'"); // ----- Store the index $v_header_list[$v_nb_extracted]['index'] = $i; // ----- Look for the specific extract rules $v_found = false; // ----- Look for extract by name rule if ( (isset($p_options[PCLZIP_OPT_BY_NAME])) && ($p_options[PCLZIP_OPT_BY_NAME] != 0)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByName'"); // ----- Look if the filename is in the list for ($j=0; ($j strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) && (substr($v_header_list[$v_nb_extracted]['stored_filename'], 0, strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) == $p_options[PCLZIP_OPT_BY_NAME][$j])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The directory is in the file path"); $v_found = true; } elseif ( (($v_header_list[$v_nb_extracted]['external']&0x00000010)==0x00000010) /* Indicates a folder */ && ($v_header_list[$v_nb_extracted]['stored_filename'].'/' == $p_options[PCLZIP_OPT_BY_NAME][$j])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The entry is the searched directory"); $v_found = true; } } // ----- Look for a filename elseif ($v_header_list[$v_nb_extracted]['stored_filename'] == $p_options[PCLZIP_OPT_BY_NAME][$j]) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The file is the right one."); $v_found = true; } } } // ----- Look for extract by ereg rule else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) && ($p_options[PCLZIP_OPT_BY_EREG] != "")) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'"); if (ereg($p_options[PCLZIP_OPT_BY_EREG], $v_header_list[$v_nb_extracted]['stored_filename'])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression"); $v_found = true; } } // ----- Look for extract by preg rule else if ( (isset($p_options[PCLZIP_OPT_BY_PREG])) && ($p_options[PCLZIP_OPT_BY_PREG] != "")) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByEreg'"); if (preg_match($p_options[PCLZIP_OPT_BY_PREG], $v_header_list[$v_nb_extracted]['stored_filename'])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression"); $v_found = true; } } // ----- Look for extract by index rule else if ( (isset($p_options[PCLZIP_OPT_BY_INDEX])) && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByIndex'"); // ----- Look if the index is in the list for ($j=$j_start; ($j=$p_options[PCLZIP_OPT_BY_INDEX][$j]['start']) && ($i<=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end'])) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found as part of an index range"); $v_found = true; } if ($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Do not look this index range for next loop"); $j_start = $j+1; } if ($p_options[PCLZIP_OPT_BY_INDEX][$j]['start']>$i) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Index range is greater than index, stop loop"); break; } } } // ----- Look for deletion if ($v_found) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_header_list[$v_nb_extracted]['stored_filename']."', index '$i' need to be deleted"); unset($v_header_list[$v_nb_extracted]); } else { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_header_list[$v_nb_extracted]['stored_filename']."', index '$i' will not be deleted"); $v_nb_extracted++; } } // ----- Look if something need to be deleted if ($v_nb_extracted > 0) { // ----- Creates a temporay file $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; // ----- Creates a temporary zip archive $v_temp_zip = new PclZip($v_zip_temp_name); // ----- Open the temporary zip file in write mode //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary write mode"); if (($v_result = $v_temp_zip->privOpenFd('wb')) != 1) { $this->privCloseFd(); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Look which file need to be kept for ($i=0; $izip_fd)."'"); @rewind($this->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell($this->zip_fd)."'"); if (@fseek($this->zip_fd, $v_header_list[$i]['offset'])) { // ----- Close the zip file $this->privCloseFd(); $v_temp_zip->privCloseFd(); @unlink($v_zip_temp_name); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell($this->zip_fd)."'"); // ----- Read the file header if (($v_result = $this->privReadFileHeader($v_header_list[$i])) != 1) { // ----- Close the zip file $this->privCloseFd(); $v_temp_zip->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Write the file header if (($v_result = $v_temp_zip->privWriteFileHeader($v_header_list[$i])) != 1) { // ----- Close the zip file $this->privCloseFd(); $v_temp_zip->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Offset for this file is '".$v_header_list[$i]['offset']."'"); // ----- Read/write the data block if (($v_result = PclZipUtilCopyBlock($this->zip_fd, $v_temp_zip->zip_fd, $v_header_list[$i]['compressed_size'])) != 1) { // ----- Close the zip file $this->privCloseFd(); $v_temp_zip->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } } // ----- Store the offset of the central dir $v_offset = @ftell($v_temp_zip->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "New offset of central dir : $v_offset"); // ----- Re-Create the Central Dir files header //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Creates the new central directory"); for ($i=0; $iprivWriteCentralFileHeader($v_header_list[$i])) != 1) { $v_temp_zip->privCloseFd(); $this->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Transform the header to a 'usable' info $v_temp_zip->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Creates the central directory footer"); // ----- Zip file comment $v_comment = ''; if (isset($p_options[PCLZIP_OPT_COMMENT])) { $v_comment = $p_options[PCLZIP_OPT_COMMENT]; } // ----- Calculate the size of the central header $v_size = @ftell($v_temp_zip->zip_fd)-$v_offset; // ----- Create the central dir footer if (($v_result = $v_temp_zip->privWriteCentralHeader(sizeof($v_header_list), $v_size, $v_offset, $v_comment)) != 1) { // ----- Reset the file list unset($v_header_list); $v_temp_zip->privCloseFd(); $this->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Close $v_temp_zip->privCloseFd(); $this->privCloseFd(); // ----- Delete the zip file // TBC : I should test the result ... @unlink($this->zipname); // ----- Rename the temporary file // TBC : I should test the result ... //@rename($v_zip_temp_name, $this->zipname); PclZipUtilRename($v_zip_temp_name, $this->zipname); // ----- Destroy the temporary archive unset($v_temp_zip); } // ----- Remove every files : reset the file else if ($v_central_dir['entries'] != 0) { $this->privCloseFd(); if (($v_result = $this->privOpenFd('wb')) != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } if (($v_result = $this->privWriteCentralHeader(0, 0, 0, '')) != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } $this->privCloseFd(); } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privDirCheck() // Description : // Check if a directory exists, if not it creates it and all the parents directory // which may be useful. // Parameters : // $p_dir : Directory path to check. // Return Values : //1 : OK // -1 : Unable to create directory // -------------------------------------------------------------------------------- function privDirCheck($p_dir, $p_is_dir=false) { $v_result = 1; //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDirCheck", "entry='$p_dir', is_dir='".($p_is_dir?"true":"false")."'"); // ----- Remove the final '/' if (($p_is_dir) && (substr($p_dir, -1)=='/')) { $p_dir = substr($p_dir, 0, strlen($p_dir)-1); } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Looking for entry '$p_dir'"); // ----- Check the directory availability if ((is_dir($p_dir)) || ($p_dir == "")) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, "'$p_dir' is a directory"); return 1; } // ----- Extract parent directory $p_parent_dir = dirname($p_dir); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Parent directory is '$p_parent_dir'"); // ----- Just a check if ($p_parent_dir != $p_dir) { // ----- Look for parent directory if ($p_parent_dir != "") { if (($v_result = $this->privDirCheck($p_parent_dir)) != 1) { //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } } } // ----- Create the directory //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Create directory '$p_dir'"); /* * MODIFIED FOR JOOMLA * @since 1.5 December 12, 2005 */ jimport('joomla.filesystem.folder'); if (!JFolder::create($p_dir, 0777)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_DIR_CREATE_FAIL, "Unable to create directory '$p_dir'"); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result, "Directory '$p_dir' created"); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privMerge() // Description : // If $p_archive_to_add does not exist, the function exit with a success result. // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privMerge(&$p_archive_to_add) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privMerge", "archive='".$p_archive_to_add->zipname."'"); $v_result=1; // ----- Look if the archive_to_add exists if (!is_file($p_archive_to_add->zipname)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive to add does not exist. End of merge."); // ----- Nothing to merge, so merge is a success $v_result = 1; // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Look if the archive exists if (!is_file($this->zipname)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive does not exist, duplicate the archive_to_add."); // ----- Do a duplicate $v_result = $this->privDuplicate($p_archive_to_add->zipname); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Open the zip file //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($v_result=$this->privOpenFd('rb')) != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Read the central directory informations $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { $this->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Go to beginning of File //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in zip : ".ftell($this->zip_fd)."'"); @rewind($this->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in zip : ".ftell($this->zip_fd)."'"); // ----- Open the archive_to_add file //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open archive_to_add in binary read mode"); if (($v_result=$p_archive_to_add->privOpenFd('rb')) != 1) { $this->privCloseFd(); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Read the central directory informations $v_central_dir_to_add = array(); if (($v_result = $p_archive_to_add->privReadEndCentralDir($v_central_dir_to_add)) != 1) { $this->privCloseFd(); $p_archive_to_add->privCloseFd(); //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Go to beginning of File //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in archive_to_add : ".ftell($p_archive_to_add->zip_fd)."'"); @rewind($p_archive_to_add->zip_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in archive_to_add : ".ftell($p_archive_to_add->zip_fd)."'"); // ----- Creates a temporay file $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; // ----- Open the temporary file in write mode //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($v_zip_temp_fd = @fopen($v_zip_temp_name, 'wb')) == 0) { $this->privCloseFd(); $p_archive_to_add->privCloseFd(); PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_zip_temp_name.'\' in binary write mode'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Copy the files from the archive to the temporary file // TBC : Here I should better append the file and go back to erase the central dir $v_size = $v_central_dir['offset']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes"); $v_buffer = fread($this->zip_fd, $v_read_size); @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Copy the files from the archive_to_add into the temporary file $v_size = $v_central_dir_to_add['offset']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes"); $v_buffer = fread($p_archive_to_add->zip_fd, $v_read_size); @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Store the offset of the central dir $v_offset = @ftell($v_zip_temp_fd); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "New offset of central dir : $v_offset"); // ----- Copy the block of file headers from the old archive $v_size = $v_central_dir['size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes"); $v_buffer = @fread($this->zip_fd, $v_read_size); @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Copy the block of file headers from the archive_to_add $v_size = $v_central_dir_to_add['size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes"); $v_buffer = @fread($p_archive_to_add->zip_fd, $v_read_size); @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Merge the file comments $v_comment = $v_central_dir['comment'].' '.$v_central_dir_to_add['comment']; // ----- Calculate the size of the (new) central header $v_size = @ftell($v_zip_temp_fd)-$v_offset; // ----- Swap the file descriptor // Here is a trick : I swap the temporary fd with the zip fd, in order to use // the following methods on the temporary fil and not the real archive fd $v_swap = $this->zip_fd; $this->zip_fd = $v_zip_temp_fd; $v_zip_temp_fd = $v_swap; // ----- Create the central dir footer if (($v_result = $this->privWriteCentralHeader($v_central_dir['entries']+$v_central_dir_to_add['entries'], $v_size, $v_offset, $v_comment)) != 1) { $this->privCloseFd(); $p_archive_to_add->privCloseFd(); @fclose($v_zip_temp_fd); $this->zip_fd = null; // ----- Reset the file list unset($v_header_list); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Swap back the file descriptor $v_swap = $this->zip_fd; $this->zip_fd = $v_zip_temp_fd; $v_zip_temp_fd = $v_swap; // ----- Close $this->privCloseFd(); $p_archive_to_add->privCloseFd(); // ----- Close the temporary file @fclose($v_zip_temp_fd); // ----- Delete the zip file // TBC : I should test the result ... @unlink($this->zipname); // ----- Rename the temporary file // TBC : I should test the result ... //@rename($v_zip_temp_name, $this->zipname); PclZipUtilRename($v_zip_temp_name, $this->zipname); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privDuplicate() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privDuplicate($p_archive_filename) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDuplicate", "archive_filename='$p_archive_filename'"); $v_result=1; // ----- Look if the $p_archive_filename exists if (!is_file($p_archive_filename)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive to duplicate does not exist. End of duplicate."); // ----- Nothing to duplicate, so duplicate is a success. $v_result = 1; // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Open the zip file //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($v_result=$this->privOpenFd('wb')) != 1) { // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // ----- Open the temporary file in write mode //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode"); if (($v_zip_temp_fd = @fopen($p_archive_filename, 'rb')) == 0) { $this->privCloseFd(); PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive file \''.$p_archive_filename.'\' in binary write mode'); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); return PclZip::errorCode(); } // ----- Copy the files from the archive to the temporary file // TBC : Here I should better append the file and go back to erase the central dir $v_size = filesize($p_archive_filename); while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read $v_read_size bytes"); $v_buffer = fread($v_zip_temp_fd, $v_read_size); @fwrite($this->zip_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Close $this->privCloseFd(); // ----- Close the temporary file @fclose($v_zip_temp_fd); // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privErrorLog() // Description : // Parameters : // -------------------------------------------------------------------------------- function privErrorLog($p_error_code=0, $p_error_string='') { if (PCLZIP_ERROR_EXTERNAL == 1) { PclError($p_error_code, $p_error_string); } else { $this->error_code = $p_error_code; $this->error_string = $p_error_string; } } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privErrorReset() // Description : // Parameters : // -------------------------------------------------------------------------------- function privErrorReset() { if (PCLZIP_ERROR_EXTERNAL == 1) { PclErrorReset(); } else { $this->error_code = 1; $this->error_string = ''; } } // -------------------------------------------------------------------------------- } // End of class // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilPathReduction() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function PclZipUtilPathReduction($p_dir) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilPathReduction", "dir='$p_dir'"); $v_result = ""; // ----- Look for not empty path if ($p_dir != "") { // ----- Explode path by directory names $v_list = explode("/", $p_dir); // ----- Study directories from last to first for ($i=sizeof($v_list)-1; $i>=0; $i--) { // ----- Look for current path if ($v_list[$i] == ".") { // ----- Ignore this directory // Should be the first $i=0, but no check is done } else if ($v_list[$i] == "..") { // ----- Ignore it and ignore the $i-1 $i--; } else if (($v_list[$i] == "") && ($i!=(sizeof($v_list)-1)) && ($i!=0)) { // ----- Ignore only the double '//' in path, // but not the first and last '/' } else { $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?"/".$v_result:""); } } } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilPathInclusion() // Description : // This function indicates if the path $p_path is under the $p_dir tree. Or, // said in an other way, if the file or sub-dir $p_path is inside the dir // $p_dir. // The function indicates also if the path is exactly the same as the dir. // This function supports path with duplicated '/' like '//', but does not // support '.' or '..' statements. // Parameters : // Return Values : // 0 if $p_path is not inside directory $p_dir // 1 if $p_path is inside directory $p_dir // 2 if $p_path is exactly the same as $p_dir // -------------------------------------------------------------------------------- function PclZipUtilPathInclusion($p_dir, $p_path) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilPathInclusion", "dir='$p_dir', path='$p_path'"); $v_result = 1; // ----- Explode dir and path by directory separator $v_list_dir = explode("/", $p_dir); $v_list_dir_size = sizeof($v_list_dir); $v_list_path = explode("/", $p_path); $v_list_path_size = sizeof($v_list_path); // ----- Study directories paths $i = 0; $j = 0; while (($i < $v_list_dir_size) && ($j < $v_list_path_size) && ($v_result)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Working on dir($i)='".$v_list_dir[$i]."' and path($j)='".$v_list_path[$j]."'"); // ----- Look for empty dir (path reduction) if ($v_list_dir[$i] == '') { $i++; continue; } if ($v_list_path[$j] == '') { $j++; continue; } // ----- Compare the items if (($v_list_dir[$i] != $v_list_path[$j]) && ($v_list_dir[$i] != '') && ( $v_list_path[$j] != '')) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Items ($i,$j) are different"); $v_result = 0; } // ----- Next items $i++; $j++; } // ----- Look if everything seems to be the same if ($v_result) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Look for tie break"); // ----- Skip all the empty items while (($j < $v_list_path_size) && ($v_list_path[$j] == '')) $j++; while (($i < $v_list_dir_size) && ($v_list_dir[$i] == '')) $i++; //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Looking on dir($i)='".($i < $v_list_dir_size?$v_list_dir[$i]:'')."' and path($j)='".($j < $v_list_path_size?$v_list_path[$j]:'')."'"); if (($i >= $v_list_dir_size) && ($j >= $v_list_path_size)) { // ----- There are exactly the same $v_result = 2; } else if ($i < $v_list_dir_size) { // ----- The path is shorter than the dir $v_result = 0; } } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilCopyBlock() // Description : // Parameters : // $p_mode : read/write compression mode // 0 : src & dest normal // 1 : src gzip, dest normal // 2 : src normal, dest gzip // 3 : src & dest gzip // Return Values : // -------------------------------------------------------------------------------- function PclZipUtilCopyBlock($p_src, $p_dest, $p_size, $p_mode=0) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilCopyBlock", "size=$p_size, mode=$p_mode"); $v_result = 1; if ($p_mode==0) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Src offset before read :".(@ftell($p_src))); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Dest offset before write :".(@ftell($p_dest))); while ($p_size != 0) { $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes"); $v_buffer = @fread($p_src, $v_read_size); @fwrite($p_dest, $v_buffer, $v_read_size); $p_size -= $v_read_size; } //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Src offset after read :".(@ftell($p_src))); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Dest offset after write :".(@ftell($p_dest))); } else if ($p_mode==1) { while ($p_size != 0) { $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes"); $v_buffer = @gzread($p_src, $v_read_size); @fwrite($p_dest, $v_buffer, $v_read_size); $p_size -= $v_read_size; } } else if ($p_mode==2) { while ($p_size != 0) { $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes"); $v_buffer = @fread($p_src, $v_read_size); @gzwrite($p_dest, $v_buffer, $v_read_size); $p_size -= $v_read_size; } } else if ($p_mode==3) { while ($p_size != 0) { $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes"); $v_buffer = @gzread($p_src, $v_read_size); @gzwrite($p_dest, $v_buffer, $v_read_size); $p_size -= $v_read_size; } } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilRename() // Description : // This function tries to do a simple rename() function. If it fails, it // tries to copy the $p_src file in a new $p_dest file and then unlink the // first one. // Parameters : // $p_src : Old filename // $p_dest : New filename // Return Values : // 1 on success, 0 on failure. // -------------------------------------------------------------------------------- function PclZipUtilRename($p_src, $p_dest) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilRename", "source=$p_src, destination=$p_dest"); $v_result = 1; // ----- Try to rename the files if (!@rename($p_src, $p_dest)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to rename file, try copy+unlink"); // ----- Try to copy & unlink the src if (!@copy($p_src, $p_dest)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to copy file"); $v_result = 0; } else if (!@unlink($p_src)) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to unlink old filename"); $v_result = 0; } } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilOptionText() // Description : // Translate option value in text. Mainly for debug purpose. // Parameters : // $p_option : the option value. // Return Values : // The option text value. // -------------------------------------------------------------------------------- function PclZipUtilOptionText($p_option) { //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilOptionText", "option='".$p_option."'"); switch ($p_option) { case PCLZIP_OPT_PATH : $v_result = 'PCLZIP_OPT_PATH'; break; case PCLZIP_OPT_ADD_PATH : $v_result = 'PCLZIP_OPT_ADD_PATH'; break; case PCLZIP_OPT_REMOVE_PATH : $v_result = 'PCLZIP_OPT_REMOVE_PATH'; break; case PCLZIP_OPT_REMOVE_ALL_PATH : $v_result = 'PCLZIP_OPT_REMOVE_ALL_PATH'; break; case PCLZIP_OPT_EXTRACT_AS_STRING : $v_result = 'PCLZIP_OPT_EXTRACT_AS_STRING'; break; case PCLZIP_OPT_SET_CHMOD : $v_result = 'PCLZIP_OPT_SET_CHMOD'; break; case PCLZIP_OPT_BY_NAME : $v_result = 'PCLZIP_OPT_BY_NAME'; break; case PCLZIP_OPT_BY_INDEX : $v_result = 'PCLZIP_OPT_BY_INDEX'; break; case PCLZIP_OPT_BY_EREG : $v_result = 'PCLZIP_OPT_BY_EREG'; break; case PCLZIP_OPT_BY_PREG : $v_result = 'PCLZIP_OPT_BY_PREG'; break; case PCLZIP_CB_PRE_EXTRACT : $v_result = 'PCLZIP_CB_PRE_EXTRACT'; break; case PCLZIP_CB_POST_EXTRACT : $v_result = 'PCLZIP_CB_POST_EXTRACT'; break; case PCLZIP_CB_PRE_ADD : $v_result = 'PCLZIP_CB_PRE_ADD'; break; case PCLZIP_CB_POST_ADD : $v_result = 'PCLZIP_CB_POST_ADD'; break; default : $v_result = 'Unknown'; } // ----- Return //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result); return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilTranslateWinPath() // Description : // Translate windows path by replacing '\' by '/' and optionally removing // drive letter. // Parameters : // $p_path : path to translate. // $p_remove_disk_letter : true | false // Return Values : // The path translated. // -------------------------------------------------------------------------------- function PclZipUtilTranslateWinPath($p_path, $p_remove_disk_letter=true) { if (stristr(php_uname(), 'windows')) { // ----- Look for potential disk letter if (($p_remove_disk_letter) && (($v_position = strpos($p_path, ':')) != false)) { $p_path = substr($p_path, $v_position+1); } // ----- Change potential windows directory separator if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) { $p_path = strtr($p_path, '\\', '/'); } } return $p_path; } // -------------------------------------------------------------------------------- ?>elracodelangela/administrator/includes/pcl/index.html0000755000176700017710000000005411061563440023664 0ustar essawireessawireelracodelangela/administrator/includes/pcl/zip.lib.php0000755000176700017710000000534411061563440023756 0ustar essawireessawire // // http://www.zend.com/codex.php?id=470&single=1 // by Denis125 // // A patch from Peter Listiak for last modified // date and time of the compressed file // // Official ZIP file format: http://www.pkware.com/appnote.txt class zipfile { var $datasec = array(); var $ctrl_dir = array(); var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; var $old_offset = 0; function unix2DosTime($unixtime = 0) { $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime); if ($timearray['year'] < 1980) { $timearray['year']= 1980; $timearray['mon'] = 1; $timearray['mday']= 1; $timearray['hours'] = 0; $timearray['minutes'] = 0; $timearray['seconds'] = 0; } return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1); } function addFile($data, $name, $time = 0) { $name = str_replace('\\', '/', $name); $dtime= dechex($this->unix2DosTime($time)); $hexdtime = '\x' . $dtime[6] . $dtime[7] . '\x' . $dtime[4] . $dtime[5] . '\x' . $dtime[2] . $dtime[3] . '\x' . $dtime[0] . $dtime[1]; eval('$hexdtime = "' . $hexdtime . '";'); $fr = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00" . $hexdtime; $unc_len = strlen($data); $crc = crc32($data); $zdata = gzcompress($data); $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); $c_len = strlen($zdata); $fr .= pack('V', $crc) . pack('V', $c_len) . pack('V', $unc_len) . pack('v', strlen($name)) . pack('v', 0) . $name . $zdata . pack('V', $crc) . pack('V', $c_len) . pack('V', $unc_len); $this -> datasec[] = $fr; $new_offset = strlen(implode('', $this->datasec)); $cdrec = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00" . $hexdtime . pack('V', $crc) . pack('V', $c_len) . pack('V', $unc_len) . pack('v', strlen($name)) . pack('v', 0) . pack('v', 0) . pack('v', 0) . pack('v', 0) . pack('V', 32) . pack('V', $this -> old_offset ); $this -> old_offset = $new_offset; $cdrec .= $name; $this -> ctrl_dir[] = $cdrec; } function file() { $data = implode('', $this -> datasec); $ctrldir = implode('', $this -> ctrl_dir); return $data . $ctrldir . $this -> eof_ctrl_dir . pack('v', sizeof($this -> ctrl_dir)) . pack('v', sizeof($this -> ctrl_dir)) . pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00"; } } ?>elracodelangela/administrator/includes/pcl/pcltrace.lib.php0000755000176700017710000003562111061563440024752 0ustar essawireessawire"; echo ""; echo ""; echo ""; echo "
    Trace
    "; echo ""; echo ""; echo ""; echo ""; echo ""; // ----- Content header echo ""; // ----- Display $v_again=0; for ($i=0; $i"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } // ----- Content footer echo "
    "; $n = ($g_pcl_trace_entries[$i]["index"]+1)*10; echo ""; echo ""; switch ($g_pcl_trace_entries[$i]["type"]) { case 1: echo ""; break; case 2: echo ""; break; case 3: case 4: echo ""; break; default: echo ""; } echo "
    "; for ($j=0; $j<=$g_pcl_trace_entries[$i]["index"]; $j++) { if ($j==$g_pcl_trace_entries[$i]["index"]) { if (($g_pcl_trace_entries[$i]["type"] == 1) || ($g_pcl_trace_entries[$i]["type"] == 2)) echo ""; } else echo ""; } //echo ""; echo "
    +
    |
     
    ".$g_pcl_trace_entries[$i]["name"]."(".$g_pcl_trace_entries[$i]["param"].")".$g_pcl_trace_entries[$i]["name"]."()=".$g_pcl_trace_entries[$i]["param"]."
    "; echo "".$g_pcl_trace_entries[$i]["message"].""; echo "
    ".$g_pcl_trace_entries[$i]["name"]."(".$g_pcl_trace_entries[$i]["param"].")
    ".basename($g_pcl_trace_entries[$i]["file"])."".$g_pcl_trace_entries[$i]["line"]."
    "; // ----- Trace footer echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
     
    "; echo ""; echo ""; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclTraceAction() // Description : // Parameters : // -------------------------------------------------------------------------------- function PclTraceAction($p_entry) { global $g_pcl_trace_level; global $g_pcl_trace_mode; global $g_pcl_trace_filename; global $g_pcl_trace_name; global $g_pcl_trace_index; global $g_pcl_trace_entries; if ($g_pcl_trace_mode == "normal") { for ($i=0; $i<$p_entry["index"]; $i++) echo "---"; if ($p_entry["type"] == 1) echo "".$p_entry["name"]."(".$p_entry["param"].") : ".$p_entry["message"]." [".$p_entry["file"].", ".$p_entry["line"]."]
    "; else if ($p_entry["type"] == 2) echo "".$p_entry["name"]."()=".$p_entry["param"]." : ".$p_entry["message"]." [".$p_entry["file"].", ".$p_entry["line"]."]
    "; else echo $p_entry["message"]." [".$p_entry["file"].", ".$p_entry["line"]."]
    "; } } // -------------------------------------------------------------------------------- // ----- End of double include look } ?>elracodelangela/administrator/includes/toolbar.php0000755000176700017710000003537311061563440023300 0ustar essawireessawire\n"; $html .= "$title\n"; $html .= "\n"; $mainframe->set('JComponentTitle', $html); } /** * Writes a spacer cell * @param string The width for the cell * @since 1.0 */ function spacer($width = '') { $bar = & JToolBar::getInstance('toolbar'); // Add a spacer $bar->appendButton( 'Separator', 'spacer', $width ); } /** * Write a divider between menu buttons * @since 1.0 */ function divider() { $bar = & JToolBar::getInstance('toolbar'); // Add a divider $bar->appendButton( 'Separator', 'divider' ); } /** * Writes a custom option and task button for the button bar * @param string The task to perform (picked up by the switch($task) blocks * @param string The image to display * @param string The image to display when moused over * @param string The alt text for the icon image * @param boolean True if required to check that a standard list item is checked * @param boolean True if required to include callinh hideMainMenu() * @since 1.0 */ function custom($task = '', $icon = '', $iconOver = '', $alt = '', $listSelect = true, $x = false) { $bar = & JToolBar::getInstance('toolbar'); //strip extension $icon = preg_replace('#\.[^.]*$#', '', $icon); // Add a standard button $bar->appendButton( 'Standard', $icon, $alt, $task, $listSelect, $x ); } /** * Writes a custom option and task button for the button bar. * Extended version of custom() calling hideMainMenu() before submitbutton(). * @param string The task to perform (picked up by the switch($task) blocks * @param string The image to display * @param string The image to display when moused over * @param string The alt text for the icon image * @param boolean True if required to check that a standard list item is checked * @since 1.0 * (NOTE this is being deprecated) */ function customX($task = '', $icon = '', $iconOver = '', $alt = '', $listSelect = true) { $bar = & JToolBar::getInstance('toolbar'); //strip extension $icon = preg_replace('#\.[^.]*$#', '', $icon); // Add a standard button $bar->appendButton( 'Standard', $icon, $alt, $task, $listSelect, true ); } /** * Writes a preview button for a given option (opens a popup window) * @param string The name of the popup file (excluding the file extension) * @since 1.0 */ function preview($url = '', $updateEditors = false) { $bar = & JToolBar::getInstance('toolbar'); // Add a preview button $bar->appendButton( 'Popup', 'preview', 'Preview', "$url&task=preview" ); } /** * Writes a preview button for a given option (opens a popup window) * @param string The name of the popup file (excluding the file extension for an xml file) * @param boolean Use the help file in the component directory * @since 1.0 */ function help($ref, $com = false) { $bar = & JToolBar::getInstance('toolbar'); // Add a help button $bar->appendButton( 'Help', $ref, $com ); } /** * Writes a cancel button that will go back to the previous page without doing * any other operation * @since 1.0 */ function back($alt = 'Back', $href = 'javascript:history.back();') { $bar = & JToolBar::getInstance('toolbar'); // Add a back button $bar->appendButton( 'Link', 'back', $alt, $href ); } /** * Writes a media_manager button * @param string The sub-drectory to upload the media to * @since 1.0 */ function media_manager($directory = '', $alt = 'Upload') { $bar = & JToolBar::getInstance('toolbar'); // Add an upload button $bar->appendButton( 'Popup', 'upload', $alt, "index.php?option=com_media&tmpl=component&task=popupUpload&directory=$directory", 550, 80 ); } /** * Writes the common 'new' icon for the button bar * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function addNew($task = 'add', $alt = 'New') { $bar = & JToolBar::getInstance('toolbar'); // Add a new button $bar->appendButton( 'Standard', 'new', $alt, $task, false, false ); } /** * Writes the common 'new' icon for the button bar. * Extended version of addNew() calling hideMainMenu() before submitbutton(). * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function addNewX($task = 'add', $alt = 'New') { $bar = & JToolBar::getInstance('toolbar'); // Add a new button (hide menu) $bar->appendButton( 'Standard', 'new', $alt, $task, false, true ); } /** * Writes a common 'publish' button * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function publish($task = 'publish', $alt = 'Publish') { $bar = & JToolBar::getInstance('toolbar'); // Add a publish button //$bar->appendButton( 'Publish', false, $alt, $task ); $bar->appendButton( 'Standard', 'publish', $alt, $task, false, false ); } /** * Writes a common 'publish' button for a list of records * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function publishList($task = 'publish', $alt = 'Publish') { $bar = & JToolBar::getInstance('toolbar'); // Add a publish button (list) $bar->appendButton( 'Standard', 'publish', $alt, $task, true, false ); } /** * Writes a common 'default' button for a record * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function makeDefault($task = 'default', $alt = 'Default') { $bar = & JToolBar::getInstance('toolbar'); // Add a default button $bar->appendButton( 'Standard', 'default', $alt, $task, true, false ); } /** * Writes a common 'assign' button for a record * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function assign($task = 'assign', $alt = 'Assign') { $bar = & JToolBar::getInstance('toolbar'); // Add an assign button $bar->appendButton( 'Standard', 'assign', $alt, $task, true, false ); } /** * Writes a common 'unpublish' button * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function unpublish($task = 'unpublish', $alt = 'Unpublish') { $bar = & JToolBar::getInstance('toolbar'); // Add an unpublish button $bar->appendButton( 'Standard', 'unpublish', $alt, $task, false, false ); } /** * Writes a common 'unpublish' button for a list of records * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function unpublishList($task = 'unpublish', $alt = 'Unpublish') { $bar = & JToolBar::getInstance('toolbar'); // Add an unpublish button (list) $bar->appendButton( 'Standard', 'unpublish', $alt, $task, true, false ); } /** * Writes a common 'archive' button for a list of records * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function archiveList($task = 'archive', $alt = 'Archive') { $bar = & JToolBar::getInstance('toolbar'); // Add an archive button $bar->appendButton( 'Standard', 'archive', $alt, $task, true, false ); } /** * Writes an unarchive button for a list of records * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function unarchiveList($task = 'unarchive', $alt = 'Unarchive') { $bar = & JToolBar::getInstance('toolbar'); // Add an unarchive button (list) $bar->appendButton( 'Standard', 'unarchive', $alt, $task, true, false ); } /** * Writes a common 'edit' button for a list of records * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function editList($task = 'edit', $alt = 'Edit') { $bar = & JToolBar::getInstance('toolbar'); // Add an edit button $bar->appendButton( 'Standard', 'edit', $alt, $task, true, false ); } /** * Writes a common 'edit' button for a list of records. * Extended version of editList() calling hideMainMenu() before submitbutton(). * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function editListX($task = 'edit', $alt = 'Edit') { $bar = & JToolBar::getInstance('toolbar'); // Add an edit button (hide) $bar->appendButton( 'Standard', 'edit', $alt, $task, true, true ); } /** * Writes a common 'edit' button for a template html * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function editHtml($task = 'edit_source', $alt = 'Edit HTML') { $bar = & JToolBar::getInstance('toolbar'); // Add an edit html button $bar->appendButton( 'Standard', 'edithtml', $alt, $task, true, false ); } /** * Writes a common 'edit' button for a template html. * Extended version of editHtml() calling hideMainMenu() before submitbutton(). * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function editHtmlX($task = 'edit_source', $alt = 'Edit HTML') { $bar = & JToolBar::getInstance('toolbar'); // Add an edit html button (hide) $bar->appendButton( 'Standard', 'edithtml', $alt, $task, true, true ); } /** * Writes a common 'edit' button for a template css * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function editCss($task = 'edit_css', $alt = 'Edit CSS') { $bar = & JToolBar::getInstance('toolbar'); // Add an edit css button (hide) $bar->appendButton( 'Standard', 'editcss', $alt, $task, true, false ); } /** * Writes a common 'edit' button for a template css. * Extended version of editCss() calling hideMainMenu() before submitbutton(). * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function editCssX($task = 'edit_css', $alt = 'Edit CSS') { $bar = & JToolBar::getInstance('toolbar'); // Add an edit css button (hide) $bar->appendButton( 'Standard', 'editcss', $alt, $task, true, true ); } /** * Writes a common 'delete' button for a list of records * @param string Postscript for the 'are you sure' message * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function deleteList($msg = '', $task = 'remove', $alt = 'Delete') { $bar = & JToolBar::getInstance('toolbar'); // Add a delete button if ($msg) { $bar->appendButton( 'Confirm', $msg, 'delete', $alt, $task, true, false ); } else { $bar->appendButton( 'Standard', 'delete', $alt, $task, true, false ); } } /** * Writes a common 'delete' button for a list of records. * Extended version of deleteList() calling hideMainMenu() before submitbutton(). * @param string Postscript for the 'are you sure' message * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function deleteListX($msg = '', $task = 'remove', $alt = 'Delete') { $bar = & JToolBar::getInstance('toolbar'); // Add a delete button (hide) if ($msg) { $bar->appendButton( 'Confirm', $msg, 'delete', $alt, $task, true, true ); } else { $bar->appendButton( 'Standard', 'delete', $alt, $task, true, true ); } } /** * Write a trash button that will move items to Trash Manager * @since 1.0 */ function trash($task = 'remove', $alt = 'Trash', $check = true) { $bar = & JToolBar::getInstance('toolbar'); // Add a trash button $bar->appendButton( 'Standard', 'trash', $alt, $task, $check, false ); } /** * Writes a save button for a given option * Apply operation leads to a save action only (does not leave edit mode) * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function apply($task = 'apply', $alt = 'Apply') { $bar = & JToolBar::getInstance('toolbar'); // Add an apply button $bar->appendButton( 'Standard', 'apply', $alt, $task, false, false ); } /** * Writes a save button for a given option * Save operation leads to a save and then close action * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function save($task = 'save', $alt = 'Save') { $bar = & JToolBar::getInstance('toolbar'); // Add a save button $bar->appendButton( 'Standard', 'save', $alt, $task, false, false ); } /** * Writes a cancel button and invokes a cancel operation (eg a checkin) * @param string An override for the task * @param string An override for the alt text * @since 1.0 */ function cancel($task = 'cancel', $alt = 'Cancel') { $bar = & JToolBar::getInstance('toolbar'); // Add a cancel button $bar->appendButton( 'Standard', 'cancel', $alt, $task, false, false ); } /** * Writes a configuration button and invokes a cancel operation (eg a checkin) * @param string The name of the component, eg, com_content * @param int The height of the popup * @param int The width of the popup * @param string The name of the button * @param string An alternative path for the configuation xml relative to JPATH_SITE * @since 1.0 */ function preferences($component, $height='150', $width='570', $alt = 'Preferences', $path = '') { $user =& JFactory::getUser(); if ($user->get('gid') != 25) { return; } $component = urlencode( $component ); $path = urlencode( $path ); $bar = & JToolBar::getInstance('toolbar'); // Add a configuration button $bar->appendButton( 'Popup', 'config', $alt, 'index.php?option=com_config&controller=component&component='.$component.'&path='.$path, $width, $height ); } } /** * Utility class for the submenu * * @package Joomla */ class JSubMenuHelper { function addEntry($name, $link = '', $active = false) { $menu = &JToolBar::getInstance('submenu'); $menu->appendButton($name, $link, $active); } } ?> elracodelangela/administrator/includes/helper.php0000755000176700017710000000224411061563440023104 0ustar essawireessawireget('guest')) { $option = 'com_login'; } if(empty($option)) { $option = 'com_cpanel'; } JRequest::setVar('option', $option); return $option; } } ?>elracodelangela/administrator/includes/router.php0000755000176700017710000000230311061563440023141 0ustar essawireessawire_createURI($url); return $uri; } }elracodelangela/administrator/includes/pageNavigation.php0000755000176700017710000000037011061563440024557 0ustar essawireessawire elracodelangela/administrator/includes/js/ThemeOffice/0000755000176700017710000000000011061563571023706 5ustar essawireessawireelracodelangela/administrator/includes/js/ThemeOffice/theme_rtl.js0000755000176700017710000000330411061563440026225 0ustar essawireessawire // directory of where all the images are var cmThemeOfficeBase = '../includes/js/ThemeOffice/'; var cmThemeOffice = { // main menu display attributes // // Note. When the menu bar is horizontal, // mainFolderLeft and mainFolderRight are // put in . When the menu // bar is vertical, they would be put in // a separate TD cell. // HTML code to the left of the folder item mainFolderLeft: ' ', // HTML code to the right of the folder item mainFolderRight: ' ', // HTML code to the left of the regular item mainItemLeft: ' ', // HTML code to the right of the regular item mainItemRight: ' ', // sub menu display attributes // 0, HTML code to the left of the folder item folderLeft: '', // 1, HTML code to the right of the folder item folderRight: '', // 2, HTML code to the left of the regular item itemLeft: '', // 3, HTML code to the right of the regular item itemRight: '', // 4, cell spacing for main menu mainSpacing: 0, // 5, cell spacing for sub menus subSpacing: 0, // 6, auto dispear time for submenus in milli-seconds delay: 500 }; // for horizontal menu split var cmThemeOfficeHSplit = [_cmNoAction, '
    ']; var cmThemeOfficeMainHSplit = [_cmNoAction, '
    ']; var cmThemeOfficeMainVSplit = [_cmNoAction, ' ']; elracodelangela/administrator/includes/js/ThemeOffice/theme.js0000755000176700017710000000330011061563440025340 0ustar essawireessawire // directory of where all the images are var cmThemeOfficeBase = '../includes/js/ThemeOffice/'; var cmThemeOffice = { // main menu display attributes // // Note. When the menu bar is horizontal, // mainFolderLeft and mainFolderRight are // put in . When the menu // bar is vertical, they would be put in // a separate TD cell. // HTML code to the left of the folder item mainFolderLeft: ' ', // HTML code to the right of the folder item mainFolderRight: ' ', // HTML code to the left of the regular item mainItemLeft: ' ', // HTML code to the right of the regular item mainItemRight: ' ', // sub menu display attributes // 0, HTML code to the left of the folder item folderLeft: '', // 1, HTML code to the right of the folder item folderRight: '', // 2, HTML code to the left of the regular item itemLeft: '', // 3, HTML code to the right of the regular item itemRight: '', // 4, cell spacing for main menu mainSpacing: 0, // 5, cell spacing for sub menus subSpacing: 0, // 6, auto dispear time for submenus in milli-seconds delay: 500 }; // for horizontal menu split var cmThemeOfficeHSplit = [_cmNoAction, '
    ']; var cmThemeOfficeMainHSplit = [_cmNoAction, '
    ']; var cmThemeOfficeMainVSplit = [_cmNoAction, ' ']; elracodelangela/administrator/includes/js/ThemeOffice/index.html0000755000176700017710000000005711061563440025703 0ustar essawireessawire elracodelangela/administrator/includes/framework.php0000755000176700017710000000427711061563440023632 0ustar essawireessawireerror_reporting === 0) { error_reporting( 0 ); } else if (@$CONFIG->error_reporting > 0) { error_reporting( $CONFIG->error_reporting ); ini_set( 'display_errors', 1 ); } define( 'JDEBUG', $CONFIG->debug ); unset( $CONFIG ); /* * Joomla! framework loading */ // Include object abstract class require_once(JPATH_SITE.DS.'libraries'.DS.'joomla'.DS.'utilities'.DS.'compat'.DS.'compat.php'); // System profiler if (JDEBUG) { jimport( 'joomla.error.profiler' ); $_PROFILER =& JProfiler::getInstance( 'Application' ); } // Joomla! library imports jimport( 'joomla.application.menu' ); jimport( 'joomla.user.user'); jimport( 'joomla.environment.uri' ); jimport( 'joomla.html.html' ); jimport( 'joomla.html.parameter' ); jimport( 'joomla.utilities.utility' ); jimport( 'joomla.event.event'); jimport( 'joomla.event.dispatcher'); jimport( 'joomla.language.language'); jimport( 'joomla.utilities.string' ); ?> elracodelangela/administrator/includes/index.html0000755000176700017710000000005411061563440023106 0ustar essawireessawireelracodelangela/administrator/includes/defines.php0000755000176700017710000000236011061563440023241 0ustar essawireessawiregetName(), '', JURI::base(true))); } /** * Initialise the application. * * @access public * @param array An optional associative array of configuration settings. */ function initialise($options = array()) { // if a language was specified it has priority // otherwise use user or default language settings if (empty($options['language'])) { $user = & JFactory::getUser(); $lang = $user->getParam( 'admin_language' ); // Make sure that the user's language exists if ( $lang && JLanguage::exists($lang) ) { $options['language'] = $lang; } else { $params = JComponentHelper::getParams('com_languages'); $client =& JApplicationHelper::getClientInfo($this->getClientId()); $options['language'] = $params->get($client->name, 'en-GB'); } } // One last check to make sure we have something if ( ! JLanguage::exists($options['language']) ) { $options['language'] = 'en-GB'; } parent::initialise($options); } /** * Route the application * * @access public */ function route() { } /** * Return a reference to the JRouter object. * * @access public * @return JRouter. * @since 1.5 */ function &getRouter() { $router =& parent::getRouter('administrator'); return $router; } /** * Dispatch the application * * @access public */ function dispatch($component) { $document =& JFactory::getDocument(); $user =& JFactory::getUser(); switch($document->getType()) { case 'html' : { $document->setMetaData( 'keywords', $this->getCfg('MetaKeys') ); if ( $user->get('id') ) { $document->addScript( JURI::root(true).'/includes/js/joomla.javascript.js'); } JHTML::_('behavior.mootools'); } break; default : break; } $document->setTitle( htmlspecialchars_decode($this->getCfg('sitename' )). ' - ' .JText::_( 'Administration' )); $document->setDescription( $this->getCfg('MetaDesc') ); $contents = JComponentHelper::renderComponent($component); $document->setBuffer($contents, 'component'); } /** * Display the application. * * @access public */ function render() { $component = JRequest::getCmd('option'); $template = $this->getTemplate(); $file = JRequest::getCmd('tmpl', 'index'); if($component == 'com_login') { $file = 'login'; } $params = array( 'template' => $template, 'file' => $file.'.php', 'directory' => JPATH_THEMES ); $document =& JFactory::getDocument(); $data = $document->render($this->getCfg('caching'), $params ); JResponse::setBody($data); } /** * Login authentication function * * @param array Array( 'username' => string, 'password' => string ) * @param array Array( 'remember' => boolean ) * @access public * @see JApplication::login */ function login($credentials, $options = array()) { //The minimum group $options['group'] = 'Public Backend'; //Make sure users are not autoregistered $options['autoregister'] = false; //Set the application login entry point if(!array_key_exists('entry_url', $options)) { $options['entry_url'] = JURI::base().'index.php?option=com_user&task=login'; } $result = parent::login($credentials, $options); if(!JError::isError($result)) { $lang = JRequest::getCmd('lang'); $lang = preg_replace( '/[^A-Z-]/i', '', $lang ); $this->setUserState( 'application.lang', $lang ); JAdministrator::purgeMessages(); } return $result; } /** * Get the template * * @return string The template name * @since 1.0 */ function getTemplate() { static $template; if (!isset($template)) { // Load the template name from the database $db =& JFactory::getDBO(); $query = 'SELECT template' . ' FROM #__templates_menu' . ' WHERE client_id = 1' . ' AND menuid = 0' ; $db->setQuery( $query ); $template = $db->loadResult(); $template = JFilterInput::clean($template, 'cmd'); if (!file_exists(JPATH_THEMES.DS.$template.DS.'index.php')) { $template = 'khepri'; } } return $template; } /** * Purge the jos_messages table of old messages * * static method * @since 1.5 */ function purgeMessages() { $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $userid = $user->get('id'); $query = 'SELECT *' . ' FROM #__messages_cfg' . ' WHERE user_id = ' . (int) $userid . ' AND cfg_name = "auto_purge"' ; $db->setQuery( $query ); $config = $db->loadObject( ); // check if auto_purge value set if (is_object( $config ) and $config->cfg_name == 'auto_purge' ) { $purge = $config->cfg_value; } else { // if no value set, default is 7 days $purge = 7; } // calculation of past date // if purge value is not 0, then allow purging of old messages if ($purge > 0) { // purge old messages at day set in message configuration $past =& JFactory::getDate(time() - $purge * 86400); $pastStamp = $past->toMySQL(); $query = 'DELETE FROM #__messages' . ' WHERE date_time < ' . $db->Quote( $pastStamp ) . ' AND user_id_to = ' . (int) $userid ; $db->setQuery( $query ); $db->query(); } } /** * Deprecated, use JURI::root() instead. * * @since 1.5 * @deprecated As of version 1.5 * @see JURI::root() */ function getSiteURL() { return JURI::root(); } } elracodelangela/administrator/templates/0000755000176700017710000000000011061563565021307 5ustar essawireessawireelracodelangela/administrator/templates/system/0000755000176700017710000000000011061563565022633 5ustar essawireessawireelracodelangela/administrator/templates/system/error.php0000755000176700017710000000246411061563432024477 0ustar essawireessawire

    error->code ?> -

    error->message ?>

    debug) : echo $this->renderBacktrace(); endif; ?>

    elracodelangela/administrator/templates/system/css/0000755000176700017710000000000011061563565023423 5ustar essawireessawireelracodelangela/administrator/templates/system/css/error.css0000755000176700017710000000204211061563433025261 0ustar essawireessawire/** * CSS Document for offline page * @version $Id: error.css 1264 2005-11-30 19:37:13Z Jinx $ * @package Joomla * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software and parts of it may contain or be derived from the * GNU General Public License or other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ .outline { border: 1px solid #cccccc; background: #ffffff; padding: 2px; } body { margin: 15px; height: 100%; padding: 0px; font-family: Arial, Helvetica, Sans Serif; font-size: 11px; color: #333333; background: #ffffff; } .frame { background-color:#FEFCF3; padding:8px; border:solid 1px #000000; margin-top:13px; margin-bottom:25px; } .table { border-collapse:collapse; margin-top:13px; } td { padding:3px; padding-left:5px; padding-right:5px; border:solid 1px #bbbbbb; font-size: 10px; } .type { background-color:#cc0000; color:#ffffff; font-weight:bold; padding:3px; }elracodelangela/administrator/templates/system/css/index.html0000755000176700017710000000005411061563433025414 0ustar essawireessawireelracodelangela/administrator/templates/system/css/system.css0000755000176700017710000000207311061563433025460 0ustar essawireessawire/* OpenID icon style */ input.system-openid { background: url(http://openid.net/login-bg.gif) no-repeat; background-color: #fff; background-position: 0 50%; color: #000; padding-left: 18px; } /* System Messages */ #system-message { margin-bottom: 10px; padding: 0;} #system-message dt { font-weight: bold; } #system-message dd { margin: 0; font-weight: bold; text-indent: 30px; } #system-message dd ul { color: #0055BB; margin-bottom: 10px; list-style: none; padding: 10px; border-top: 3px solid #84A7DB; border-bottom: 3px solid #84A7DB;} /* System Standard Messages */ #system-message dt.message { display: none; } #system-message dd.message { } /* System Error Messages */ #system-message dt.error { display: none; } #system-message dd.error ul { color: #c00; background-color: #E6C0C0; border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B;} /* System Notice Messages */ #system-message dt.notice { display: none; } #system-message dd.notice ul { color: #c00; background: #EFE7B8; border-top: 3px solid #F0DC7E; border-bottom: 3px solid #F0DC7E;}elracodelangela/administrator/templates/system/images/0000755000176700017710000000000011061563565024100 5ustar essawireessawireelracodelangela/administrator/templates/system/images/calendar.png0000755000176700017710000000124311061563433026354 0ustar essawireessawirePNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<5IDAT8˥KQQs4B$[U;i6h&h["jբMBFQ&2 "!!2l{NWY /=}*;9![\v*D'`EpNpX'UpVq"Sw.Djw7{|$W@q`Lt/d~W[%BH L l>/`xl xD$"q[d(o FjeUU}.Ex toJU5"0NUV UM2r7P3.&"ZP JTS =EݤqB=kJ V"x\.F@D],#X=ZycIgڒTt[<_~H%Q qQ mXAKu1|/M@!F>"
    >9Qv7aY8:]X9u #BZ=pIENDB`elracodelangela/administrator/templates/system/images/index.html0000755000176700017710000000005411061563433026071 0ustar essawireessawireelracodelangela/administrator/templates/system/images/notice-download.png0000755000176700017710000000257411061563433027701 0ustar essawireessawirePNG  IHDRaM=sBITO PLTEE ݼM6D0z{7K/Cf$YՎ@. Uό>y)S@I^^I &$   NA2:P|D.~~,UÑ5VՂz9 U`YFE]@ y4d8]b(]K9@&E FihhtBd%e4s#jˢ@ڜ8lLUI3m@-R iI@e hkK c  I֕`NfD4 䢣!l4Sh,(yŀ@Ut0S B,@`P//BJ @ MUrT{ZfmQhi2PF1lt dhhh90P{YY$}ɥ˓Jd@%l 9QQ& ʳC`,vIENDB`elracodelangela/administrator/templates/system/images/notice-alert.png0000755000176700017710000000171511061563433027175 0ustar essawireessawirePNG  IHDRaM=sBITOPLTE ಲYY//㏏tt))Ϥbb&&!!皚 ﷷttccCCQQ//جス==}}㑑<<:: ggʠiiUU((}}KK[[ 嵵ᆆFF[[ݯbb<<$$ޔ11**퍍00ssӧ@@ Ĝ􀀽``uuBB~~iiTT33kk11//]]2>_tRNS*d pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time3/12/07!LOIDAT(}kS@aJI<bvv¬):irOyfvf. pqP?oīB@qNylţ>t0"~\\i,隖OR93Go#f6AΎx_ MGzV܍\˂QDv{ntQK9HjqJlЫi\ W6aԃʔ^lNF!N4x,u:ŢOzvµ@*LV[>D\Fcu䶅U N&@vMP Ycbe&cJ˱XJHZ0277P4c(Jߢ,BX9[sum?.IENDB`elracodelangela/administrator/templates/system/images/notice-note.png0000755000176700017710000000246711061563433027040 0ustar essawireessawirePNG  IHDRaM=sBITOPLTE~!~Du ԯZp{?"rȤ+ՖQ+cۯȶcӝP:2n@)ÅPǃŽ᯴<̩*}ò!ٝޭ4sK׏ײ4! C8Ԇ,kQb| c7ΖCȶώݦAʋ9- Ԗ(ɦ/٧~޽Ϭ/<LTu}byn!0K")֪ܶĝٴƤŖK֔X1Í÷Hl#̈́:)zy(Zтٙ}D:lјۥ:'ottRNSjK pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time3/12/07!LOIDAT(cL"[+%%[ ,f|&i..V-y&FB .V,,.b dx[A2 oR&\V3P1$:""71nɊԧGفe]G P`^6 7hɂYSx c A( f1ΞS-(,=?p:X6I*2IgZXV \A0jXV@ &e=<<\P0 (+\|q`E^P0(eSx4@U6wx8Ce'TTxxDL&[ + Li|>X$T@U=`VIL65$E6AZY rLڕ(gnR 륥CCBCMd_HL%31ҳT3kXX, ~~ ,,@:dCvIIWnWWI_2Pb2 Ku]]'%|n!fWM8IENDB`elracodelangela/administrator/templates/system/images/notice-info.png0000755000176700017710000000176211061563433027023 0ustar essawireessawirePNG  IHDRaM=sBITOPLTE 2drb\ LC\~IR{: a1Lq>\r 6rlR#Z [Ƥ f~;A"@jڧWswLaurMe;i*dR j䁷:Rs:BX~ Ch{¾ay Nfx]tYk.v8z>4hx{D e^Rk{S\tRNST?x pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time3/12/07!LOIDAT(}mS@FIJ4 b""I &llGQP?wTNϧgs>mnoٿSqqsx=]e9-}}FI{c/iov B/JΟqTb9Y܌0ZaO;"w89Uv2)oJ^{Lx5<y}LYfI$'W)Lyq=T9ҹ;0P8S۷|ʖ&2A8DTm^}akCe1v4Q,MMaveϖ(l h lOXF%loΎDwo޺l8D[t: m2hI&cQdYSZ-IP:NW%׿:dӄ!-I QqvUNIENDB`elracodelangela/administrator/templates/system/index.html0000755000176700017710000000005411061563432024623 0ustar essawireessawireelracodelangela/administrator/templates/system/component.php0000755000176700017710000000171511061563432025346 0ustar essawireessawire elracodelangela/administrator/templates/system/html/0000755000176700017710000000000011061563565023577 5ustar essawireessawireelracodelangela/administrator/templates/system/html/index.html0000755000176700017710000000005411061563433025570 0ustar essawireessawireelracodelangela/administrator/templates/system/html/modules.php0000755000176700017710000000460311061563433025760 0ustar essawireessawirecontent; } /* * xhtml (divs and font headder tags) */ function modChrome_xhtml($module, &$params, &$attribs) { if (!empty ($module->content)) : ?>
    showtitle != 0) : ?>

    title; ?>

    content; ?>
    true)); $editAllComponents = $user->authorize( 'administration', 'edit', 'components', 'all' ); // special handling for components module if ( $module->module != 'mod_components' || ( $module->module == 'mod_components' && $editAllComponents ) ) { $sliders->startPanel( JText::_( $module->title ), 'module' . $module->id ); echo $module->content; $sliders->endPanel(); } } /* * allows for rounded corners */ function modChrome_tabs($module, &$params, &$attribs) { jimport('joomla.html.pane'); // Initialize variables $user =& JFactory::getUser(); $tabs =& JPane::getInstance('tabs'); $editAllComponents = $user->authorize( 'administration', 'edit', 'components', 'all' ); // special handling for components module if ( $module->module != 'mod_components' || ( $module->module == 'mod_components' && $editAllComponents ) ) { $tabs->startPanel( JText::_( $module->title ), 'module' . $module->id ); echo $module->content; $tabs->endPanel(); } } ?>elracodelangela/administrator/templates/system/index.php0000755000176700017710000000010711061563433024446 0ustar essawireessawireelracodelangela/administrator/templates/khepri/0000755000176700017710000000000011061563565022571 5ustar essawireessawireelracodelangela/administrator/templates/khepri/login.php0000755000176700017710000000634411061563434024417 0ustar essawireessawire direction == 'rtl') : ?> params->get('useRoundedCorners')) : ?>
    params->get('showSiteName') ? $mainframe->getCfg( 'sitename' ) : JText::_('Administration'); ?>
    elracodelangela/administrator/templates/khepri/template_thumbnail.png0000755000176700017710000001346711061563433027165 0ustar essawireessawirePNG  IHDRvX\tEXtCreation Time  qtIME `ap pHYs  ~PLTE!!)!!!!!%! ?55#)+))9)151)1111191A3.999B993Zr.I; D1 ͓ȉ]&<޻ws{}g~3 AU!ᴵ>GitKӲu[[ڶ^-^nz?]m'GZ<=xgsֶ斶mmm p ǎ7ocjKCwZѺuk6Ժ!w{8M{f~mM`9`cOȾd(;\Z9 M5kw knZʾ wڰ_jMOǶ7]mB>=jGk$ nuk֮ihFFs}67546o` _hذa]sӆ& ʆu64߰izi\tڦ6Æ:I]]n/;sڵqڵOܶMM_Xt[ӭ[Wpj_7?y!j z77_+qDM(U/ς!^DddWaЄ2t*0{ DtOXQɏl9ַ/>۔bhJO?l|g2&ߗ黂 ڊ˞ s;GCjKQ9 qA!|@l \Ӊjt Eq`^y_0hc~FF]DoG)G)Mǻt(Z1Y5y8dA(tSwy2SYr 1,Ի/7gos5]F.BW^8z)nYPU*Wr*3Gk~8BLVG7 2%ȥ)Y FѬmM:sF?+3 ! ACbe0Cs0n:tֶm߽ mZbמ/sS } ֡]*W|ftRXc? ˎά/) ꊏpΖQ`ǎS>=]ũ{b[).6qΖN8ո{[[:bpFdf˞=׏}K_](/CJs=KW3-\ꌙzq ^~*~{omJ ol]ׇ3 w~]D%ҞVvAnH@AHTԘ2c4*%J 4 q4)d7Р A˞vmD_=8!ӓfŃSq Gk>taô](%ـpP \% E$?0jJ- \;N/ \ČL$( 5qnTSeiQC6Iv4; @Y= BQL1de̩"75 f6aE,$uY(q+lbqk|⩮bл"m3ӟ:WĈ=<O}lW$}>+[^>TڱTZz"g{^q6Zߓ7ngrڥ;] Nvt~š2"…ru<[-:qwc{}h=[6o-\ٍ~dU7zs)VN -+Z8ێGOxo_WWW!鎕"aPAtR0 Ζ=[gfĎ,1ڈtk 뭷/n/+xj) aaSfx/J'Ώyz>nb,nk r j)rz:+)GpP's{8>v9iQ4:3*::'>sñOdNٳ#K\ri3:#jH(e??׵|jzѣVML "oTCh}qyx8CMAr)ڹ@lI'i?31wlyĹc\LϾ,ZaԘՇ(&s^lƭtfm3~)26jʎz~me~qBE̽Pk z'% @[$53BV4/wXW8db`K[S@ر,eႴz̹ %۩ e'4α-TMAҬe4Pd!Y8 $5T = @P 8X VNޱ@ќ18l^ctSb>3by~)bJ&kޝ).OjZi.yʑZsYP5q][`:?oi&[ku{vh٠y "p~<:_pQA1ñ7ʂ WOKX($B( ': kc<_cDB%&iL$!d`E#^ =I]wϨܙlBdzݹMzVբ܅sRNV.Uͮ6NF|x;w.9 &;@id sA DB77v>"oM ĵsaM :m =;caPT֋IM K6"x.a Aڄ%8\ 0bkVlC!f%Ir4{S}溜Z;ˏ_}G+р>4_mTzb~>g@ *Q(fb,t䔕8 dVD)9v@&響VTCAڸ֋R}]Tsȧv (P5<>eG4lNMQAQOG<\EĮCp ۛyuÞJ]pV2祗|ӋpvGBuű~/=p{2)Vh6aRaf~Rdxe Vt HYMʠɢvSvjл2qFg4]Q]ױ{#p ߡtj)qDM8&:U! 5|r(Ȫ[zAT;j"8Զ2dE)wԡd.q曜-}+whZ 4X;7qŪׁC+lp.cРRZ: ZYx9266d DS1mdfvժ\Yss{>w~5&W?GONa C5]y A3^ 0+Tr"_:S7<Wd1Weaa7g-;Kd!~ 1q'VD3Z ψ8ets./W>?LuXyǝQWTfDaˆҾ$ہsvӰ@lp8#Br*@IENDB`elracodelangela/administrator/templates/khepri/js/0000755000176700017710000000000011061563566023206 5ustar essawireessawireelracodelangela/administrator/templates/khepri/js/menu.js0000755000176700017710000000304111061563433024502 0ustar essawireessawire/** * @version $Id: menu.js 10702 2008-08-21 09:31:31Z eddieajau $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * JMenu javascript behavior * * @package Joomla * @since 1.5 * @version 1.0 */ var JMenu = new Class({ initialize: function(el) { var elements = $ES('li', el); var nested = null for (var i=0; i= node.offsetWidth) ? offsetWidth : node.offsetWidth; } //match longest child for (l=0; l < nested.childNodes.length; l++) { var node = nested.childNodes[l] if (node.nodeName == "LI") { $(node).setStyle('width', offsetWidth+'px'); } } $(nested).setStyle('width', offsetWidth+'px'); } } });elracodelangela/administrator/templates/khepri/js/index.js0000755000176700017710000000163311061563433024652 0ustar essawireessawire/** * @version $Id: index.js 10702 2008-08-21 09:31:31Z eddieajau $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * Joomla! 1.5 Admininstrator index template behvaior * * @package Joomla * @since 1.5 * @version 1.0 */ //For IE6 - Background flicker fix try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {} document.menu = null window.addEvent('load', function(){ element = $('menu') if(!element.hasClass('disabled')) { var menu = new JMenu(element) document.menu = menu } });elracodelangela/administrator/templates/khepri/js/index.html0000755000176700017710000000005411061563433025176 0ustar essawireessawireelracodelangela/administrator/templates/khepri/cpanel.php0000755000176700017710000000712211061563433024543 0ustar essawireessawire direction == 'rtl') : ?> params->get('useRoundedCorners')) : ?>
    params->get('showSiteName') ? $mainframe->getCfg( 'sitename' ) : JText::_('Administration'); ?>
    elracodelangela/administrator/templates/khepri/css/0000755000176700017710000000000011061563566023362 5ustar essawireessawireelracodelangela/administrator/templates/khepri/css/template_rtl.css0000755000176700017710000000137411061563433026571 0ustar essawireessawire/** * @version $Id: template_rtl.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * Joomla! 1.5 Admin template main css file * * @author Mati Kochen * @package Joomla * @since 1.5 * @version 1.0 */ /* -- Imported styles ----------------------------- */ @import url("general_rtl.css"); @import url("menu_rtl.css");elracodelangela/administrator/templates/khepri/css/ie7.css0000755000176700017710000000025411061563433024555 0ustar essawireessawireinput { border-width: expression(this.type=="radio"?'0px':this.type=="checkbox"?'0px':'1px'); } div#toolbar-box { height: 65px; } #toolbar-box div.m { height: 50px; } elracodelangela/administrator/templates/khepri/css/norounded.css0000755000176700017710000000232011061563433026062 0ustar essawireessawire/** * @version $Id: norounded.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * Joomla! 1.5 Admin template non-rounded css file * * @author Andy Miller * @package Joomla * @since 1.5 * @version 1.0 */ div#component, div#element-box, div#toolbar-box, div#submenu-box, div.section-box { border: 1px solid #ccc; } div#toolbar-box { background: #f7f7f7; } div#element-box { background: #fff; } div#element-box div.section-box div.m { background: #fbfbfb; } div#toolbar-box, div#element-box div.section-box { background: #fbfbfb; } div.t, div.b { height: 5px; padding: 0; margin: 0; overflow: hidden; } div.m { border:0; padding: 0 8px; } div#toolbar-box div.m { padding: 0; } div#element-box div.m { padding: 5px 10px; } elracodelangela/administrator/templates/khepri/css/login_rtl.css0000755000176700017710000000200511061563433026056 0ustar essawireessawire/** * @version $Id: login_rtl.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * Joomla! 1.5 Admin template main css file * * @author Mati Kochen * @package Joomla * @since 1.5 * @version 1.0 */ /* -- Imported styles ----------------------------- */ @import url("general_rtl.css"); /* -- Specific styles ----------------------------- */ #section-box{ float: left; margin-left: 0px; margin-right: 10px; } #form-login label{ float: right; text-align: left; } #form-login div.button_holder{ padding-left: 0px; } form .inputbox { margin-left:0px; margin-right:10px; }elracodelangela/administrator/templates/khepri/css/template.css0000755000176700017710000000150211061563433025701 0ustar essawireessawire/** * @version $Id: template.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2006 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * Joomla! 1.5 Admin template main css file * * @author Andy Miller * @package Joomla * @since 1.5 * @version 1.0 */ /* -- Imported styles ----------------------------- */ @import url("general.css"); @import url("icon.css"); @import url("menu.css"); @import url("component.css"); elracodelangela/administrator/templates/khepri/css/rounded.css0000755000176700017710000000467711061563433025546 0ustar essawireessawire/** rounded corners **/ div#toolbar-box { background: #f7f7f7; } div#element-box { background: #fff; } div#element-box div.section-box div.m { background: #fbfbfb; } div.t, div.b { height: 6px; padding: 0; margin: 0; overflow: hidden; } div.m { border-left: 1px solid #ccc; border-right: 1px solid #ccc; padding: 0 8px; } div#toolbar-box div.m { padding: 0; } div#element-box div.m { padding: 5px 10px; } div#submenu-box div.t { background: url(../images/j_border.png) 0 0 repeat-x; } div#submenu-box div.t div.t { background: url(../images/j_crn_tr_dark.png) 100% 0 no-repeat; } div#submenu-box div.t div.t div.t { background: url(../images/j_crn_tl_dark.png) 0 0 no-repeat; } div#submenu-box div.b { background: url(../images/j_border.png) 0 100% repeat-x; } div#submenu-box div.b div.b { background: url(../images/j_crn_br_dark.png) 100% 0 no-repeat; } div#submenu-box div.b div.b div.b { background: url(../images/j_crn_bl_dark.png) 0 0 no-repeat; } div#toolbar-box, div#element-box div.section-box { background: #fbfbfb; } div#toolbar-box div.t, div#element-box div.section-box div.t { background: url(../images/j_border.png) 0 0 repeat-x; } div#toolbar-box div.t div.t, div#element-box div.section-box div.t div.t { background: url(../images/j_crn_tr_med.png) 100% 0 no-repeat; } div#toolbar-box div.t div.t div.t, div#element-box div.section-box div.t div.t div.t { background: url(../images/j_crn_tl_med.png) 0 0 no-repeat; } div#toolbar-box div.b, div#element-box div.section-box div.b { background: url(../images/j_border.png) 0 100% repeat-x; } div#toolbar-box div.b div.b, div#element-box div.section-box div.b div.b { background: url(../images/j_crn_br_med.png) 100% 0 no-repeat; } div#toolbar-box div.b div.b div.b, div#element-box div.section-box div.b div.b div.b { background: url(../images/j_crn_bl_med.png) 0 0 no-repeat; } div#element-box div.t { background: url(../images/j_border.png) 0 0 repeat-x; } div#element-box div.t div.t { background: url(../images/j_crn_tr_light.png) 100% 0 no-repeat; } div#element-box div.t div.t div.t { background: url(../images/j_crn_tl_light.png) 0 0 no-repeat; } div#element-box div.b { background: url(../images/j_border.png) 0 100% repeat-x; } div#element-box div.b div.b { background: url(../images/j_crn_br_light.png) 100% 0 no-repeat; } div#element-box div.b div.b div.b { background: url(../images/j_crn_bl_light.png) 0 0 no-repeat; } elracodelangela/administrator/templates/khepri/css/theme.css0000755000176700017710000001323211061563433025173 0ustar essawireessawire/* ThemeOfficeMenu Style Sheet */ .ThemeOfficeMenu,.ThemeOfficeSubMenuTable { font-family: arial, verdana, sans-serif; font-size: 13px; padding: 0; white-space: nowrap; cursor: default; height: 25px; } .ThemeOfficeSubMenu { position: absolute; visibility: hidden; /* Netscape/Mozilla renders borders by increasing their z-index. The following line is necessary to cover any borders underneath */ z-index: 100; border: 0; padding: 0; overflow: visible; border: 1px solid #8C867B; filter:progid:DXImageTransform.Microsoft.Shadow(color=#BDC3BD, Direction=135, Strength=4); } .ThemeOfficeSubMenuTable { overflow: visible; } .ThemeOfficeMainItem,.ThemeOfficeMainItemHover,.ThemeOfficeMainItemActive, .ThemeOfficeMenuItem,.ThemeOfficeMenuItemHover,.ThemeOfficeMenuItemActive { border: 0; cursor: default; white-space: nowrap; } .ThemeOfficeMainItem { /*background-color: #EFEBDE;*/ } .ThemeOfficeMainItemHover,.ThemeOfficeMainItemActive { background-color: #e7eddf; } .ThemeOfficeMenuItem { background-color: #F1F3F5; } .ThemeOfficeMenuItemHover,.ThemeOfficeMenuItemActive { background-color: #e7eddf; } /* horizontal main menu */ .ThemeOfficeMainItem { padding: 4px 1px 4px 1px; border: 0; } td.ThemeOfficeMainItemHover,td.ThemeOfficeMainItemActive { padding: 0px; border-right: 1px solid #6d9d2e; border-left: 1px solid #6d9d2e; } .ThemeOfficeMainFolderLeft,.ThemeOfficeMainItemLeft, .ThemeOfficeMainFolderText,.ThemeOfficeMainItemText, .ThemeOfficeMainFolderRight,.ThemeOfficeMainItemRight { background-color: inherit; } /* vertical main menu sub components */ td.ThemeOfficeMainFolderLeft,td.ThemeOfficeMainItemLeft { padding-top: 2px; padding-bottom: 2px; padding-left: 0px; padding-right: 2px; border-top: 1px solid #6d9d2e; border-bottom: 1px solid #6d9d2e; border-left: 1px solid #6d9d2e; background-color: inherit; } td.ThemeOfficeMainFolderText,td.ThemeOfficeMainItemText { padding-top: 2px; padding-bottom: 2px; padding-left: 5px; padding-right: 5px; border-top: 1px solid #6d9d2e; border-bottom: 1px solid #6d9d2e; background-color: inherit; white-space: nowrap; } td.ThemeOfficeMainFolderRight,td.ThemeOfficeMainItemRight { padding-top: 2px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; border-top: 1px solid #6d9d2e; border-bottom: 1px solid #6d9d2e; border-right: 1px solid #6d9d2e; background-color: inherit; } tr.ThemeOfficeMainItem td.ThemeOfficeMainFolderLeft, tr.ThemeOfficeMainItem td.ThemeOfficeMainItemLeft { padding-top: 3px; padding-bottom: 3px; padding-left: 1px; padding-right: 2px; white-space: nowrap; border: 0; background-color: inherit; } tr.ThemeOfficeMainItem td.ThemeOfficeMainFolderText, tr.ThemeOfficeMainItem td.ThemeOfficeMainItemText { padding-top: 3px; padding-bottom: 3px; padding-left: 5px; padding-right: 5px; border: 0; background-color: inherit; } tr.ThemeOfficeMainItem td.ThemeOfficeMainItemRight, tr.ThemeOfficeMainItem td.ThemeOfficeMainFolderRight { padding-top: 3px; padding-bottom: 3px; padding-left: 0px; padding-right: 1px; border: 0; background-color: inherit; } /* sub menu sub components */ .ThemeOfficeMenuFolderLeft,.ThemeOfficeMenuItemLeft { padding-top: 2px; padding-bottom: 2px; padding-left: 1px; padding-right: 3px; border-top: 1px solid #6d9d2e; border-bottom: 1px solid #6d9d2e; border-left: 1px solid #6d9d2e; background-color: inherit; white-space: nowrap; } .ThemeOfficeMenuFolderText,.ThemeOfficeMenuItemText { padding-top: 2px; padding-bottom: 2px; padding-left: 5px; padding-right: 5px; border-top: 1px solid #6d9d2e; border-bottom: 1px solid #6d9d2e; background-color: inherit; white-space: nowrap; } .ThemeOfficeMenuFolderRight,.ThemeOfficeMenuItemRight { padding-top: 2px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; border-top: 1px solid #6d9d2e; border-bottom: 1px solid #6d9d2e; border-right: 1px solid #6d9d2e; background-color: inherit; white-space: nowrap; } .ThemeOfficeMenuItem .ThemeOfficeMenuFolderLeft, .ThemeOfficeMenuItem .ThemeOfficeMenuItemLeft { padding-top: 3px; padding-bottom: 3px; padding-left: 2px; padding-right: 3px; white-space: nowrap; border: 0px; background-color: #DDE1E6; } .ThemeOfficeMenuItem .ThemeOfficeMenuFolderText, .ThemeOfficeMenuItem .ThemeOfficeMenuItemText { padding-top: 3px; padding-bottom: 3px; padding-left: 5px; padding-right: 5px; border: 0px; background-color: inherit; } .ThemeOfficeMenuItem .ThemeOfficeMenuFolderRight, .ThemeOfficeMenuItem .ThemeOfficeMenuItemRight { padding-top: 3px; padding-bottom: 3px; padding-left: 0px; padding-right: 1px; border: 0; background-color: inherit; } /* menu splits */ .ThemeOfficeMenuSplit { margin: 2px; height: 1px; overflow: hidden; background-color: inherit; border-top: 1px solid #C6C3BD; } /* image shadow animation */ /* seq1: image for normal seq2: image for hover and active To use, in the icon field, input the following: */ .ThemeOfficeMenuItem img.seq1 { display: inline; } .ThemeOfficeMenuItemHover seq2, .ThemeOfficeMenuItemActive seq2 { display: inline; } .ThemeOfficeMenuItem .seq2, .ThemeOfficeMenuItemHover .seq1, .ThemeOfficeMenuItemActive .seq1 { display: none; } /* inactive settings */ div.inactive td.ThemeOfficeMainItemHover, div.inactive td.ThemeOfficeMainItemActive { border-top: 0px; border-right: 1px solid #f1f3f5; border-left: 1px solid #f1f3f5; } div.inactive .ThemeOfficeMainItem { color: #bbb; } div.inactive span.ThemeOfficeMainItemText { color: #aaa; } div.inactive .ThemeOfficeMainItemHover, div.inactive .ThemeOfficeMainItemActive { background-color: #f1f3f5; }elracodelangela/administrator/templates/khepri/css/menu_rtl.css0000755000176700017710000000245311061563433025721 0ustar essawireessawire/** * @version $Id: menu_rtl.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * JMenu javascript behavior styling * * @author Mati Kochen * @package Joomla * @since 1.5 * @version 1.0 */ /* ---- Basic menu styles ------------------- */ /* common styling */ #menu li { border-right:1px solid #FFFFFF; border-left:1px solid #D8D8D8; float: right; } #menu li.hover li.hover ul { left: auto; right: 100%; } #menu a, #menu div{ background-position: right; margin: 0 0 0 1px; } #menu ul{ background-position:right; } #menu ul li.node { background:transparent url(../images/j_arrow_left.png) no-repeat scroll left 50%; } #menu li ul { left: auto; right: 0%} #menu ul a { padding-right:25px; padding-left:20px; } #submenu li { float:right; } #submenu li a, #submenu span.nolink { border-right:none; border-left:1px solid #CCCCCC; display: -moz-inline-box; }elracodelangela/administrator/templates/khepri/css/index.html0000755000176700017710000000005411061563433025352 0ustar essawireessawireelracodelangela/administrator/templates/khepri/css/menu.css0000755000176700017710000000634011061563433025037 0ustar essawireessawire/** * @version $Id: menu.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * JMenu javascript behavior styling * * @author Johan Janssens * @package Joomla * @since 1.5 * @version 1.0 */ /* ---- Basic menu styles ------------------- */ /* common styling */ #menu, #menu ul, #menu li { margin: 0; padding: 0; border: 0 none; } #menu { position:relative; z-index: 100;} #menu li { float:left; position:relative; list-style: none; display: inline;} #menu li a { display:block; white-space: nowrap; } #menu li li { /*width: 100%;*/ clear: both; /*FF 1.0.7 needs this */ } #menu li ul { visibility: hidden; position:absolute; } #menu li li ul { top: 0; left: 0; } #menu li.hover ul { visibility: visible; } #menu li.hover ul li ul { visibility: hidden; } #menu li.hover li.hover ul { visibility: visible; left: 100%; } /* ---- Menu layout -------------------------- */ #menu li { border-left: 1px solid #fff; border-right: 1px solid #d8d8d8; } #menu li li { border: 0;} #menu ul { border: 0.1em solid #ccc; background: #f6f6f6 url(../images/bg-menu.gif) repeat-y left;} #menu ul li.node { background: transparent url(../images/j_arrow.png) no-repeat right 50%; } #menu ul li.separator { background: #DDE1E6 url(../images/bg-menu.gif); height: 1px; } #menu a, #menu div { padding: 0.35em 1em 0.35em; margin: 0 1px 0 1px; color: #333333; line-height: 1.6em; vertical-align: middle; font-size: 11px; font-weight: bold; text-decoration: none; cursor: default; background-repeat: no-repeat; background-position: left 50% } #menu li.disabled a { color: gray; } #menu ul a { font-size: 11px; font-weight: normal; padding-left: 25px; padding-right: 20px; line-height: 1.2em; } /* 1 level - hover */ #menu li.hover a { background-color: #E7EDDF; border-left: 1px solid #6D9D2E; border-right:1px solid #6D9D2E; margin: 0; } /* 2 level - normal */ #menu li.hover li a { background-color: transparent; border: 0 none; margin: 2px; } /* 2 level - hover */ #menu li.hover li.hover a { background-color: #E7EDDF; border: 1px solid #6D9D2E; margin: 1px; } /* 3 level - normal */ #menu li.hover li.hover li a { background-color: transparent; border: 0 none; margin: 2px; } /* 3 level - hover */ #menu li.hover li.hover li a:hover { background-color: #E7EDDF; border: 1px solid #6D9D2E; margin: 1px; } /* submenu styling */ #submenu { list-style: none; padding: 0; margin: 0; } #submenu li { float: left; padding: 0; margin: 0; } #submenu li a, #submenu span.nolink { cursor: pointer; padding: 0px 15px; border-right: 1px solid #ccc; font-weight: bold; color: #0B55C4; line-height: 12px; height: 12px; } #submenu span.nolink { color: #999; } #submenu a.active, #submenu span.nolink.active { color: #000; text-decoration: underline; } elracodelangela/administrator/templates/khepri/css/general_rtl.css0000755000176700017710000001136211061563433026371 0ustar essawireessawire/** * @version $Id: general_rtl.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * Joomla! 1.5 Admin template main RTL css file * * @author Mati Kochen * @package Joomla * @since 1.5 * @version 1.0 */ /* -- General styles ------------------------------ */ body{ direction: rtl; } #border-top.h_green div div{ background-image: url(../images/h_green/j_header_left_rtl.png); } #border-top.h_green div{ background-image: url(../images/h_green/j_header_right_rtl.png); } .button1 { background: url(../images/j_button1_right.png) 100% 0 no-repeat; margin-left: 5px; padding-right: 10px; white-space: nowrap; padding-left: 0px; } .button1 .next { background: url(../images/j_button1_prev.png) no-repeat; } .button1 a { padding: 0 6px 0 30px; } .button1, .button1 div{ float: left; } .button2-left a, .button2-left span { padding:0pt 6px 0pt 24px; } .button2-left { background:transparent url(../images/j_button2_right.png) no-repeat scroll 100%; float: right; } .button2-left .end{ background: transparent url(../images/j_button2_first.png) no-repeat scroll 0% 0; } .button2-left.off .end{ background: transparent url(../images/j_button2_first_off.png) no-repeat scroll 0% 0; } .button2-left .next{ background: transparent url(../images/j_button2_prev.png) no-repeat scroll 0% 0; } .button2-left.off .next{ background: transparent url(../images/j_button2_prev_off.png) no-repeat scroll 0% 0; } .button2-left .page, .button2-left .blank { background: url(../images/j_button2_left_cap.png) 0 no-repeat; } .button2-right a, .button2-right span { padding:0pt 24px 0pt 6px; } .button2-left .image { background:transparent url(../images/j_button2_image_rtl.png) no-repeat scroll 0% 0pt; } .button2-left .pagebreak { background:transparent url(../images/j_button2_pagebreak_rtl.png) no-repeat scroll 0% 0pt; } .button2-left .readmore { background:transparent url(../images/j_button2_readmore_rtl.png) no-repeat scroll 0% 0pt; } .button2-right { background:transparent url(../images/j_button2_left.png) no-repeat scroll 0% 0pt; float: right; } .button2-right .prev { background:transparent url(../images/j_button2_next.png) no-repeat scroll 100%; } .button2-right.off .prev { background:transparent url(../images/j_button2_next_off.png) no-repeat scroll 100%; } .button2-right .start { background:transparent url(../images/j_button2_last.png) no-repeat scroll 100%; } .button2-right.off .start { background:transparent url(../images/j_button2_last_off.png) no-repeat scroll 100%; } #border-top .version{ float: left; padding: 25px 0 0 5px; } #border-top .title{ padding-right: 180px; padding-left: 0px; } #module-status { float:left; } #module-status span{ padding: 4px 22px 0pt 10px; } #module-status .legacy-mode { background-position: right 5px; } #module-status .preview { background-position: right 3px; } #module-status .unread-messages, #module-status .no-unread-messages { background-position: right 3px; } #module-status .loggedin-users { background-position: right 3px; } #module-status .logout { background-position: right 3px; } table.adminform td{ text-align: right; } #cpanel div.icon{ margin-right: 0px; margin-left: 5px; } .jpane-toggler span, .jpane-toggler-down span { background-position: right; padding-right: 20px; padding-left: 0px; } .jpane-toggler span{ background-image: url(../images/j_arrow_left.png); } div.toolbar { float:left; padding:0pt; text-align:left; } div.header { margin-right:10px; margin-left:0px; padding-right:55px; padding-left:0px; } .header{ background-position: right; } table.adminlist tbody tr{ text-align: right; } table.adminform th{ text-align: right; padding: 6px 4px 4px 2px; } fieldset { text-align:right; } table.adminform td.filter{ text-align: right; } table.adminform td.helpMenu{ text-align: left; } table.adminlist .pagination{ display: -moz-box; } .pagination div.limit{ float: right; margin: 0 0 0 10px; } .button2-left .page a, .button2-right .page a, .button2-left .page span, .button2-right .page span, .button2-left .blank a, .button2-right .blank a, .button2-left .blank span, .button2-right .blank span{ float: right; } div.col{ float: right; } #system-message dd.message ul { background-position: 99% center; } #system-message dd { text-indent:35px; } /* debug */ #system-debug ol, #system-debug ul{ direction: ltr; }elracodelangela/administrator/templates/khepri/css/ie6.css0000755000176700017710000000045311061563433024555 0ustar essawireessawire/* CSS Document */ div#toolbar-box { float: left; width: 100%; } #minwidth, #minwidth-body {width:expression(document.body.clientWidth <= 960? "960px": "auto"); } #content-box { float: left; } input { border-width: expression(this.type=="radio"?'0px':this.type=="checkbox"?'0px':'1px'); } elracodelangela/administrator/templates/khepri/css/component.css0000755000176700017710000000274311061563433026100 0ustar essawireessawire/** * @version $Id: component.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2006 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * Joomla! 1.5 Admin template main css file * * @author Andy Miller * @package Joomla * @since 1.5 * @version 1.0 */ /* -- General styles ------------------------------ */ div.message { text-align: center; font-family: Arial, Helvetica, sans-serif; font-size: 12px; padding: 3px; border: 1px solid #e0e0e0; margin-bottom: 10px; font-weight: bold; color: #333; /*letter-spacing: .1em;*/ /* letter spacing doesn't work for all languages */ } .helpIndex { border: 0px; width: 100%; height: 100%; padding: 0px 0px 0px 0px; overflow: auto; } .helpFrame { border-left: 0px solid #222; border-right: none; border-top: none; border-bottom: none; width: 100%; height: 800px; padding: 0px 5px 0px 10px; } #treecellhelp { width: 25%; display: block; position: relative; float: left; margin: 0; padding: 2px; overflow: hidden; } #datacellhelp { width: 73%; display: block; float: left; margin: 0; padding: 2px 0px 0px 0px; } elracodelangela/administrator/templates/khepri/css/general.css0000755000176700017710000003634011061563433025513 0ustar essawireessawire/** * @version $Id: general.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2006 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * Joomla! 1.5 Admin template main css file * * @author Andy Miller * @package Joomla * @since 1.5 * @version 1.0 */ /* -- General styles ------------------------------ */ body { margin: 10px; padding: 0; background: #fff; padding-bottom: 1px; font-size: 11px; } body, td, th { font-family: Arial, Helvetica, sans-serif; } html, body { height: 95%; } #minwidth { min-width: 960px; } .clr { clear: both; overflow:hidden; height: 0; } a, img { padding: 0; margin: 0; } img { border: 0 none; } form { margin: 0; padding: 0; } h1 { margin: 0; padding-bottom: 8px; color: #0B55C4; font-size: 20px; font-weight: bold; } h3 { font-size: 13px; } a:link { color: #0B55C4; text-decoration: none; } a:visited { color: #0B55C4; text-decoration: none; } a:hover { text-decoration: underline; } fieldset { margin-bottom: 10px; border: 1px #ccc solid; padding: 5px; text-align: left; } fieldset p { margin: 10px 0px; } legend { color: #0B55C4; font-size: 12px; font-weight: bold; } input, select { font-size: 10px; border: 1px solid silver; } textarea { font-size: 11px; border: 1px solid silver; } button { font-size: 10px; } input.disabled { background-color: #F0F0F0; } input.button { cursor: pointer; } input:focus, select:focus, textarea:focus { background-color: #ffd } /* -- overall styles ------------------------------ */ #border-top.h_green { background: url(../images/h_green/j_header_middle.png) repeat-x; } #border-top.h_green div { background: url(../images/h_green/j_header_right.png) 100% 0 no-repeat; } #border-top.h_green div div { background: url(../images/h_green/j_header_left.png) no-repeat; height: 54px; } #border-top.h_teal { background: url(../images/h_teal/j_header_middle.png) repeat-x; } #border-top.h_teal div { background: url(../images/h_teal/j_header_right.png) 100% 0 no-repeat; } #border-top.h_teal div div { background: url(../images/h_teal/j_header_left.png) no-repeat; height: 54px; } #border-top.h_cherry { background: url(../images/h_cherry/j_header_middle.png) repeat-x; } #border-top.h_cherry div { background: url(../images/h_cherry/j_header_right.png) 100% 0 no-repeat; } #border-top.h_cherry div div { background: url(../images/h_cherry/j_header_left.png) no-repeat; height: 54px; } #border-top .title { font-size: 22px; font-weight: bold; color: #fff; line-height: 44px; padding-left: 180px; } #border-top .version { display: block; float: right; color: #fff; padding: 25px 5px 0 0; } #border-bottom { background: url(../images/j_bottom.png) repeat-x; } #border-bottom div { background: url(../images/j_corner_br.png) 100% 0 no-repeat; } #border-bottom div div { background: url(../images/j_corner_bl.png) no-repeat; height: 11px; } #footer .copyright { margin: 10px; text-align: center; } #header-box { border: 1px solid #ccc; background: #f0f0f0; } #content-box { border-left: 1px solid #ccc; border-right: 1px solid #ccc; } #content-box .padding { padding: 10px 10px 0 10px; } #toolbar-box { background: #fbfbfb; margin-bottom: 10px; } #submenu-box { background: #f6f6f6; margin-bottom: 10px; } #submenu-box .padding { padding: 0px;} /* -- status layout */ #module-status { float: right; } #module-status span { display: block; float: left; line-height: 16px; padding: 4px 10px 0 22px; margin-bottom: 5px; } #module-status { background: url(../images/mini_icon.png) 3px 5px no-repeat; } .legacy-mode{ color: #c00;} #module-status .preview { background: url(../images/menu/icon-16-media.png) 3px 3px no-repeat; } #module-status .unread-messages, #module-status .no-unread-messages { background: url(../images/menu/icon-16-messages.png) 3px 3px no-repeat; } #module-status .unread-messages a { font-weight: bold; } #module-status .loggedin-users { background: url(../images/menu/icon-16-user.png) 3px 3px no-repeat; } #module-status .logout { background: url(../images/menu/icon-16-logout.png) 3px 3px no-repeat; } /* -- various styles -- */ span.note { display: block; background: #ffd; padding: 5px; color: #666; } /** overlib **/ .ol-foreground { background-color: #ffe; } .ol-background { background-color: #6db03c; } .ol-textfont { font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #666; } .ol-captionfont { font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #fff; font-weight: bold; } .ol-captionfont a { color: #0b5fc6; text-decoration: none; } .ol-closefont {} /** toolbar **/ div.header { font-size: 22px; font-weight: bold; color: #0B55C4; line-height: 48px; padding-left: 55px; background-repeat: no-repeat; margin-left: 10px; } div.header span { color: #666; } div.configuration { font-size: 14px; font-weight: bold; color: #0B55C4; line-height: 16px; padding-left: 30px; margin-left: 10px; background-image: url(../images/menu/icon-16-config.png); background-repeat: no-repeat; } div.toolbar { float: right; text-align: right; padding: 0; } table.toolbar { border-collapse: collapse; padding: 0; margin: 0; } table.toolbar td { padding: 1px 1px 1px 4px; text-align: center; color: #666; height: 48px; } table.toolbar td.spacer { width: 10px; } table.toolbar td.divider { border-right: 1px solid #eee; width: 5px; } table.toolbar span { float: none; width: 32px; height: 32px; margin: 0 auto; display: block; } table.toolbar a { display: block; float: left; white-space: nowrap; border: 1px solid #fbfbfb; padding: 1px 5px; cursor: pointer; } table.toolbar a:hover { border-left: 1px solid #eee; border-top: 1px solid #eee; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; text-decoration: none; color: #0B55C4; } /** for massmail component **/ td#mm_pane { width: 90%; } input#mm_subject { width: 200px; } textarea#mm_message { width: 100%; } /* pane-sliders */ .pane-sliders .title { margin: 0; padding: 2px; color: #666; cursor: pointer; } .pane-sliders .panel { border: 1px solid #ccc; margin-bottom: 3px;} .pane-sliders .panel h3 { background: #f6f6f6; color: #666} .pane-sliders .content { background: #f6f6f6; } .pane-sliders .adminlist { border: 0 none; } .pane-sliders .adminlist td { border: 0 none; } .jpane-toggler span { background: transparent url(../images/j_arrow.png) 5px 50% no-repeat; padding-left: 20px;} .jpane-toggler-down span { background: transparent url(../images/j_arrow_down.png) 5px 50% no-repeat; padding-left: 20px;} .jpane-toggler-down { border-bottom: 1px solid #ccc; } /* tabs */ dl.tabs { float: left; margin: 10px 0 -1px 0; z-index: 50; } dl.tabs dt { float: left; padding: 4px 10px; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 1px solid #ccc; margin-left: 3px; background: #f0f0f0; color: #666; } dl.tabs dt.open { background: #F9F9F9; border-bottom: 1px solid #F9F9F9; z-index: 100; color: #000; } div.current { clear: both; border: 1px solid #ccc; padding: 10px 10px; } div.current dd { padding: 0; margin: 0; } /** cpanel settings **/ #cpanel div.icon { text-align: center; margin-right: 5px; float: left; margin-bottom: 5px; } #cpanel div.icon a { display: block; float: left; border: 1px solid #f0f0f0; height: 97px; width: 108px; color: #666; vertical-align: middle; text-decoration: none; } #cpanel div.icon a:hover { border-left: 1px solid #eee; border-top: 1px solid #eee; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; background: #f9f9f9; color: #0B55C4; } #cpanel img { padding: 10px 0; margin: 0 auto; } #cpanel span { display: block; text-align: center; } /* standard form style table */ div.col { float: left; } div.width-45 { width: 45%; } div.width-55 { width: 55%; } div.width-50 { width: 50%; } div.width-70 { width: 70%; } div.width-30 { width: 30%; } div.width-60 { width: 60%; } div.width-40 { width: 40%; } table.admintable td { padding: 3px; } table.admintable td.key, table.admintable td.paramlist_key { background-color: #f6f6f6; text-align: right; width: 140px; color: #666; font-weight: bold; border-bottom: 1px solid #e9e9e9; border-right: 1px solid #e9e9e9; } table.paramlist td.paramlist_description { background-color: #f6f6f6; text-align: left; width: 170px; color: #333; font-weight: normal; border-bottom: 1px solid #e9e9e9; border-right: 1px solid #e9e9e9; } table.admintable td.key.vtop { vertical-align: top; } table.adminform { background-color: #f9f9f9; border: solid 1px #d5d5d5; width: 100%; border-collapse: collapse; margin: 8px 0 10px 0; margin-bottom: 15px; width: 100%; } table.adminform.nospace { margin-bottom: 0; } table.adminform tr.row0 { background-color: #f9f9f9; } table.adminform tr.row1 { background-color: #eeeeee; } table.adminform th { font-size: 11px; padding: 6px 2px 4px 4px; text-align: left; height: 25px; color: #000; background-repeat: repeat; } table.adminform td { padding: 3px; text-align: left; } table.adminform td.filter{ text-align: left; } table.adminform td.helpMenu{ text-align: right; } fieldset.adminform { border: 1px solid #ccc; margin: 0 10px 10px 10px; } /** Table styles **/ table.adminlist { width: 100%; border-spacing: 1px; background-color: #e7e7e7; color: #666; } table.adminlist td, table.adminlist th { padding: 4px; } table.adminlist thead th { text-align: center; background: #f0f0f0; color: #666; border-bottom: 1px solid #999; border-left: 1px solid #fff; } table.adminlist thead a:hover { text-decoration: none; } table.adminlist thead th img { vertical-align: middle; } table.adminlist tbody th { font-weight: bold; } table.adminlist tbody tr { background-color: #fff; text-align: left; } table.adminlist tbody tr.row1 { background: #f9f9f9; border-top: 1px solid #fff; } table.adminlist tbody tr.row0:hover td, table.adminlist tbody tr.row1:hover td { background-color: #ffd ; } table.adminlist tbody tr td { height: 25px; background: #fff; border: 1px solid #fff; } table.adminlist tbody tr.row1 td { background: #f9f9f9; border-top: 1px solid #FFF; } table.adminlist tfoot tr { text-align: center; color: #333; } table.adminlist tfoot td, table.adminlist tfoot th { background-color: #f3f3f3; border-top: 1px solid #999; text-align: center; } table.adminlist td.order { text-align: center; white-space: nowrap; } table.adminlist td.order span { float: left; display: block; width: 20px; text-align: center; } table.adminlist .pagination { display:table; padding:0; margin:0 auto; } .pagination div.limit { float: left; height: 22px; line-height: 22px; margin: 0 10px; } /** stu nicholls solution for centering divs **/ .container {clear:both; text-decoration:none;} * html .container {display:inline-block;} /** table solution for global config **/ table.noshow { width: 100%; border-collapse: collapse; padding: 0; margin: 0; } table.noshow tr { vertical-align: top; } table.noshow td { } table.noshow fieldset { margin: 15px 7px 7px 7px; } #editor-xtd-buttons { padding: 5px; } /* -- buttons -> STILL NEED CLEANUP*/ .button1, .button1 div{ height: 1%; float: right; } .button2-left, .button2-right, .button2-left div, .button2-right div { float: left; } .button1 { background: url(../images/j_button1_left.png) no-repeat; white-space: nowrap; padding-left: 10px; margin-left: 5px;} .button1 .next { background: url(../images/j_button1_next.png) 100% 0 no-repeat; } .button1 a { display: block; height: 26px; float: left; line-height: 26px; font-size: 12px; font-weight: bold; color: #333; cursor: pointer; padding: 0 30px 0 6px; } .button1 a:hover { text-decoration: none; color: #0B55C4; } .button2-left a, .button2-right a, .button2-left span, .button2-right span { display: block; height: 22px; float: left; line-height: 22px; font-size: 11px; color: #333; cursor: pointer; } .button2-left span, .button2-right span { cursor: default; color: #999; } .button2-left .page a, .button2-right .page a, .button2-left .page span, .button2-right .page span, .button2-left .blank a, .button2-right .blank a, .button2-left .blank span, .button2-right .blank span { padding: 0 6px; } .page span, .blank span { color: #000; font-weight: bold; } .button2-left a:hover, .button2-right a:hover { text-decoration: none; color: #0B55C4; } .button2-left a, .button2-left span { padding: 0 24px 0 6px; } .button2-right a, .button2-right span { padding: 0 6px 0 24px; } .button2-left { background: url(../images/j_button2_left.png) no-repeat; float: left; margin-left: 5px; } .button2-right { background: url(../images/j_button2_right.png) 100% 0 no-repeat; float: left; margin-left: 5px; } .button2-right .prev { background: url(../images/j_button2_prev.png) no-repeat; } .button2-right.off .prev { background: url(../images/j_button2_prev_off.png) no-repeat; } .button2-right .start { background: url(../images/j_button2_first.png) no-repeat; } .button2-right.off .start { background: url(../images/j_button2_first_off.png) no-repeat; } .button2-left .page, .button2-left .blank { background: url(../images/j_button2_right_cap.png) 100% 0 no-repeat; } .button2-left .next { background: url(../images/j_button2_next.png) 100% 0 no-repeat; } .button2-left.off .next { background: url(../images/j_button2_next_off.png) 100% 0 no-repeat; } .button2-left .end { background: url(../images/j_button2_last.png) 100% 0 no-repeat; } .button2-left.off .end { background: url(../images/j_button2_last_off.png) 100% 0 no-repeat; } .button2-left .image { background: url(../images/j_button2_image.png) 100% 0 no-repeat; } .button2-left .readmore { background: url(../images/j_button2_readmore.png) 100% 0 no-repeat; } .button2-left .pagebreak { background: url(../images/j_button2_pagebreak.png) 100% 0 no-repeat; } .button2-left .blank { background: url(../images/j_button2_blank.png) 100% 0 no-repeat; } /* Tooltips */ .tool-tip { float: left; background: #ffc; border: 1px solid #D4D5AA; padding: 5px; max-width: 200px; z-index: 50; } .tool-title { padding: 0; margin: 0; font-size: 100%; font-weight: bold; margin-top: -15px; padding-top: 15px; padding-bottom: 5px; background: url(../images/selector-arrow.png) no-repeat; } .tool-text { font-size: 100%; margin: 0; } /* Calendar */ a img.calendar { width: 16px; height: 16px; margin-left: 3px; background: url(../images/calendar.png) no-repeat; cursor: pointer; vertical-align: middle; } /* System Standard Messages */ #system-message dd.message ul { background: #C3D2E5 url(../images/notice-info.png) 4px center no-repeat;} /* System Error Messages */ #system-message dd.error ul { color: #c00; background: #E6C0C0 url(../images/notice-alert.png) 4px top no-repeat; border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B;} /* System Notice Messages */ #system-message dd.notice ul { color: #c00; background: #EFE7B8 url(../images/notice-note.png) 4px top no-repeat; border-top: 3px solid #F0DC7E; border-bottom: 3px solid #F0DC7E;}elracodelangela/administrator/templates/khepri/css/icon.css0000755000176700017710000001550011061563433025021 0ustar essawireessawire/** menu icons **/ .icon-16-archive { background-image: url(../images/menu/icon-16-archive.png); } .icon-16-article { background-image: url(../images/menu/icon-16-article.png); } .icon-16-category { background-image: url(../images/menu/icon-16-category.png); } .icon-16-checkin { background-image: url(../images/menu/icon-16-checkin.png); } .icon-16-component { background-image: url(../images/menu/icon-16-component.png); } .icon-16-config { background-image: url(../images/menu/icon-16-config.png); } .icon-16-content { background-image: url(../images/menu/icon-16-content.png); } .icon-16-cpanel { background-image: url(../images/menu/icon-16-cpanel.png); } .icon-16-default { background-image: url(../images/menu/icon-16-default.png); } .icon-16-frontpage { background-image: url(../images/menu/icon-16-frontpage.png); } .icon-16-help { background-image: url(../images/menu/icon-16-help.png); } .icon-16-info { background-image: url(../images/menu/icon-16-info.png); } .icon-16-install { background-image: url(../images/menu/icon-16-install.png);} .icon-16-language { background-image: url(../images/menu/icon-16-language.png);} .icon-16-logout { background-image: url(../images/menu/icon-16-logout.png);} .icon-16-massmail { background-image: url(../images/menu/icon-16-massmail.png); } .icon-16-media { background-image: url(../images/menu/icon-16-media.png);} .icon-16-menu { background-image: url(../images/menu/icon-16-menu.png); } .icon-16-menumgr { background-image: url(../images/menu/icon-16-menumgr.png); } .icon-16-messages { background-image: url(../images/menu/icon-16-messages.png); } .icon-16-module { background-image: url(../images/menu/icon-16-module.png); } .icon-16-plugin { background-image: url(../images/menu/icon-16-plugin.png); } .icon-16-section { background-image: url(../images/menu/icon-16-section.png); } .icon-16-static { background-image: url(../images/menu/icon-16-static.png); } .icon-16-stats { background-image: url(../images/menu/icon-16-stats.png); } .icon-16-themes { background-image: url(../images/menu/icon-16-themes.png); } .icon-16-trash { background-image: url(../images/menu/icon-16-trash.png); } .icon-16-user { background-image: url(../images/menu/icon-16-user.png); } /** toolbar icons **/ .icon-32-send { background-image: url(../images/toolbar/icon-32-send.png); } .icon-32-delete { background-image: url(../images/toolbar/icon-32-delete.png); } .icon-32-help { background-image: url(../images/toolbar/icon-32-help.png); } .icon-32-cancel { background-image: url(../images/toolbar/icon-32-cancel.png); } .icon-32-config { background-image: url(../images/toolbar/icon-32-config.png); } .icon-32-apply { background-image: url(../images/toolbar/icon-32-apply.png); } .icon-32-back { background-image: url(../images/toolbar/icon-32-back.png); } .icon-32-forward { background-image: url(../images/toolbar/icon-32-forward.png); } .icon-32-save { background-image: url(../images/toolbar/icon-32-save.png); } .icon-32-edit { background-image: url(../images/toolbar/icon-32-edit.png); } .icon-32-copy { background-image: url(../images/toolbar/icon-32-copy.png); } .icon-32-move { background-image: url(../images/toolbar/icon-32-move.png); } .icon-32-new { background-image: url(../images/toolbar/icon-32-new.png); } .icon-32-upload { background-image: url(../images/toolbar/icon-32-upload.png); } .icon-32-assign { background-image: url(../images/toolbar/icon-32-publish.png); } .icon-32-html { background-image: url(../images/toolbar/icon-32-html.png); } .icon-32-css { background-image: url(../images/toolbar/icon-32-css.png); } .icon-32-menus { background-image: url(../images/toolbar/icon-32-menu.png); } .icon-32-publish { background-image: url(../images/toolbar/icon-32-publish.png); } .icon-32-unpublish { background-image: url(../images/toolbar/icon-32-unpublish.png);} .icon-32-restore { background-image: url(../images/toolbar/icon-32-revert.png); } .icon-32-trash { background-image: url(../images/toolbar/icon-32-trash.png); } .icon-32-archive { background-image: url(../images/toolbar/icon-32-archive.png); } .icon-32-unarchive { background-image: url(../images/toolbar/icon-32-unarchive.png); } .icon-32-preview { background-image: url(../images/toolbar/icon-32-preview.png); } .icon-32-default { background-image: url(../images/toolbar/icon-32-default.png); } /** header icons **/ .icon-48-generic { background-image: url(../images/header/icon-48-generic.png); } .icon-48-checkin { background-image: url(../images/header/icon-48-checkin.png); } .icon-48-cpanel { background-image: url(../images/header/icon-48-cpanel.png); } .icon-48-config { background-image: url(../images/header/icon-48-config.png); } .icon-48-module { background-image: url(../images/header/icon-48-module.png); } .icon-48-menu { background-image: url(../images/header/icon-48-menu.png); } .icon-48-menumgr { background-image: url(../images/header/icon-48-menumgr.png); } .icon-48-trash { background-image: url(../images/header/icon-48-trash.png); } .icon-48-user { background-image: url(../images/header/icon-48-user.png); } .icon-48-inbox { background-image: url(../images/header/icon-48-inbox.png); } .icon-48-msgconfig { background-image: url(../images/header/icon-48-message_config.png); } .icon-48-langmanager { background-image: url(../images/header/icon-48-language.png); } .icon-48-mediamanager{ background-image: url(../images/header/icon-48-media.png); } .icon-48-plugin { background-image: url(../images/header/icon-48-plugin.png); } .icon-48-help_header { background-image: url(../images/header/icon-48-help_header.png); } .icon-48-impressions { background-image: url(../images/header/icon-48-stats.png); } .icon-48-browser { background-image: url(../images/header/icon-48-stats.png); } .icon-48-searchtext { background-image: url(../images/header/icon-48-stats.png); } .icon-48-thememanager{ background-image: url(../images/header/icon-48-themes.png); } .icon-48-massemail { background-image: url(../images/header/icon-48-massemail.png); } .icon-48-frontpage { background-image: url(../images/header/icon-48-frontpage.png); } .icon-48-sections { background-image: url(../images/header/icon-48-section.png); } .icon-48-addedit { background-image: url(../images/header/icon-48-article.png); } .icon-48-categories { background-image: url(../images/header/icon-48-category.png); } .icon-48-install { background-image: url(../images/header/icon-48-extension.png); } .icon-48-dbbackup { background-image: url(../images/header/icon-48-backup.png); } .icon-48-dbrestore { background-image: url(../images/header/icon-48-dbrestore.png); } .icon-48-dbquery { background-image: url(../images/header/icon-48-query.png); } .icon-48-systeminfo { background-image: url(../images/header/icon-48-info.png); } .icon-48-massemail { background-image: url(../images/header/icon-48-massmail.png); } elracodelangela/administrator/templates/khepri/css/login.css0000755000176700017710000000364211061563433025205 0ustar essawireessawire/** * @version $Id: login.css 10387 2008-06-03 10:59:16Z pasamio $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * Joomla! 1.5 Admin template main css file * * @author Andy Miller * @package Joomla * @since 1.5 * @version 1.0 */ /* -- Imported styles ----------------------------- */ @import url("general.css"); /* -- Specific styles ----------------------------- */ form { margin: 0px; padding: 0px; } form .inputbox { width: 120px; margin-left: 10px; } form br { display: none; } .login { margin: 0 auto; width: 500px; margin-bottom: 100px; } h1 { margin: 15px 0; } p { margin: 0; padding: 0; margin-bottom: 10px; } #lock { background: url(../images/j_login_lock.jpg) 50% 0 no-repeat; width: 150px; height: 137px; } #content-box .m { padding: 10px; } #content-box .padding { padding: 30px 0; } #section-box { float: right; width: 320px; margin-left: 10px;} #section-box .m { padding: 5px; } #section-box .padding { background: none; padding: 0; } .button { text-align: right; } .login-form { text-align: left; width: 60%; } .login-form h1 { display: none; } .login-form p { padding: 0 1em 0 1em; } .login-text { text-align: left; width: 40%; float: left; } #form-login label { display: block; float: left; width: 120px; text-align: right; padding: 4px; color: #666; font-weight: bold; } #form-login .button_holder { float: left; padding-left: 180px; } #form-login div.button1{ float: left; } #form-login div.button1 div.next { float: left; } elracodelangela/administrator/templates/khepri/images/0000755000176700017710000000000011061563566024037 5ustar essawireessawireelracodelangela/administrator/templates/khepri/images/j_crn_bl_light.png0000755000176700017710000000036611061563433027505 0ustar essawireessawirePNG  IHDR{sBITO$PLTEВ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time06/07/06 OIDATcHa``bBA@,3 IENDB`elracodelangela/administrator/templates/khepri/images/j_button2_prev_off.png0000755000176700017710000000134111061563434030335 0ustar essawireessawirePNG  IHDRj sBITO PLTEn pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time4/20/06~ !IDATe[W@]iecb<%2,bZv=^$𽋛Yyɷ!Z-X/&60EM~NO0Jw p&aQw#d' pU_EU l:Ž?2B%~ra躏1kBw)'4Lyj,8dbx^Nw0] M SI mҳ|4jM-I05scwIENDB`elracodelangela/administrator/templates/khepri/images/menu/0000755000176700017710000000000011061563567025004 5ustar essawireessawireelracodelangela/administrator/templates/khepri/images/menu/icon-16-user.png0000755000176700017710000000121211061563434027632 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE333⭭}hBe)լuSCҿL{P%|R`Jb&RLpCε~^^^b0^P;^dEצ}2Q9s_C)f3iCQwӅճp‘TY,ɹܓ-^nHKY%m;LψkB:::֑Wi)fg2ϔIlE(ʽݞKBӅj=Z!'U*LtRNS P< pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATc`D t t*b::PQ##S/~$DMPZZV\&vzP-.VV ., 0N!UQ# (SQQQPkng>q3//3MLcAMS/)䧑#IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-checkin.png0000755000176700017710000000111511061563434030262 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEL ٤R՛۽`V ]j-ђ̺ͪ_W_g$捽uAIP y\ ᳬ~츌PZ]T n޶Ѡʀ[RW bl%n4ثaSYB@tRNSg pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATc0@ h|4I)TU ]s#n3x8AXZAF| &~y PNKK v.f}mSlDR=c555i لΪ)`gTPd`cH_(icIENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-massmail.png0000755000176700017710000000141611061563434030470 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEʭɁ*].i@ŽZōKDX0hߣ.tttT{OҶ՚L{F͢ӷpDğ混{7ɯH-Sʱϻc2m7DЉ<ŬyDɘX̼d(־ļf(DZp?ϧ˔ޜJ5xN>8]tRNSkv pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDAT5R0BK JV-Taår?v&M1T& uR Hr =9EAGO!D(||@1m^im'o. lkLycL_Dku2ʸD|(vO GKr+}{K8GuS|w77{zz\poՄIy,n>_2EOIENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-media.png0000755000176700017710000000161511061563434027742 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE*T ڶzfTz;ֺx5yGuu3nyyƲѽǀ6ƪg [xkm{H;麇ȋ`UqJb&ľ{ɲ֦Ӿu;~xew1Rp˼^Лwc<։NÆGݸΘTφ,sòůx>™k vxi1ĺöV>1X$ھXŸ\͏Kh pĵe}7}Uºzx5pyƿZdbLOtRNS3V pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATc`C X"\l""rӭ1\ UҺr,`Xe+ hpNiuhP O\^'P53^(PdV[lW7LR  hjdrDys-Aql9l^Zb@od4 qD主'Vc*L-h_IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-info.png0000755000176700017710000000111711061563434027613 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE]ތ3Oe5pV^N{s탯m׶HrDaWزii,g@q^QaJ䴽k\!f<_kskeLjҸ7tRNS0T pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDAT]i0 ` k2 #BO/m4J9+è|H`Y )1a~dLw& N L)Gaxb̥JBks0hR!/)%B!oxc`3X<c07+q)ծm[o;lm@A{YIENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-themes.png0000755000176700017710000000157411061563434030154 0ustar essawireessawirePNG  IHDR(-SsBITOnPLTE%7$rL!;KZPLaJh$2:0HS_:H2ISPîJLQepy[fqPd5楧-0-7BBea4DT86nztRNSgs pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATc`G V|!rr!z Y ə9\F f^ IIi"l~ J  B2Lvaܦ rrƞn))nn ...//HED0 dddYYP\\ܡĆF jQ@6;9s vDI?"1ӌIENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-default.png0000755000176700017710000000107611061563434030310 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEDz~AjUiŰ^1ܹ+ǰDϻtW;ۏXGglaKEtRNSAXD pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATcpD dE4QyP 44aBVffv2 N]VVmmmVV{}^-VbɬpCu n $\ڂIA_EJH HX45: >54 獆IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-archive.png0000755000176700017710000000157611061563434030312 0ustar essawireessawirePNG  IHDR(-SsBITObPLTEl\9ܾغ{L⌈}̸۟Ε`wťdjy|Ǯ~Ѷy[ҕޭ잪μYŭsċ̨e~ŞכwjҶ|ԼѲsԾ׬Sҽhim~ԗȜٝ׶ƱˬlƉ¥Кصݛǧťkk{Y䢺ؼֵ}X΃yӴu޽<vtRNST pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATc$! `O?6_J" *ܼI^^^n!H|dW2XHLLL/["`ƣ[JHrssI hʚqy ³M<b8M݀ZÝ\U M7\="A$%.++#"`4(.bUpC%S4P0iG!Ҁ$;^:IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-component.png0000755000176700017710000000127211061563434030664 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE<óÍԲnwйЮٻ|QڛϮlжΎ„ǕQŤcŽɮvֻлԼ[͵ݢGӓѲsֽϯpϾd޽sޥţljdžյsҨǼҲHؘťkݽ|ַxʰ|ƾѽΔŗ۶myƭx _nlpNtRNSZT pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDAT][@\$Vڱ(*6wc y=3Gj%a}! }OӔ,RQաHranvݲH1p.D}>LMpYAp>3C!Ȯ Ea[ R,|O'uB蘃[$1?q\4V1W (IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-cpanel.png0000755000176700017710000000112011061563434030114 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE]⤥3d\Bl׿𼼼^~5pNsC浵oDaØPs*fҵ`äW[iJ̺>n<_ ek`}gK9tRNS O pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDAT]kB@ \NJHbȭFY,f/{=hSjۮ24 UYj%aW#䚌C`;DO}f Zh2\c "VK1Rˢ-kuU}?WԹ:e`AYZ,"/@=IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-frontpage.png0000755000176700017710000000115311061563434030645 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE;#}5}{ofWPż`RḢھfeR~`1j)|5ypcJ90th<̧a1g\LȿwT?khdl0 qpmفyjRtj_Of: {Ϯxvswn`cYIpfW;CtRNSr pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDAT]0Q(5"`EčZ܍S/wr20 M/0bQ3 iL/4adp~}vVG61"m!ܯrC T$u} U#RxE1r ѽNjQB$>5Bd!: Il&8a*2zg@ЯDgS[GhW8*߯a,F[IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-print.png0000755000176700017710000000101711061563433030012 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEmll֜zdWoxҦʀfms{̒ltqqqzi[p{e֡Ľۦl3tRNSQ "Q pHYs  ~tEXtSoftwareAdobe Fireworks CS3FtEXtCreation Time02/15/06jIDAT}m 0᥋TzXTJeM]\{)O ΁COdf|@Vdb[7:ױo6ywF*_>? =هߐ6imi4Ƈk)`f.c/ TcvAIENDB`elracodelangela/administrator/templates/khepri/images/menu/index.html0000755000176700017710000000005411061563434026774 0ustar essawireessawireelracodelangela/administrator/templates/khepri/images/menu/icon-16-stats.png0000755000176700017710000000100511061563434030012 0ustar essawireessawirePNG  IHDR(-SsBITOxPLTE᾿Գ꯲ﵸµC(tRNS(q pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATm PJKJ.e0l > t%xc(L0YI벻DӡfHk&7{cV1rXkPp`M!:DZDž1vtfpP},yi."IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-language.png0000755000176700017710000000171711061563434030451 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEQ`ǫ=8z𘝊seㅎyny󠚧ѼL^HдwopuEM؝֥xZ̎tj䩰Ē~PDnϮđdeŭĉ©niyZYۋuɒxŭ_rߌدϐzm[N|S::{ջު寴tꌒ^vtRNS5 pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATc@ \>r5 f %n*ѭ > vŲv J!V~ZY=9j ,,-zRL2yF aaa]:) }}M|E6 ili1ʽq"bE .aEE )N<^IIAQQ BܮUAޘ~!(GO3?IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-messages.png0000755000176700017710000000076711061563434030501 0ustar essawireessawirePNG  IHDR(-SsBITOrPLTEؾȷΚ¿ƨ強Ә»ğվŴ͟F&tRNS7bz pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDAT]ω ` v58ô)c*DESTLMlmp3y3΃׳PQIJ^_WXЛÜefmn&\'||,j-:;0s1BJ˪ӽdeŸџ͏̵ckO-0LtRNS4 pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDAT50@(ba5"h=F>dfdvdqyۛDMQXw1 L&BȡŘRj  .-&;IΚi`sNmAhZSJMNy?|!rZ8G4 _X$Ĥl-_x9)IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-logout.png0000755000176700017710000000124411061563434030172 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE 䵶߄RT::++ʒcc==vx߽⸼QQDD01ooࠥ޾킂vvZZ``HH!!@@BB45޿-_GtRNS$ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDAT]@ b,tF#XTJ!$=_뫾2R&b1 8GAR)6VQ*5oXR0^o~%yYicu\8'kg}d *D;T/Y'x0Ǝ(0)9R&|DIENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-menu.png0000755000176700017710000000122011061563434027617 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEU۴Z~:qu4iIzk½)^閥2ij(^?reذ.e7mțTzjj W:mu)_,aɵٲm!EtRNSp7a pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hxIDAT]0D7Ժ "UZB] B\$y\@iݖU)%}r݉84AeV,k۶N'4!ĭ6z\8 v= EH1hm=Ĵ7Ζ@alpGaXQ@/$AU#!S@ss"xIENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-menumgr.png0000755000176700017710000000122111061563434030326 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE[հnSy=rx*cѶ`ý)c{̫t2l:kZ͵ޛlVt]Ar@s꽽λō̸ӔzmcU֣؞GtRNSЛ< pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hxIDAT]0a *`BH)IaF"$238$2mo/aڜ+:s]+:䣳i=Z @pDmՖfGaq\,b h F:caH'|\'PqDUUH,EҌPl/@IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-help.png0000755000176700017710000000115311061563434027610 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEff@@پ))澦rr娨YYꏏ--ڡTT ꜜjjxx11..JJmmŰ諫 \]]!!솆66ttkk߿ţQQHH6?tRNS{ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDAT]0 F@"8R΢Y6E79izaeKs-b4We Q!Jrfx}ZeM]?F|7$U%"cIENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-static.png0000755000176700017710000000136611061563434030155 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEKitιغ{SwrѶԗxAƺ‰ťdҶ|~{vˊȜൠwٝȻȬwɾ̩چ׬ӽ׶ѲsΕ弚Yכ২Ur|КƄ۟zNӹܾˬl̨֥hƉťkؼ̈́ӴuԼXZtRNSa pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDAT=0a 8p`Tqu w|$ K1Z5O,CNz0.O!BڅBD BJ$ԛlm򼎁sBn/QppތқEPu]7*e%Xj41 Vo;/?%d`†1W}̭s{t6tVZ\i%IENDB`elracodelangela/administrator/templates/khepri/images/menu/icon-16-module.png0000755000176700017710000000131111061563434030141 0ustar essawireessawirePNG  IHDR(-SsBITOPLTEHѱo֞Ə]ūtе[fϓ׻Lxۡػ}dϯnˍʰ{bJͲ{͜lһӍǑi؟ZU=ΔֶuħlcVˮr՗ߛɻbȉޤ㵖Xťeٜ̔޽{hQRܾXɒֵ{Ӳnӿ֔3 StRNS0! pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATcC `ZCISMٙ I@I^N.`)Paʡ/&f` P0v 8*)8z8::T988ee]d FrrB:b pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time06/07/06 O IDATc``pg`<ˆHHTI ,MzIENDB`elracodelangela/administrator/templates/khepri/images/j_button1_next.png0000755000176700017710000000274311061563433027512 0ustar essawireessawirePNG  IHDR&(ۙsBITO pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/08/06{9IDATHMlW}o^;:vlA1_B *8Tm/-'$TV!*=!VCK)AC@ !Ii8_؎]w}=Bͼf͠axV)b,Mr@BX^/˵Z]ӴJ14e^y)It}*Dz&㚦!۶=s/^i6 ($:[;!,Vet:,ZrNV>=/GNYb]6XuT{k#ˈLRFv8evi[Ip!AVzM_nV^V|ٴO83r?Q +."@Yi;c)nC:n>?wB!n郧{ּ'azb6 6\TVTF刭&)mݏM^1B`!6NeDx*/? aI5˭y1V3'Q= ïdƯ~KĝաTrY/.Ţ^6$3AZyu2j2=Dҷfx~l#`wwL ;\ +KG[~p,АFdߗJ=sa%'[kqJ,K.v_x*Ѓx v`KDmƟvs=mLd_=b!ZPl 8eMTWL$IAbI,+&$ykA=4N^ - Zqz$ ivzjBKbB:~޵Jt8{2) w22\ ~).Xnh[G}iAYnܾg:KP'v9hQnkC!v%=rЖڜ ;bq͊Vo/S'F ;6ly~7qm#ϜGf9-G~? ­C U˼թ~xVJ*iA de2٘Π;}ϻbKEzݻpjBZGnyԋ]wr^7(.FanBf͆M^7 #r;MzK{R( fm3lvq(gKwP{[[$IeaeYʲLrroo/1B?cR!Z-o.0 1T$$Iͬfy<B)z'Ó9,0 ۶5MK$@fgg/hQUU= IENDB`elracodelangela/administrator/templates/khepri/images/j_arrow_left.png0000755000176700017710000000050411061563434027216 0ustar essawireessawirePNG  IHDR ?gAMA7tEXtSoftwareAdobe ImageReadyqe<BPLTEwْtwuܶQuhT[V_͎Tv~SQwtRNSfIDATxbfFQbXxXEdb` 0A @L KX @LAN M EDI 1s3)*' `C~IENDB`elracodelangela/administrator/templates/khepri/images/j_button2_readmore.png0000755000176700017710000000155311061563433030331 0ustar essawireessawirePNG  IHDRj sBITOPLTE޽ֹ擱aݷ߻ݟָϢ@̾ԫ׮ىc?ԑӫԌ\ѸȾǾͽϼ͚bʝΉĬɺȹƛcŵ]kd pHYs  ~tEXtCreation Time4/20/06~ tEXtSoftwareMacromedia Fireworks 8hx IDATmK@ &Ac+I%([URVu%7;!.?x&!RBHyn@ Mh (6Ke.|ɓ|qNKVrHUf/Y%lvd <7ꀐ5(ڦB_9ar%@ Tv aߠai_.t𹃗[ޕU831t{MW[ٯ>ݻPhcKN;>2Ԉ4e!x nVxub#)B6PP&AB[( ##Cj)Y]h+EDAk>{kN+ϵ6 cT$Nr¼^U58 m88eNr.>fpi<#y2 FxAݰQcpo S{tMap͉KjF-;0C vҬ[6.LErX&c-{`zjX1pr7ЕۥEgRb+Tjx@ jשN"2Ͽl.L= "#v7LtzS+' 7dDzCn5|ԋѩsQbO= J!w@w/z{iR,Q&ًZjҒ:mtNJkY^UUEQf+daYV)YxeYxowJ ls4e6!(񠧟R16Bmu!]ML$ziJEeQ;"躮a,GQ`p(6#\IENDB`elracodelangela/administrator/templates/khepri/images/j_arrow_down.png0000755000176700017710000000053511061563433027236 0ustar essawireessawirePNG  IHDR ?sBITOHPLTE[ȒZR؋egewfUc~Rgk·iSctRNSVs pHYs  ~tEXtCreation Time02/08/06{tEXtSoftwareMacromedia Fireworks 8hx;IDATcLN!vnn66a>!.0*`dSfaIENDB`elracodelangela/administrator/templates/khepri/images/j_login_lock.jpg0000755000176700017710000000475011061563433027174 0ustar essawireessawireJFIFHHC       C  I !12ABQR"Caq#5brs37DSu6ct ?WSP:qPͨZ1ݱ5-ȀT̛k1=O'ssGⲼ8LҧwXLBc=Tߟ/Oom)\G%<6@KKɉ-Ӫ*ؘ,Y̿Ȁ[Β쏓iof/a{Gr7Gi(vTbv3܊K#>o gPwPP m&'VeXk~,WqIB/+ McX"Q#;/>lŻ`K[+} Nz/p\hPma 5kPW2};U@Ȭ^齾p&R]yu3h(xF~-= jV^E!o]_qF n'eO0 [}5.5-t@ K]uo]@tKܩ 0?elracodelangela/administrator/templates/khepri/images/j_button1_admin.png0000755000176700017710000000242411061563434027621 0ustar essawireessawirePNG  IHDR&(ۙsBITO pHYs  ~tEXtCreation Time02/08/06{tEXtSoftwareMacromedia Fireworks 8hxjIDATHUoD~㙵ίMF IVQ58pn9 'P)$@B4R#fSvVI=/5N~k}3{{&0 \.WU] RR*cd2볳NjY^+`iF)+.!Ii$IH ݮmgv"iR*}$I@B"ĵkצ,*GGGg!/..:c~E4-8lnmmqK)=+Ri*4M}LJs9'D;<<}?MӋ/ !0 *JREgN `4mhѕinA s4M)u H9UӝNg}=JǏ>q뺙2 g/ 7$Gpmm+W ndtafm}{((,)KQQJ-ef.?naU)|$ իׯ_,߿AO?~jy1Q!|ƍ^'x6/Y_Mja(n߾t C@AsyDQ bBV%$ܼys?ЯX[{yJ)JiV: N'y9Ye!nPX]]]ZZ2 \e,tffV^xX$BYwQ%I %9Ch42a !|ض}rr8c4M˲t]4-YȺN$aN&dR*a.//a躮Ol۶mX,꺎3tȕF#:cR* .]:wNӻwzE8SSSK)фpp777VVVt]T*1LbىZQX,2ir<J%cERAiRJ !QI)CCPJM0iinu4M)%|nn4QJ 02[dNDFJ)6d2QJ/,,߃1fv^Ge[P.KIENDB`elracodelangela/administrator/templates/khepri/images/j_button2_next_off.png0000755000176700017710000000134211061563434030340 0ustar essawireessawirePNG  IHDRj sBITO PLTE pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time4/20/06~ "IDATeZ@F&T*Dbf cXjVfi5{4<lC(B`tִU; R]%%H*hQHJӐ`Z*+zs0gQv/*6 cPl(~g1N9c`O"4xl {3 /=?~10Ѕ&RU9}y|GYF}{fFُuVh\.F4f tjV΅e(J 1M3"*Ϝ$m$ri_\+g5gw,IENDB`elracodelangela/administrator/templates/khepri/images/j_crn_br_med.png0000755000176700017710000000040011061563434027137 0ustar essawireessawirePNG  IHDR{sBITO*PLTEuCK} pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time06/07/06 O IDATcPR*gPRʠAeCBT?܋ IENDB`elracodelangela/administrator/templates/khepri/images/header/0000755000176700017710000000000011061563566025267 5ustar essawireessawireelracodelangela/administrator/templates/khepri/images/header/icon-48-extension.png0000755000176700017710000000436611061563433031175 0ustar essawireessawirePNG  IHDR00` sBITOPLTEwόSxJi2ߎ{\񻼿}멤333ݜ^޴lmr[ZZկ"ĺ̞D۳yRMJˮeѺ͵B>6_>С.[t"fX݅fK.p6=g>p/f>{=~_ShWil,,ųa8B@6"Rk![e2%[^iظ&TaT^h4{^Jxq?\߈Moڴ٫ޚ9u!΢6~\sll8Y8z\MJEY>::zl/K?xڷ ͎i-Z>622 ,A[ 2M@8<8x_@f KD"2/|Лwn`I! Mi.//?LJB?Neؽ-L͙ e Hy)syOf09!FUׇ/燝kgz8SDEG ԩ/,[vNVL$Gg]^'y{yy "MǛ^lrMGWHe DtZu*7IFrcǪD⁜ctY +nn7j景R=raVP i'~yw+h^رc^ve @fZT.E-TukVQ ކ3]Ϫq`6^`A8Qi[*U+X ؀R/f]U|RUyw >- D, egau NU %`u`Dh~B,ǢQ+sI Ippgg.rG{7 _%O#<IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-plugin.png0000755000176700017710000000413611061563433030452 0ustar essawireessawirePNG  IHDR00` sBITOPLTEϕVrP]`H~1]t>X`-qJa0N H\wJmm'VD<м,&˴7`q#R1@s"c'zvOLL&S)zfH%E= |=ٽTaxx)|>dQ +,\1>?߹o?T*68/NMa80:H$bN 3" q3t: pqBf Wy3e= ͲK\w6ϳx7gH*w27O WW+oBЊ{qBHpO I@p{-)YLDrya?3LPK-Wf K]Z9|即2,; tRNS6$ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHŕmWAЬ Ut%@zwf]%4(3w X$xt{;:ƾ?48_\\lrxUEA6e<qhV':PhlmĞ mɬ+\.r_~AtVI;?i$E8ӣ mt]D]~MXg}[[5A:o; UQbY :фf( Hx 3`ZR`фN*\-2_%Siv~4@q,a)*L =^-yM]ӡI }2 1*D*b[># BI+5Z9?܉PYa(ᩈ_/-6z p(!؅^ydՃFn DxdHQ&Y@‹60 +mTʽ4Y]N {J ҺC!wGNo`MvOPsd.VD*o>up8K1\Yӹ>KWr8z<UtRNS` pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jvIDATHo6 6Khvn2J.%CP՝n߲V~4i/OxrCC[{Hj!zymx niNaJ^BQN17~ 9 s=|/v_ncnT0"X?LB9?.9Y0^ (}?@qv[-,}W% mz?<<<,tQlXN ԋwLFS*ΣdcP~_2FƔ$~ʀ#q)]HH4kE?|: Bl0V<?@^sJI1l,@HA0vB`cfcD6$,]Bn7ttx  `0>hUuzM:cfu9< fb] U~LB,}fj;V@sƄ|;SmFTr7m= qU|RN[[<-V;9Ͼ{~x'B~U Ȼ|Z-s邂$|x%S CTJRYrvj긄R$R(/g5l@gMM͊##g.1p-4;[@MvyFHБWo%%ud;J^C!X!5={^ze'/ %HdD36eEpr*'lzRfZ}\ 1p9"3+TddMdp0Xj`0z}f+N-%_<ض0 קA{h4'xˤũceee6!{>o4U@1 lˆP@N؄^MopN.Z@@w 66v 2VYeswG/lΙLOI-SR$|6HXZ{\]+=E!xzJ !q/t QðHtixx2HI^KKK#pR @R 9߳PXm\轻C/900"c3RIgdT~<}~?e}* nS"F҂*@zzxdNzi }8.zFS/&< '8(?!pd>"!7,ݚ׌ᣙia \Qnw xBh:DSoO7yT۵Ū>+8޹ST*}iRrSbbbȬ,/7pD(;x h]#o-A C>)*N6@ynqqsg軚bh9sࠧnBMh?39dz,hq } q`r(B,\x ^W_"kYH dޠ+IG" Dp1xѽ)H@#$,NtH:a.M(hq  qYHZ`,.Zt%K WH(<IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-static.png0000755000176700017710000000426311061563433030444 0ustar essawireessawirePNG  IHDR00` sBITOPLTE$WkˎɪiCmiU/aøʨ6nw~ػ|ગl]]]ƽ؝縗Xxm[ؤv8f}ٟѳtJjlДk:]uwÅMMMpK٪δ|”f_ԻšH͂x`Zoo˜o\<֛yws۟ƪrϥ߾ջ=q{lSޔ̵սŕHegRNji״M{clbLj}~;agJԗͲllk8iwAi}dz|ʗ˖~Qۣίpծbhjs\1ȚоZԵv˭uɸ۽~fffOW[ܽzzzHyu涶z[.zs',>sTۃn~07vSKo|՟??wonr)ǹIW, %扐?rCĢ?D1c@O7'<&OOo }IVaY'UÎ[Oyf)Pe@ؑ96q>Ͳ%G"~ܨ ), @X-(^I!{4!t1 zjx 25' @YCC #k6}ѱSnn.,,PXWVZ__̣c~}K屐K ܘ6ġ(:j sq"v@ x0Ѩ @UQyuhaS% 5T%Ma\Ad]ru 80pDf1X3?)i)m nZ 80.N*g~:E5 Y (40* *pG*${tҢ(v\ TF681@m !)JZH2$ )䖱  du \1 3e\P[Sg=6|Ѣճ ?moog?z87q6,<x3= gszANG=C2v*ᕅrE8EQ!1 q*CsìP^1ME/g81d(sײEZAʲ|>Ge` Ut7atUZY<<>肥5}u5u8!cno{pfT~ӻ۷o~4`>J $C%~p/pU~J%_]Cu@ R.'+ {}s( _+8CcE,DzL)aڞ]3t'C jQ;?9>ISVA:f}* d Pj\t{mzXIOT*Ly 2sx^9p:qԝ*!U+$)#H"`kvxUrZݬX ޵wzQL=Nfz[:j\,:xhB9!I &   M}Wh ANŀe'5n8Q"KIqU5dm-If; x@Bo*6n\M|誅Mp eh-L)2&&u J$_ELR{QJG՛/KG.?0 8vHR8DK)})\_ r'|3Yh"yR+&bl |/> D爦/v_? # 1rL{IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-config.png0000755000176700017710000000272311061563433030421 0ustar essawireessawirePNG  IHDR00` sBITObPLTE԰٣R|0ܱI޿ħܞ ۵\إ߹~ڧnݲtǻ9٧l柞޲۽ϫܮX޽暝ߧ$ܥM⥪歭֟ݽߥ):vtRNSt pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j9IDATHS@`w 4#6[K.Xh9-$H 3M(__l$͎doa@!W5TuE &C{$!Pc1d O`هJ 9 SۋaaUAB` TbvJ6ZvxCDV1mZ 3@?q,>Š t9t%A~,HkU E` OT*~Ƚ74hf E?Z-o?1f EV@@ G+ۇo}6~B$]р=?so͋ࠂMhݛ*o?|4M(lM;NWώPh\ y_.=H@V83B18__y})yb@Z(j[2ĩjU=^&(s l ⬦ɲyї%_Ofg`#ZN8[k\_+n5 KEeW qDQTR{b, qC<]Lo G D$| BA$h .'8]! :*ƮP[z7~/ek^IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-themes.png0000755000176700017710000000456011061563433030442 0ustar essawireessawirePNG  IHDR00` sBITOPLTE479ѼrKQQsbLFGKuޔyzzquzncAﻷGbKCYE{laSlHxcPminugkskRbpD_k`bZNMRSRcOZpFQYerOpXjszoo̧IS[[fpŻu|Zkcjtchmd;@@~@HDM[eXbReqZZJqTWDEPRcRsBKUIrxnkI|cLWf:|{kk8;9`^:u;LliYkm{JZR`d[|r!tRNS pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hxIDATH͖{PEǫ5)QjVШC#T-}BL H*hb`Ĕ5RT CH#ZtTFݽ}NU-ɂ`4bE3EE(̚5^ൗa˧sGy kъxxJG)+kjVDypn'Z[[ֶBagU#X'%H*CH'i`6`qx=:( TBAj$,A, {lў&dd J -BBDS& t7!a$Q0,jJ?L~,@%vAB6!!Ns{Y^'H %EmdlɆ`TOM&^ᶲ8j6a4!ףЁ+^~4K.1A%`{[=\ 0S8t`)A4<h`YYS8>[hQ|C!ei^[a`;.^/ BB(*( sU|{ 6JHuPS[Ϟ.q -&TЌU4 m7@!))ST4Ekʹ w6sdmi/QAsMw!Z>e2]Wa Ц q/tMh(Ā0}&,[#67p# Q|SqR "\{Y@r1,0x'zÈ!q1X.&Um2UD;<87{'?t "|$IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-user.png0000755000176700017710000000445311061563433030134 0ustar essawireessawirePNG  IHDR00` sBITOPLTE堤kB h9]5q3w\2mgbS,6s/Hʏ!m"#$X{_.1NNRN\* ^́yHKnM-qCRPNp5K˄Yš}[<Ϟٓ@c1ZwFje@wL}>I Zބŵ333j*Z)߰vriWB;Q ޗ2 QwArHj"rK`Xxe֚MZh)y2R"Z@1T'KPߖk@K;ܴmdaPv{B {<cmUe~(zQ C RPZdɲ¯֞YŏOũO"1* |,3>; X7S#̬9)wTb'JDpv<̅'޶qnX:z'O:f"J[!Cm̼]+v!i*lɢrzOX l[ Κj:988ٚ~@tn%ëϗR篊dzjųf3{B ƋCkq˸_RG:Љ`'m@KWMtRNS7' pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hxiIDATH}XSUY՚Hi т^ (b!pޜ&iLIܔS(dPcj$Pm+bg$u {y69\^|y~7@ 8/=m+s ўnR!5~Y1[9! PmN3fh4/Ѭ4s/#NH2v Xtq&p} ܀ 1ħ>0JMBgEeeo'@D%6H-,14,H2x;ֳhP`ae|pf@PBoClLȔP#`D DBP5&2yLbc˚8,46@$Zxg򾎎uB?c0(!@©^oZ^"35"0LJ ˙EBQú~ә(88!C* /n;<|}(G3 zОm{V.},әq4dlNi*z9MR FSx@ipx*OLeO65T6=(! TMÔb *vH R,憈ImV47B\2"#@,m;-4*?{GW}9 @B;'۹J|ꖡPo2%e $}` rCG|*HzYPP儥vH_x J«0"pWL6w/^عtgꋅ>D "b7wiigSOΨ9@PVyXD XpAAO7޲xɒ[v}R;23v@=ܒta! kFo "noԦ/>yE "]y}7>˾y]65--Gr `SWնwCyܬH `r[{a cF<eq\mS&|$Rtq|y4s;M. %mvݾ錏Xm]!Ȣ=x( ~=aQɘ8)7MkDiuz%_8aK$5>44 4~ x*ɿeIuy,@IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-install.png0000755000176700017710000000273211061563433030622 0ustar essawireessawirePNG  IHDR00` sBITOPLTEq@ÄǪmæ]ɢ˵ϓKԵuݥmηQαˍ؜ŶťdRĊɲūsػ|¸ԗͽ—Z֟NeʺӣѲsƵȺ]՛˘Zոz¥jJ۟˸̭lίp۽~溝c̩|IޭԻɳﻮƕVTbVĭƵעNJgֽbɱ|Sۥ̔Ňֵ֭ҿŻlxEƭy~IkbƜŨ꾻нZЙ˰xZϼR˦ĽRξᵔ~PŜ̱iκɶԥasBӪڮϴ~ޭtRNSJ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHݕkSP< RҖKkCbR(Re@ " ȥFd@$9I 3~>ٷ s=[I@_΁cN╄` S9)U/3 7Dș BUԺ)L2 N6$iym,]goԇ8*Y5H&nMuMGz4Ž:E8t'I6?IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-article-add.png0000755000176700017710000000413411061563433031323 0ustar essawireessawirePNG  IHDR00` sBITOPLTE@]Bޛ;=cjG~d֊nPCv`ŵɦ+p/eE Q攺R\$w{WNԳ{ۜ~QXEԣ`xNؕN@ortVm<뉩ncjN/zJ孟,ͪΌTWLRtkϛc+BN|ɸ2r>ԮsUV4Zt-tIktJϓkx?벾Qf͌a+S߾ݡe{7]5Kkpܓq؃MGiHr_ܜ{9.Эq}Xu*^Y嗖ᓤ@9QQdXqJbHRyYr䥭mJ މlnWqzU_bӝ3_P"ͧK c%|Mӥ`~SkC쫖Yh`.JyEwZR.tFxLd'֌ez1䚲tRNSD pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHsE3 jA[WTVEqFP#zt 5PF!btJVTa) A@%R(xpjy~g⫩7׽UqJG1HNT<*38>PDdWzG=1Us4{?2aݬ;a~2 l\;+s <#YVOy^ BpNA '*eKfR̶3 pU~hpA$NP),܄lpSdm ipFy3 2d.g$KB));025saƐljHȁFI &t. #0yʈ^H! Z"^2pt%ps(L͜gWE6\Bk^C7.x7-z7꠸7̘QC?vֺiGҥF&_\ڶÚEw}P: ċ|ݻo֭=oAѬ1zK|6lh>{5.@9Cܻ%%2qQ\]qe࣓ +χhtCā٦>{ϩkJ {9h1%}TVLP~mHKX?upGȿfBaoA-iV[ݒh dCHҟ zt!o>ٳ޼ꄖGRa@+W)ĔLv!TX{ VX[WWߢ$:yĝu|rRa@V+r\~9(a/zdy)-NQu:a?&IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-article.png0000755000176700017710000000311011061563433030566 0ustar essawireessawirePNG  IHDR00` sBITOkPLTEŽ1߷r㻿ͬԾ^⧩ڜ⭵Aϼܰص޽䟠^嶻Ǵ짬1ޔ{ŽK㫯kֽޤt޵Jފޮ<ߟ_fŵ^ytRNS= ) pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hxIDATH͖OF\z4i-Qq U;Bq 0VY)s.+4Ѳ/{NHiҴ;qy{.sHܹ{׷K8K*6w)N<4Tf,6 `q LYixe@z4Lb&e @s0f6rðј8qX&gNxAb{F" 7g\\二UqfP4NhMeH{C`?5$i(e9e`yj{|jnzWYj7G]JƮ5.6̡ɴO5D\>JͦHpu&*1r1_VT1J3\sz=i&M-" c'?rb>IENDB`elracodelangela/administrator/templates/khepri/images/header/index.html0000755000176700017710000000005411061563433027257 0ustar essawireessawireelracodelangela/administrator/templates/khepri/images/header/icon-48-inbox.png0000755000176700017710000000267011061563433030274 0ustar essawireessawirePNG  IHDR00` sBITO}PLTEd~vTEܽunŸݔaUЫnוbT{ožԊspdŽz燛І}lbl`ܭxVGm|s蟖Ɲ֜Ͽ½ɣZLbVt̩wʒkzi]ڴ泶ֻ䔋XI_QrhcXs|p¿șóʬƫޔtRNS,y pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHS0t5ZE ro2 "^i,"x%6- ~T6JmA& VdJ 1`JBJI" @LE i(p~ȇZ*(̙uNN* }ʀ1J#}7~M./VAF(<< Qb/1,p'hS1eN"B)E]^8 ? q+6dk{0}LWPFqrDGFӔO *Fb![)e"V\`@+i0'fSq~6r 2PEY30#}_t$!cL/`M#Ď lZa%řkԮ9 E^]m\^q)*6G/Vٲ աsōb@6>Si< cL hn!X* #kzdnTК{Pz;MBao׷ X_krm{+? v5^CR?^8k+b$%Ta NZ]:r/[ $fEE?F1DA 3m݁"] Letsd[M-Rzu VxIENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-menu.png0000755000176700017710000000316111061563433030115 0ustar essawireessawirePNG  IHDR00` sBITOPLTE Lݰ]}ǾJqZ7Quxÿ1gBt2c9c:qsϜ.U?qi)cʦQ֣ԤGj՝;mz;iOr竾զ{u:`'V>VxߊKĝPy:UysR)Y`~Ͷ睷S{孹ǟ#_4kLnKsƘ:h͵BiޥHLYCxޫƥ!Z=X{.[ʫŽᮻkOudy$Sօ×uOo?X|čRoBkitRNSy pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hx+IDATHSAǁ29,OƂ]uz|ԛE-C򁞦;鼹dJq,Omwwa{߽Bo3S^DVV&BHdQ-}Gn]O$كS8kkt8Xߝ ǻ/?on>ږ퓡$ O& W >&ɹ2) *JXb;w0d^,ij(v0QNOtQ""XzSF4V!1.,``p1+&( U(.Uհix oNC Nҭ*l P\肣\.w)>F27}SS~A|/&̄ޓ>mo8>wuuc뙟!Wl8+Im㼓-%c@@T8TTUCB2&$HC` DELaGZ<$HXf9@xo4Di^b1^P%m |Uzh 2%^[yE $N!(U҆raz!z%ę (](* MŊ w l0dY)W[z"!q Ŗk+UkΑv#EwMlnnWW㡩Cqe l hp]:ս1}mIPI)ى\v :'@x)A@ZP@QohĐZ ^RP\HgEh-iqe5li1TrIENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-module.png0000755000176700017710000000351211061563433030436 0ustar essawireessawirePNG  IHDR00` sBITO1PLTE{B췼ִ̕má^ƄߧڴIȵ̧ԟq_KS˹̔Ԫԍٻ{ǿȪmŒRެԹٛΟeޯZж|βȺkQˎǫpJ̶Μ亝bҏݢ秬ܝßXͷݷPβvɭ弾Ǿ滿̪d§Δ@븙ZͶͰtąI嶞jږĕս޽yƾԷZaƧj˹ҰAϐȊֶsЍԕ~Fн˯[çpأīxƥdNהYϮlRM¯ֵ֟{kJ̬ťƯ͟ؽͻӽPKjѺߡ›XʳԘYtRNSh" pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hxIDATH͕SX*% /mQ,i}hBZ*5j삮c߯e}uޤ)L{9E?I"ccX)--),&3q'/Ф]Ja~'1qB58.C8C_II۪=3D"BBuuwS ȉ'_* ) {?}Чi?/lE::xʯx*d\jmb!)*u3ځ H8~B}VIGH  'Z :PėL&SSnJiAPN,3z"uQ,sܑ*Qġ=--bMM?Y Ll$ůME0V\5:zp0 3KQ, ?Pǔ媪ukt"oj a$`KoN<wL+BR~Y^=SVVxrxsԌa$ćU7?t:uurS 4 XG]]f!X;w€; $Xch>)܇KX,z}fS3GҨBWZMQLvt"T V2nX"rpi۴/)ޟBۀ8 q$rKJvsm|maX V+X0wnA>n6^pmbbQϦ*aO=3xXb!v52;H:tm,  Z?R`wA˨XW ᮵ Bwn4x c4nY}C$q4`iMYB) `iha:wRA@Zf'Yy}sB ޹jc7 ߳'!0IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-media.png0000755000176700017710000000461311061563433030233 0ustar essawireessawirePNG  IHDR00` sBITOPLTE5qsx=^1g$_]k&uŚh}?߽Ú׾ȲU|hIn*aRd y/˩@a!Ϳxjûɓ]|G jLphRi_ߨʥp ե]ϖLnym;;ѫr眄Zּcqڷw{AίΩՁѷWr fǰ~ƿn] P(ŵs=Fػjs}tk ˤYLn>?`8*ƶmpwdlJk/Ur2F)ъ9l°’v7ί޻̷͗õh̬]|̻õp[v9ҁ޾tuҸt!v߄Xv֪}Ceo‘zMK۪ew{3-Dk2q kw1B#ѴJYuOndeֺ3`IˆƅDW|ƾƻ3[owwcC=:{v{gV?piijz-6}P*RY, dBNKO^CB51}*țYX) 5Uz $!S֏Se шeeFVrfO~pǜtvmoܽ;E"gJdݜYO&dllin#;;K->旴 9 Օm~loOxI[zN}KQ@Nb[Pvvl9[nmb=c0W3824m{+owzKB*g*>@)v;ņ[eƞ Jz*o®ly'X@plvp˼/>8vWD\ pqxfr:ymٹ|V2|Ɂ#-9^6< `tc^CsשS[#[9nk* 8)h3A?pD&P5,b(=p/ߝ@@JZc bqbP ,:T糳& 'lGm;? …0 82h Wh}=׶* +4 j!`Dpq5Buq L\B4B8|0 @I I) PZ&ES{B| N1b4MXL e)`)4 @g~[>y"G~AOXqqQQcDuoy("#:#<\zZ-9ߔBQ5ܭ%L+iH؁aӢF3m?zϮ;${IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-print.png0000755000176700017710000000175511061563433030314 0ustar essawireessawirePNG  IHDR00` sBITOPLTE Y~]s9\hZfffl攔_uARe`:"""]BZ]|ʆqsu{l@_~Yu̱jpym}kmꙟ2e0&OŞ/ Ɛӟ$ =zT%;׹i~ҔRt'z;- ډTB4=:^!nH *tJkT_&D]St;2'¨74!B.zs',>sTۃn~ ō[t)TZK*Pb4n2j=OO23a/r 6GRRƷZ g|ߒ'^pp(NWgf44QWx`>\s)9!D!i訾S M[ `Gd.GTQwj<(JyQLjy@lA؞uA_vRͣw$6$`2gE E ávzY?) z~r+̻(4 zuCQ8s7'0 @ʩ)肞x~@[|IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-info.png0000755000176700017710000000361111061563433030104 0ustar essawireessawirePNG  IHDR00` sBITOCPLTE"LϝlTTat; b9{);T'Qyqx"R#W QjPEgv뵵 cCSj G4r+IsMbor:cT*hY g0Z1C_ u%O#qٽAKY4YJޑ]i{KmX_ rb.d%M2SrJXm{lv-bBH8},>W y6z&S Z>힦Ttm9\+o k檱ap D[{+O{Ro<'Tckw T1vD K 4R)Y[k2m~kuQ[h#y9Ja #J+ Xx)RsJhdյDR\H毫38|OrJ[cpM\q k e.e&:[r|:s0MMq)I1BZ`l}!:R: ]T h&\,W!k}jtRNSw}б pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHwT2GP$>йb> V2[VvP:8n=-Ζ]k+䘖)qrDy<ڮ?x{mt6r`H׾[?B38u™}{~z=^_cRX,Jp/?ҕPk@%dMQбV`igj0Tbt9)X\XVj<BWd-BcL&pXd io}|fe03ɋM`d(ãf;nC(FTt'PLMō!TU*%M\V8}SoC*u`(/q:(f'O}ki%V '3(EQ.< y MSD*o@4]J<` A3MS/+in\WT`x)MNⰴ@Ʒ6ə tKQU9-9:?䂑" 8sBrtrTT;gJsPwS)~\.'hΜ>OPe;_cPqVT5^{VR.*R֘IXIVQA?tm,,x?`TIXҰ`I&-@wZЗ, g շ_A}$<{blx  cm|x 96Б,:M'rccc84Le[`j`Pd]`\]Rmjj/}/՞ՀIENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-section.png0000755000176700017710000000371211061563433030617 0ustar essawireessawirePNG  IHDR00` sBITOPLTEF̑OfQ:8RSֱfjg--𧩭PQkk$z!`aDEPQuv^_>?&[&ӭjkJKy{1t1[[쟢IJZ[{Z[ϧ12LMƛٿABrs̚.l.Lѯuv56ʬSTy~RZEG״ccWXYZ޾e)j*DuD{|dd^_JK X!IJBD78hiߕѿ)})֐KLBCrsrsghRSLM56JR薛nnr:b;GGNOUWŪKLABabcc)a)QZ\[fgff)*uv34|~ܶҀ٠:;@AcdRZ!Z)s{Q BJZ[ffijOPdeӰJRɄؘ!{)͉78outðJRMtRNSzT pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHsdQR@:X'¤EFfhe,ډ% T0BKCX]YSyYCqn]ʕ =>oym8qiOi {<~j*u0Hg p&[Ƈa70iL,86yL+EƏM|_Cs5 q6~C<럮YCɆZZe1^,&) _S3rƪ8Rj\.#ȗwSKA])\ s0:2Cy JAŪ?إS mc(Zuj  (6˶`] 0@e v )VUfPkTbIot`&vS?VD M"ynSiŵEJ.GX"`(O/J:pa"jZ:xK^H:nA *˗ =,֝D.sT-$@- K2;`4_0`({V0}cڟ>p'pz[{`zIWo׮Id|f *w!YVI(k}+ǃ:(u%WwPEG$0p U55z; Vv A_7 [{ *OuQ;]qYݩg>w?yHE_ޠ!p`TXG}vB$Az%rVIz:hNsڴd(g򱕁lY)5%բ=NUE ;N( ogp4<éT1 2)VITn| {c wA7vR7w e~>,'r.~I^f{EްwJe`v Kh x;lW gF4M@F2s6! Js Xw=& .hYIENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-massmail.png0000755000176700017710000000430011061563433030753 0ustar essawireessawirePNG  IHDR00` sBITOPLTEnr]+hv|sM2ER~tr[M]Mگֱs333H3{jX­ɏGz{b֡`"`ߤbdzPPPyPbs7ŽqDۖ8}*[OJKL[bNqWiڕU!zgaUsc3I~JROMxSi֜mǷՖElb!~҇ʹu޿̙f3F:PԊŽ>rheR=!S!TXWUuZ'tו~G1Ӏ?¨MtQ/f'Z@, [pdt3`2{̳ڴn4u?bTf9;jUCބG ϚVcgS͈+wk1[ֽƾɣr^Ыc`9؃[#óklhߣU%*蟖䔋OVLQXPXB|pXiІ}gwZVƝ}(Z)VG̼Mc&Ͽi;tK½FR{ȯzzzʒӈ^dž4_I(~A֙Gt`滿ǵ/,Jf)[lpi1]/zYXIß}_Qv8S[[[hB|.j2yv1D*htRNSi pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHipEǃAM`Žx b.1r(* %4j^4FY2bPx73.@J,o _{uzfA D@!V!&q B!2/Fw *8bP@c%U! [ЂH,CHU ogEh,O!$x,V.Q"hL-r,#v eiJ W۫'1l/ 1ƧҤ4&2[;p"Q8B<ϊ!Nk}kBfݱ;:ֿ(}&i#IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-category.png0000755000176700017710000000365111061563433030772 0ustar essawireessawirePNG  IHDR00` sBITOjPLTEbL%췼غ{PB˦yOӟhȪmգh;wx|ىϰqؗÅEr^:|á^\ΣݞaԗZ\c|kGƍlַxǭ;ƭvd?͹̅kW1{scЖϴ}Qۯܟˋۿ弾Դt׾ZkͬkѹҝpL璎ГąpEK䩬Σjѣ׵ۼ|eR+ZzŅq{a/ņޥٜavѲsrOȋs`:޿ҮfʧdzhDԤݣϏԜJɮ{ɲkR)fϷƨj暝 ^ƥdϝj缙T{f=cϸ殙_뢏h|QtIʬBxfBݸ͹sBdQ.{k?֭ȰtRNSy! pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hxIDATHSiqâβ,Ȉΰ4VAT⊢(uU=*nަl殗mF~igYfƊdmr,Qvw*Ś --\ńe2}YIN1B@,` vh/>mHRB΃bжݻ뷉A]UUBOv04 Z zdb>F@(D,y#>ud$_1at2xhSf Pϗ=i lQn%_F=_6,!;Cva`i CkTfbpaqxw, ;Էu$f}໥ p`5̖_[+uUq/kݦk,os6nɁn :9} GVU3 MjѳaԂ^7;W$a40 []mmm<?COX"ܶG/O>+ogF|OZYvZ-)J@2˅4ڥ8_+2M:ՒGDR9]zL |N7$X!TL 4 nS)fXtp<ˁHHdgzp, Fky %CX+ 0S+m}G-IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-generic.png0000755000176700017710000000260211061563433030564 0ustar essawireessawirePNG  IHDR00` sBITOPLTEAغ{Ƽȩj՜bꞒydžl踫ػߦYΎѲsȺ̽ޭɥո{ˍM _ƫtƍܜůӖÄδ}ƭWšrմsQݾ}͔ʸЬeߢ̮ [וɵλTٜ{Jȋeɪ̮sǰ{ZμͼέjrŦk·ƓޔŤcƶHε|ҲʦԿĢ^ɑДvZRﳸʪǵ¶Žţ֭cʵ(AtRNS$ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHSAq2 ER&AB2ŒhķNJ7vnop׾?)=],˝Zݟ^d]^;{ojNį)6L%hݲrX Zo{nBiVլ{hWXf14G=c6b'IRqQ{TTlp9% `ʹ t阮 ਺jV5V\5ZDL&C"]5?f=ame_3p1 C!K C60H^Jjl(xiʡQUU8A$Q&pLoq y<kDd‹@4ݪhZz>3qx#Ns HT;"0=}<0zf ohtaVKxΠL;x8ȵĠYi$uu =/dJEX!8Ľ*g8֩"ʮ|[8E^IENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-archive.png0000755000176700017710000000447711061563433030605 0ustar essawireessawirePNG  IHDR00` sBITOPLTEaU9ԵvKkԗԻPf[q|噙^mp֪pftAɐÅؤΕVʓ؝tguyxfAӤwvf̵ػ|ǿ˭٪ɪirMbyίpNjĚ͞߉nY1ڷ赓Rx}qι۟p}|qջþ߾^͈t~Y֛xДillkˍŕѳt|ʨg~ޭ}tY~ħp׸zͲW\Twоttt°ɸȚۣJkZ݈֟wPݽԽcd|\u攒۽~Ʈz{f̬lbonծœrδ|ȐntjuM۩s^4֯nf]C{Z¥k}ƽøessZԜťd\ryoLŌtzpƢ{˜ͮþ͞tϥϊýϸ־κ˔ֵzS̵k_uͤřūslzzzzzۦЯشcv}ܽZyŵԁ~lޭdpnitsKtRNSc{{ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j}IDATH}Pu@Eh䗎l97 KgunLqL)Ɛ yfh,,kbۍD,p\vX+*ȧ(V9ڶ |*EwB,(#ɥRs# Ko"KI9ZTTDRف"p; 2R`-:Qae~&%Kd\Vڣ \nW.AV)Hޥw`w桑xDXy9GHvׯxW8!gn7 g2;|>߿r"dB?SS߸ =@8NDzG] O-$dSw~D`>y# __9U WC[@[6th9l.T>Xm+ vwv֊Dqkutt[s@ xЎNdBy|[=xDIO~[[j3xb.oIWgƗx W-P`=`JBN޹gI 0\+?ޭOCxJhd, K2 zPH_JIENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-frontpage.png0000755000176700017710000000374311061563433031144 0ustar essawireessawirePNG  IHDR00` sBITOPLTEԳ}q]x3 >BMr/ĹQ~YE0'ZcXCk繺U ԘYB8RȦyX}O2xy{XZcꕓ̝ZID?89찵KА]Y0_H6 ZZY·եpQ-eHE@wĎa E S!k>{hshS;W ƾjigylVpן(&!i༾v5UUS՞DJT LtҾtMJGϴk^Icktk!J[}QS+ztn&b`^&  \Q=̻:/JGBNo52+EP]ua{9 y+_T@ac!{楪ŽR"CA_npKL䠆@{|bhhhM |> ժi[~ŠNlK6=q`MxX$A09cccc)HR_1lPab ]WXO@l6ҡPyc|]򩕂o]'6Za.FM`Rk@,YD7{|g\+W/m:8CixǙ S0UV)H$2_pKhbÕT kqepo,8CdpT" 'hcH^Lf?n8RoIENDB`elracodelangela/administrator/templates/khepri/images/header/icon-48-checkin.png0000755000176700017710000000277711061563433030571 0ustar essawireessawirePNG  IHDR00` sBITOPLTE6x}_lSyV^ Mwk R2(web /;e#ӭ2ߤrC*G߉~E( ##2gΜ|S|2`arv /vv2mlmmmnn. H{1HIIi9P@ ,bQZWWcdEqM1;/PtV4qFz[}_ܧIENDB`elracodelangela/administrator/templates/khepri/images/j_button2_readmore_rtl.png0000755000176700017710000000135111061563434031207 0ustar essawireessawirePNG  IHDRĴl;sRGBgAMA a cHRMz&u0`:pQ< pHYs  d_tEXtSoftwareMacromedia Fireworks 8hx'IDATHK]oPKvcfͮLff\B1`,8 -lY)a-t\.u(NE4MzM: ׺O.kpDNgv~$$E5oJ4Z4PTjkW8Nb"p\^?k >>vtz G,aaU]j {ȋJpv{-H{xq)YNL!3ɏHfdS>ifn|:\*K~ ߌ0£=BFW*SO',I44Mcf3^c cǯzd2IOjCbHdUUQ78\M| 8e䆒o+bIIENDB`elracodelangela/administrator/templates/khepri/images/j_button1_right.png0000755000176700017710000000070011061563434027641 0ustar essawireessawirePNG  IHDR2sBITO pHYs B4tEXtCreation Time02/08/06{tEXtSoftwareMacromedia Fireworks 8hxIDATh=0`ѫ"O!m,lC+" aBm[|>B,˂ x&qv3?cܶmeYR:u]\JIykBOZ?}l!ci B < loBP!{H)e;G{亮 *d칊 e2v'BƔRQBq4MC/R?xJ\IENDB`elracodelangela/administrator/templates/khepri/images/j_button2_pagebreak_rtl.png0000755000176700017710000000123011061563433031325 0ustar essawireessawirePNG  IHDRĴl;sRGBgAMA a cHRMz&u0`:pQ< pHYs  d_tEXtSoftwareMacromedia Fireworks 8hxIDATHKՋ@azWӤM' nm]A FʡPͷ3eM-&OxI@zzG,(aAnlS_"ِ ;,캮uoa Z 6VGAza:ݏSTdk4z{kZC/B 3՘v٣:3hz6Yίi0 J `<c6Ն=ad۶1keNN/K'a"ePm*BDIENDB`elracodelangela/administrator/templates/khepri/images/j_divider.png0000755000176700017710000000030411061563434026476 0ustar essawireessawirePNG  IHDRd!-DsBITO pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/08/06{IDAT(c|( 00dmIENDB`elracodelangela/administrator/templates/khepri/images/j_button2_image_rtl.png0000755000176700017710000000160611061563434030476 0ustar essawireessawirePNG  IHDRĴl;sRGBgAMA a cHRMz&u0`:pQ< pHYs  d_tEXtSoftwareMacromedia Fireworks 8hxIDATHK[O`nexiL4D㍉7/LD4 JL $ ,܁ۺcn-m12vl#0 $?9]!mҡvmfxUʔܥfc BYĪV,8pyc ?u $!#*0Ky, Y|P\ 6"J^hpV3wP.qyV4}uɜ3V<FLNAåR g#!l) h7t;y tɩq ; :j}i=\2~4f̰LnY9.Fx qP ~&y ,!(tbғSEbZb2Nhh0D>*|>mb1[fb{Ȳ|R)H}rbH_F^u^C T*z2y&)8~@ 8I -dڎIENDB`elracodelangela/administrator/templates/khepri/images/j_corner_br.png0000755000176700017710000000047211061563434027031 0ustar essawireessawirePNG  IHDR &qsBITO pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/08/06{IDAT}1 t vG4\:1, ދIZJ)g"笔|]׾¬Rk5| "1版BBk-w{9uu΍})RJk8Y۶i1~@>3~IENDB`elracodelangela/administrator/templates/khepri/images/calendar.png0000755000176700017710000000124311061563434026313 0ustar essawireessawirePNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<5IDAT8˥KQQs4B$[U;i6h&h["jբMBFQ&2 "!!2l{NWY /=}*;9![\v*D'`EpNpX'UpVq"Sw.Djw7{|$W@q`Lt/d~W[%BH L l>/`xl xD$"q[d(o FjeUU}.Ex toJU5"0NUV UM2r7P3.&"ZP JTS =EݤqB=kJ V"x\.F@D],#X=ZycIgڒTt[<_~H%Q qQ mXAKu1|/M@!F>"
    >9Qv7aY8:]X9u #BZ=pIENDB`elracodelangela/administrator/templates/khepri/images/j_button2_first.png0000755000176700017710000000165011061563434027661 0ustar essawireessawirePNG  IHDRj sBITOPLTE||xڿwȿػt׻zֹsppݬޢޠǸroںײдpֲجثϱmۓɲՖՔ_^ǯzpĤuí͈rjxqƕƔpȁʼnʼna_epn`g^ea^^L"Y pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time4/20/06~ :IDATcrA <C7vq30ʺurѮd2mC 8UYA\=!)Q}IENDB`elracodelangela/administrator/templates/khepri/images/j_joomla_box.jpg0000755000176700017710000000441211061563434027201 0ustar essawireessawireJFIFHHC       C  {F !1AQ"RSa#2qbs4Trt$c"1!2 ?<@ R=< dmّAe^/ဋ|u#O=Nn<~On 2|lw2'>5I{'ƙ:8;Y{paƙ:8;Y{PaD=0ɏ $ 4/SA]*Jɋp9.gr\@ `<^ysa?=Q+;xi++ȟ)I+N,\ҔHC8lē2s@k'S(9m,}OU*L:Q#!彳v8J(^;]mDQ "&:C6~"9<y'arvB0eu 5NwԬJ 򹻾'< akZr)Cge, naVL6puTA95ll|G @ q$52Lw!zj ,փWi:1nSqq8KM U~%`i^I\֑X{ iVwhߛN׸rr!@'2I֞_˗k5q*W鲄A#jiJnnaKGN{ow/2Tğ[S*[!sΑn4zNm4;' {ҎҷTw=dq+~~%;q#YS)ړm?Sޟe1H??)#Yc)ڟRm-F([,dgv}hLKYI%I$ ny-N2Jueާ8w/"h&r`@ X, h4N)'z6Z}hi͉b4+ԁW Ajۋ,O ^Me3e.Ym92c惤U>+(`5> QTMfKQQ V,@0i)^իO1 aIAͮ&cqasِ.ޕ`\ >;)=p=ѤI`@,7~Q jZu K{RHScmAt15ߜ\{י~ ;`AZHʒVMw8G,iXC Ɵ8J%*vfI#h|΍w%H쫣\kpW`PYȘoho{GzkjW^@ '49Sgl7 7*,ǽyO֓-+;=XypVQ.t4Rȃ\4 L̪ՅUf9i(ai @$s*qY@ϓX64(Vlq7_| 1z@ -K#W܃ ʦw{ם֚,ΥAɴi <1Kǣj}B'f2F ŲnasGѝv)< G$ lϟa]m枭z@ jRpb}׳n0*?yN-:Yk+exAFlq-JoZŁ`A(!8nw4keA ǂ,ٱ66dnf]kR~ 2B&ӢۙI lt`翱Q$,Α`{3c7*2@?L xO& |>aݦ u16G]0sV45IsѮ͹R} @EnaA[(+t7Է@ lѹ|X7 bHYr g66 Z؊ Z‚Ѐ@ .Ym@jCP-@j܀@ @ @ elracodelangela/administrator/templates/khepri/images/j_button1_refresh.png0000755000176700017710000000264011061563433030166 0ustar essawireessawirePNG  IHDR&(ۙsBITO pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/08/06{IDATH[lUgNwgwnFYF҂0$_m!\*ٶm6TQxelracodelangela/administrator/templates/khepri/images/j_button2_right_cap.png0000755000176700017710000000060311061563433030466 0ustar essawireessawirePNG  IHDR;vsBITOfPLTE̥ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time4/20/06~ hIDATEA0DVI@#b$*ɉ?Uñz=Tϯ-q2Dk!!ߛ!;-F!TF:/. w9UM}|IENDB`elracodelangela/administrator/templates/khepri/images/j_button2_left_cap.png0000755000176700017710000000063511061563434030311 0ustar essawireessawirePNG  IHDR ؆sRGBgAMA a cHRMz&u0`:pQ< pHYs  d_tEXtSoftwareMacromedia Fireworks 8hxIDAT(Sي0 3j*n".. ?'ap<FK4Moziwx,KX(0 mHmcG > aUr]mJ'de[ *YߋxEv]EdZEQ@d qMZ>M6D0z{7K/Cf$YՎ@. Uό>y)S@I^^I &$   NA2:P|D.~~,UÑ5VՂz9 U`YFE]@ y4d8]b(]K9@&E FihhtBd%e4s#jˢ@ڜ8lLUI3m@-R iI@e hkK c  I֕`NfD4 䢣!l4Sh,(yŀ@Ut0S B,@`P//BJ @ MUrT{ZfmQhi2PF1lt dhhh90P{YY$}ɥ˓Jd@%l 9QQ& ʳC`,vIENDB`elracodelangela/administrator/templates/khepri/images/j_crn_br_dark.png0000755000176700017710000000040311061563433027315 0ustar essawireessawirePNG  IHDR{sBITO-PLTE'8 pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time06/07/06 O IDATcPRjgPR}ƠAeCF2Ci<IENDB`elracodelangela/administrator/templates/khepri/images/j_button2_right.png0000755000176700017710000000051511061563434027646 0ustar essawireessawirePNG  IHDRssBITO'PLTEʕ pHYs B4tEXtCreation Time4/20/06~ tEXtSoftwareAdobe Fireworks CS3FtIDATXر @PEk ԯ[SHh5Z N1PP=z6obC-6=9MoN)՟NdTrJLN暴?(pwlz #5}L_^Y<IENDB`elracodelangela/administrator/templates/khepri/images/j_crn_tr_light.png0000755000176700017710000000037411061563434027535 0ustar essawireessawirePNG  IHDR{sBITO'PLTEm` pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time06/07/06 OIDATc(a``>P,^GIENDB`elracodelangela/administrator/templates/khepri/images/j_crn_tr_dark.png0000755000176700017710000000040311061563433027337 0ustar essawireessawirePNG  IHDR{sBITO-PLTEϪ@. pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time06/07/06 O IDATc(c``#AIr;x40GIENDB`elracodelangela/administrator/templates/khepri/images/j_crn_tl_med.png0000755000176700017710000000037511061563433027165 0ustar essawireessawirePNG  IHDR{sBITO'PLTEЦy pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time06/07/06 O IDATc````<܈HHLI -  IENDB`elracodelangela/administrator/templates/khepri/images/j_button2_last.png0000755000176700017710000000164211061563433027475 0ustar essawireessawirePNG  IHDRj sBITOPLTE~{xwھw雼»tߵֹspߧpԷpoںǸrҾݜײֲۙجثίlɲՖՔǠ_^zãuoqkˆxqƕƔpȁʼnʼna_epn`g^ea^^L; pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time4/20/06~ :IDATcBv L]5] (̌xX0H:?+ *) B>  _R[[_-C]" b/Uw? r 5LMs@,n h󖔔dc4k d1ī]b|ze@,) p(uDB¸(Š qBBB!@>T1#&&:7-A,A6~ ~D:9E0a5ۦ zl$ 0r .,ˌPQ dP-- 0P21]/]l0У8_{gZu3IENDB`elracodelangela/administrator/templates/khepri/images/j_button1_site.png0000755000176700017710000000244111061563434027474 0ustar essawireessawirePNG  IHDR&(ۙsBITO pHYs  ~tEXtCreation Time02/08/06{tEXtSoftwareMacromedia Fireworks 8hxwIDATHME~ޝݞWph<7x4&&HbX`P.` ., ɮ ;3;;==]zwV4JW_tRNS*d pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time3/12/07!LOIDAT(}kS@aJI<bvv¬):irOyfvf. pqP?oīB@qNylţ>t0"~\\i,隖OR93Go#f6AΎx_ MGzV܍\˂QDv{ntQK9HjqJlЫi\ W6aԃʔ^lNF!N4x,u:ŢOzvµ@*LV[>D\Fcu䶅U N&@vMP Ycbe&cJ˱XJHZ0277P4c(Jߢ,BX9[sum?.IENDB`elracodelangela/administrator/templates/khepri/images/j_button1_prev.png0000755000176700017710000000267711061563433027516 0ustar essawireessawirePNG  IHDR&(ۙsBITO pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/08/06{IDATHKlGǿn6Z7BJUji{qCEZUEZ  8vlgwgfG8*~V}v1p'Xe6|>i̢dtrBsayW_gLgYV<F,}1@gc&A+nF\fKHN=֥U*b,K|J[2]eAjD7&S[Tzܺ*P[S?Z񉯰~_` wwk3j6] o[W~ y DH|#Vr@ȼ;>,2v#ú&AzOӺ?u9&K1$H9sێʒ⇇5Mk'0 ON|Il 2'IH a^Wv|/hDccc˲tb=1uWiK"/kR6qo@&&&0ƆaF1!cfݛTt9ك/o=ػ~rAgf<(RJ!ضMq1(m۩Td0UY`R1AU$1N&B0 !-ypuB KX8d>eYUUI8kٜ Z>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~$tRNS0J[IDATxb` @ 2[ pr] @aDm@v@@ 2[ :TIENDB`elracodelangela/administrator/templates/khepri/images/j_button2_first_off.png0000755000176700017710000000134011061563434030507 0ustar essawireessawirePNG  IHDRj sBITO PLTE pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time4/20/06~  IDATe_[0_IW5RS6$"KӲ =H}v BʶBz:Jw SOeP6wI4 'R{m@>;NKi @͖N=Ƃ{}|iW3yid τ`9Ξ?NlAO-)J>Y`y QE =GwYluǕjmR( (@㼍jc$Οǵ x $ ) f膀ܝ֪s,hyh I2/.-ΑЦiB(q#GIF럸uUomGIENDB`elracodelangela/administrator/templates/khepri/images/notice-note.png0000755000176700017710000000246711061563433026776 0ustar essawireessawirePNG  IHDRaM=sBITOPLTE~!~Du ԯZp{?"rȤ+ՖQ+cۯȶcӝP:2n@)ÅPǃŽ᯴<̩*}ò!ٝޭ4sK׏ײ4! C8Ԇ,kQb| c7ΖCȶώݦAʋ9- Ԗ(ɦ/٧~޽Ϭ/<LTu}byn!0K")֪ܶĝٴƤŖK֔X1Í÷Hl#̈́:)zy(Zтٙ}D:lјۥ:'ottRNSjK pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time3/12/07!LOIDAT(cL"[+%%[ ,f|&i..V-y&FB .V,,.b dx[A2 oR&\V3P1$:""71nɊԧGفe]G P`^6 7hɂYSx c A( f1ΞS-(,=?p:X6I*2IgZXV \A0jXV@ &e=<<\P0 (+\|q`E^P0(eSx4@U6wx8Ce'TTxxDL&[ + Li|>X$T@U=`VIL65$E6AZY rLڕ(gnR 륥CCBCMd_HL%31ҳT3kXX, ~~ ,,@:dCvIIWnWWI_2Pb2 Ku]]'%|n!fWM8IENDB`elracodelangela/administrator/templates/khepri/images/notice-info.png0000755000176700017710000000176211061563434026762 0ustar essawireessawirePNG  IHDRaM=sBITOPLTE 2drb\ LC\~IR{: a1Lq>\r 6rlR#Z [Ƥ f~;A"@jڧWswLaurMe;i*dR j䁷:Rs:BX~ Ch{¾ay Nfx]tYk.v8z>4hx{D e^Rk{S\tRNST?x pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time3/12/07!LOIDAT(}mS@FIJ4 b""I &llGQP?wTNϧgs>mnoٿSqqsx=]e9-}}FI{c/iov B/JΟqTb9Y܌0ZaO;"w89Uv2)oJ^{Lx5<y}LYfI$'W)Lyq=T9ҹ;0P8S۷|ʖ&2A8DTm^}akCe1v4Q,MMaveϖ(l h lOXF%loΎDwo޺l8D[t: m2hI&cQdYSZ-IP:NW%׿:dӄ!-I QqvUNIENDB`elracodelangela/administrator/templates/khepri/images/j_button2_last_off.png0000755000176700017710000000132611061563434030327 0ustar essawireessawirePNG  IHDRj sBITOPLTE]B= pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time4/20/06~ IDATeV0;YR!E!(2)N(*~WMVnlEe/_pB^2gBrj.Je:fl4Qns(}K(p .vMA=jN|S8D4M L%NE I2;V'"NKT1b`rWRIzin^1V;64E68w>߾|SЅwO(&dX."テNzN<:s-Mj%x>8-9m/Ӷد0]mQIENDB`elracodelangela/administrator/templates/khepri/images/mini_icon.png0000755000176700017710000000140511061563433026505 0ustar essawireessawirePNG  IHDRTsBITOPLTEBv Ce mYfy"6r`W)r9q\TJ?|Wב Q O8*)\*cFgw'?j`+Nl:ѓOF+~\9 v(Q;%-Uks=HA60+NQp)֊BR2\/  O`mFLb sWc]IQ7-K#/ ]];!w*6+5asž }06nj?`Y!_<5!$"EC_&cuh7|C5Kf c}O`,(' |#Gvu=Hz' m 0K$lR%XJS [  3D{&jepu@KGVb-6 ; pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time3/22/07f*6IDATcTaNnNa3W+AA)Q$8Z_XQ.8\$_ܯD̫ՙيѐ/7kw)s㨵u LCJ|'7$u07BL@BZٷuNiHr-ٴ[R3eyn,W͎wOSRa,` TWgɐPd@[%灗IENDB`elracodelangela/administrator/templates/khepri/images/j_button2_prev.png0000755000176700017710000000164711061563434027514 0ustar essawireessawirePNG  IHDRj sBITOPLTExxwھ}ػt׻ֹsppԵpǸrںoѻײЯrֲجثϸݎη݅j̶ډɳՖՔ_Ǟ^puãuoxqƕƔpȁʼnʼna_epn`g^ea^^LQn pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time4/20/06~ 9IDATcA ,L(*Č҄X0 ;HH q2`V_X1pi΄h H bOgj"ϐ5V@PX3x+_8P!MAJ3o6F ( 0CM +I@}hwwO`Tj1ҹQ@Ф`|n(KBC&D `ZݮҤ;!(BMM-,;8;( m ZZ`1ZfX*c`YfGثc J'G1^);IENDB`elracodelangela/administrator/templates/khepri/images/bg-menu.gif0000755000176700017710000000005511061563434026055 0ustar essawireessawireGIF89a!,;elracodelangela/administrator/templates/khepri/images/j_crn_tr_med.png0000755000176700017710000000040611061563434027167 0ustar essawireessawirePNG  IHDR{sBITO0PLTE;t pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time06/07/06 O IDATcXwAe% JJE^ ) IENDB`elracodelangela/administrator/templates/khepri/images/selector-arrow.png0000755000176700017710000000045311061563434027514 0ustar essawireessawirePNG  IHDR X0$sBITO3PLTE׬ޱ(tRNS֪p pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxGIDATMA YB*Rs "!"d'M] )C)^/Y7]'qq02IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/0000755000176700017710000000000011061563566025501 5ustar essawireessawireelracodelangela/administrator/templates/khepri/images/toolbar/icon-32-save.png0000755000176700017710000000172111061563433030312 0ustar essawireessawirePNG  IHDR @LPsBITOPLTE̙xwwRQQ:11&%%jjj"!!ťBBB_^^󽽽333JJJZZZsss )))fffJBB{{{:::.--=,tRNSYB pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j_IDATHݓ۶ @-Qa %s$`rl%zڷ΃>;!v}.(&'ۗ+A9NjAMOjb7tkwt,jTН p2-hfa^_~HFWZ\|\."'ޗ.e9׾m)V}YsPCnn=G>#fv)>RD4ۙP2kˆo_n z^9^8D14K7IdJ1Qyl:*ej+(EgmcKCډV!P{\UZs#;"`1_#d&%#!Sg~A0z-(;ń敠\y5B8/ֱNXI6be`-ןT+f`", |n ̹_48p{[ e hg3 KqztVa gD!uzװN?7c&^* ~K:?nآ(FS}5Fa":2(VYB pƛ@IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-download.png0000755000176700017710000000255011061563433031164 0ustar essawireessawirePNG  IHDR @LPsBITOPLTE 7sŏr N\I^{< g8zym#,GmR a>䔞 L{Wj9潽YS.Rvaί>;h{ f MY]tRNS! pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j2IDATHm[0KjZ|iENfUA*69g7;vZ/}s*#tvtzNM-]wNS?vu;4o0* '=2{Tt`5ۻggu]>by=6дm;_6R`kz=\Ws :j ]7LTN!VWAh1ҖV]ǔU>Wp`| ܏Fi>,@_*=ʰ᫪7`H*EfO{034ɠX-fPtuG,~q1.S1σEȇNЬH3QYר ݲz=k`HAHᖛiu'ܘyc9nRm~ii5M sKOOKsc@R`5EQww(aH` $'!̄GB(##QHj$awXEȲ@|,@WKG&hPt@ {TS "l3da2{1 `dbF%8,I&ăipLۨxP() ,=BRK0b!fQ,?!LXjpU0a0&Τbʘu ҟbZv XDĮv p?8~ vJ$[h솠?}1s/UIENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-adduser.png0000755000176700017710000000376511061563433031015 0ustar essawireessawirePNG  IHDR @LPsBITOPLTEスt#V$h9&N֐GzQjjkkkIIIɕiSl-`IwU@лl}Jr>nAKԿG}FfCBZ&]lĩh%ȥ=`ZzzzJ:_S"4ɱ{W!rX`WKߟIa#,cͽhϐ4Xbl{a=wL쇚~ܦfffߓх%yk3QQQ!!! ƋBqL\h)XtTa"B=@mX~DŁ(mXEd+Ր-ܭChhEpBxMk7vֆP7/>6}gdǹjLzk.NdfN(\3=W iOl?Skt lYfg^e՘3߿gOMp=|c??<ńw~~S(:PxtR]cc㛟;9˟xо}[>/>WZY\Rr%% Br-=u/Bz`X0۬o _2,Og3uK63rb9,̎\ n_r?OMe4$[i9pJA2J8:. B K rEĚ !lS,6/e3&rq`uF#@~QƷ@b -RlMQTdf.2Qa; b3a[YS 1*!CYm @c DKbp}9$!Ѥ`&O*n#"?8dE o*&B74e:6L91Wt wCas7mF\~`d١ H'%^n8wgWkv/̿s,IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-unarchive.png0000755000176700017710000000444111061563433031342 0ustar essawireessawirePNG  IHDR @LPsBITOPLTE#޵j%Њ}ŵrYB۴ш2I3 Y@ 3u>ӛW̛⇍Pӌ);zh{e>Ի7y:|!倛_ČK̈iۀ毣^ϡ/16umꬻ ݆#w((܄fj'GqWJn Uک(j{tj=ܪք#NjqœͿZnݍ0/m9|#*ohխꦾ}e} Z)f֦>Yقo]ml0ߎ[$~K4ʥ;ޔİK⼎gSlތ+]tXٕC9٥;ܢ\ǵЌ;c&1ǃ2a|ү[ּޔ3%,Q%i|B ҍT}p$,~,lDαp3@o tݚd"6؆&>sjܛ6“U ~Dψ(Ս #Ьِ;@Պ11~a 'S|T6߹%Ȑèn܌EpTޤ`قtRNSYK pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j_IDATHytEwF}GD# x6Ad1jP $<ʰ f t%a/HTPd(^(E Pjzf6^vg_WUWO@O7/=}=wIGV/}y@0w|eVxūP9m]~Ǎv9yFUh8*?- Wb[sssB|TvІh ?]ы@{>\rzT7,~kE?½`ejggg_=.nxs#D';+Uoii*W|3qSQ]VR~wHD|>{hj륵*3X ޕ6X';6m]im غaTVio).Fײ"ɞaElq׎2?US/ Óܹ(x>,7743߄Kx3}iO9_qŋ{%1t|g@q>E 2_W `K E/ *% ڧL-s0&Gg.Pǎ8sL4 T')ܹ`Rcܕ ^{ FfFʜ^[0h)'/ SI?X5I\IǺX͔ tZ) =RRΥBX`Sj:}$N%D)5SwA(q+uAizz @qztQۅ=ErNV5;juL2FBPq ^-MA\@tvb3܍0B"­AvxizJbBH0 L& BDSv:0msM8HS `w14NFq&܉$^j'f w{2sWIENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-upload.png0000755000176700017710000000330211061563433030635 0ustar essawireessawirePNG  IHDR @LPsBITOPLTEG W>;֬ȕƇX k̽Y.ޥVבռqh @[N ▦kh1;n^ ΢INz>PMwա5]p@,Yŭlb9reQL輴Ϟe ؍]J '衋VY"qx!DzaR 挸ᖔ5Zש:q3YyTg{tF ̃D픰䆰H_S[g@mR߱s$c:k:^<Δf[,R륙~N ؕ14~/;{ZP.zKvuS oܧ~S}g[H!ڞ̪jNg.G!Nn w:Q!YG/`agv߹soOBX]Wop]KJJO5Vt /KF)N1#}rNQ$lۨDuʔxu= c'&(ER(bUñgFbRѢ,RCs"I ۳&>:9)^̖Q>|Ύ}deiysps]Aifv?[x\߱7#6eUW)e/ض"O 4z!Cii IhYvx` 6J&XLK%hXt`Ub*@b˾7Tj2B @"_0v]7g؝$$p&! w&bhpB0 } 7"_Gł* 8mG2 K E>LEEiQrH,(HXl_`E|& Vߣ" "LMB46J0O~` R2h8?>"UM=o?yѦrnIENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-refresh.png0000755000176700017710000000272211061563433031014 0ustar essawireessawirePNG  IHDR @LPsBITOhPLTE}Z"Ǡt(ȎAڜZ\|'v׾ ҍuXK׭;yVErB)Ȥ~4j֓d{ڳlTk٥9p̒Х}&C1ͅ֋bZՇLzѝQݥzkTkB?.ȒB~Ъ0s*J޺<xtRNSN] pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j0IDATHO0p ‹!.tBP^1LRVccMchcΎiB|ܯ9ο= *Zi Stm_&b_tre}1b5#._sFc&44LtY[luff(Ľ˶~f~!fGM0cO%t-t:kuubS-A#$h>1W`ۚF1?;)&!d†e@`I qL&L}8yM!8 .l <LdX Mr#8& >5U<l"pA R؎#7Vpl Dk*@A`;$/T߁L-~Np +LC 0P^ˆj>lAaBSty('(T w2Nhf؎Ha(@,'yYA qF8nv''1 * wf2VW  bEm @*D ߠ?cܵR!IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-forward.png0000755000176700017710000000321711061563433031022 0ustar essawireessawirePNG  IHDR @LPsBITOPLTEG ř<8͔ƄX q[,޼ꗦlzSռY,h N h1M؍@ב^ >輔wNlͥߖT6p@ϞnϭYb9jS H'NPq|e ]J 8ŪDᖶ΢炙[Y"Nx!򼖺yaƌVR /0zyTtF i_Y.S[]sg@ݷI:ݜks$ă[k:@œ?REñaN ?ؕ`Z ,{Qʋ9R[RP 䃌)PJ放Kf^1kBYu8r}"2n<_'vMa~sJ%tRNS11 pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j=IDATHS0F1SŁ8~sz~~!h!Bh[diXAYfcofOA0CJ sPs23>rķ7==MOKtCb)N=mڗBV'l_x͛Oxgj Aj~~kl{7oZ&-)@ucjOֿ%v~hI8z?P]7 pM 61a8*9*Pfڀrj.0rذ˘\ʥ`\5`bpSJE?X2G N~~ut+NaP"5n4M~ 4FdKl%yF:@tXW%6hӌvZŽ\(ާVR2-\\I۱r?(hl~SqPT2]Í0a&]jiTIpP8ek.d@lYRm@p~TɊ6 1 -kƺ'ۋ^=t:#RCӅ 'lkaL~8 H|t'%jIENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-cancel.png0000755000176700017710000000264511061563433030607 0ustar essawireessawirePNG  IHDR @LPsBITODPLTE スff22摑܆䣣NN齽ww// 误KK``tt朜77??!!cc뵵VV {{;;TTss**BB$$ȹ""퍍77''CC kk⎎//]]kkuuRR::[[ll}} 44&&뤤CCss>>$$))挌TT$$ll00FFee]] ltRNS?Qh pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j3IDATHiS0"DP`چ)Wp( @(CM8z]ɲә,kZ^HEK7=Կ?vjee"zO7QhWc`8- p'WPn4fٲ7B'r6?&Il*LMFۚ>)fR4觮b#8FBh,5C^+-|]R[`8b c)MOyf|Lɳ}O8??K*`l[ʛ_Aφ0ހFuwlVJe~yAI9/]J\.7(;" XRf@s9 fK0m^ףuʚjՆgUguqj5Rg 3èy_@^0qQWm1H=mS/Hik"A)clx;41mSȶC%H$JTcbrB|ݧ/GR$>(DwrPL J>1T0 ~!L@>NSH (Ei39BpPmPhWT@EۇAiPD , !BN!  ?Az2p? E4X**Vu)Õ߉=d:X8LǖW-%!a\X ,ZEKq2uvp,Dq0:a?hxvoIt!3=IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-trash.png0000755000176700017710000000245611061563433030503 0ustar essawireessawirePNG  IHDR @LPsBITOPLTE333Ӷxy~MNWABJ]_jϓ읡簲88>ԌiksƠXYcJKSݐϭQRY229qs{bck֯56Edeq:;BBJJZZkMOX{~yUtRNS"|? pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHmS0`ŪE[)ƾRA5tD:&MZOv$l'Yb=3T,cǭfl_ݟ==L ^_ ~(+=fomɦ5(.t:7W9Qc\;uNU˷Y!IG/loЫ,@Dm{ث+ mݰt-{>]GYöXC﯃ެznj X߰P=*lv[`%h?n4x^88h xܬ8n]"y>q Pz ,L$xt:Z@3@~M|׫-κfqv RkBs"0<0LΤ2¢Ā)C.FkZ(QZ:4'ifF(JS"n˲2JCy"  =n6 , @S1wLFm6%s\ X\seF <0 `II%Ħ* ȪY^d6w0R#JByo*h$4b,Y$ @lƪ yZꌡ'|2q&}f&,hC2$*0@lPQE&R qq f N~NRq"zkqſ&7y/rc|R93IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-print.png0000755000176700017710000000201211061563433030502 0ustar essawireessawirePNG  IHDR @LPsBITOPLTE׈WWW%OLLL縺n_(eZr¼nyUbqIhdԧYn ޾α3[꣫hrw|QQQth ü֙氺¤&Nvҗkۑux|}V^VtRNSWWn pHYs  ~tEXtSoftwareAdobe Fireworks CS3FtEXtCreation Time02/15/06jIDATHݔmo0.c m3ZCw퀁F.n: MIĴC+ˏ.{&H@-BU`PB,1~91 R `w?0>ҍ/dI j6\\n=Y}Zx>zU8lA28F&>B~fFh44,^ E'WIĂZUtY\{.k ZٗyIENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-search.png0000755000176700017710000000165611061563433030630 0ustar essawireessawirePNG  IHDR @LPsBITOPLTE+++֭wxz]]_QQQ徾ŭ:::mmm便憆KKKttu[[[333fffŵfgj||̝{{{lmqfm/tRNS pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j0IDATHے ä0p0NH@D8^ai$Nӄ~MUF(r!OO> mWxvm KJ>UJ9Z}\y4 g4"Oi||h4~]]zľ,|RvO{|0_(bXZѼsHv:pr)}M'ns {I ~-@gEI a1_Hm˖` P]\cJXk-2FH9&x>+l:ͳd:K.weG6 KkgW,fٮ lت#+`-l(Sݽ );GD3 "a/Q)D D-Ŗ*(}|^hR3H^0Db | P1审t3 6Pm&B,`yQ^c4 B? 6بkIENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-copy.png0000755000176700017710000000114011061563433030321 0ustar essawireessawirePNG  IHDR @hsBITO$PLTE tRNSޚW pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jnIDAT8?K@n/C:{ ;wP6iڂ|w8{e"b"}_P—Ri*UKHkh ^v`+ZV+ȇ5:{<с4 Ж#j);89 /Tځ,zw>bT\c>s0E V{}.f~)X+ ,!F :e㩽 jwx:#EW؜`j 1kp+0 0'2ĝEY硣==9ZFjaoa! AFnnc ?_IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-edit.png0000755000176700017710000000226611061563433030306 0ustar essawireessawirePNG  IHDR @LPsBITODPLTEن弼sΏ1ĻʷYԗ7Ϻ͡ތj̞YUω"ٯůۺӌυΜPP˴ޔbͤiݩܘ>Єr|Γ;Ѵ֣þCՁ͹٪ދ؆Ճͨpϻֽrό*ŵ*ޔք͕CAFltRNSx8 pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jDIDATH} s Z0Z tzZժSRko9 v-hUX: vͰpy|RQHx1>JO'gg7SWOb&v6!l6n5ȭA=}hb@C9K[@z$Lz=ޞ;?GTn?Ⱦ(uʒvۏk׾ 9~!dūl) e 03נ`L: 4CtFCKڄ[I ]s|q:ZIENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-preview.png0000755000176700017710000000246211061563433031040 0ustar essawireessawirePNG  IHDR @LPsBITO5PLTE+++ŭwxzKx]]_ݲ[QQQdֵݤ6:::qxmmm拋 ٵh=ƲކKKKgttu}뽽a[[[333^/fffpLfgj||~yӁ焚B뭭坝ޏ{{{lmq|kvߪ hۥgtRNS.' pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATH{w0-Ԉ.sVc5'*M6=ހs̳ߴP=yȭo~m4OqfA#LcNTh n j% &$)tS) ,ꊠ8/يZZa0BC+>[(ѨȾ`$=Lê[$ᦪ j/@З ڣ`F|[ׅf0܏:ƄI{wzPNy7v.{qc/ 7r- 76?zawPˇw58hEsޛs~zv< }٥x&yҫҫ(n] y{gOWWW>v P+.|~zj0m(+;k-B>1F$hF׿Fz#sr#~ U/KV0j~qpHhͬEH Z"<0[]!DMlq `RRyC=f*܋VM+^VLu&&J-Fˤ 0\ljӽ7C~=I\a1WIty]h*K)t3b]-s )&˄KGoEa9l`!nx`nIxe`3!0Z/Ta.izF BB;rFgP(,.Pa,eKI/fNHafE0hYaY$T2ȇZ|/IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-apply.png0000755000176700017710000000233011061563433030476 0ustar essawireessawirePNG  IHDR @LPsBITOePLTEDgޜmPU AQ#i>֧VݣZR楥HپV)Íop)^ʆvJѷ[ VS cԖbؓ߈Jkec:o7ۺ] K }w0l'VWt]`$z7g!Z˙W `8a!읧xsH P K|J[$Ắ~Zc3\Vk=[\4y5ذUU_DJ_pؚj!kkXp7߄f'Ō^&wtRNSF/< pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06j:IDATHW0-5f֨8",@P'w=&m agk֥MM;p#x+_.о {PXn;Yٓ{y^ TRg7d׷D'wUOL/B.R66 L;=*&%0&r撉U{N39YX<*CP0>>qdڞ~צuޏ<8.>}.0}C/.ZYQN~h2)s{R)M RQB0a?0!AEZZ$ =$D ŒYeg&o@D(qhH >P'Pzꀧ{߃ ۞ R#DM(- bkAJ%Vl"_H""ҚFP]UC(PEA@Dc( c P/ #0ICӒMB!a  elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-back.png0000755000176700017710000000325011061563433030253 0ustar essawireessawirePNG  IHDR @LPsBITOPLTEG řD,͔a֫zqb9޼R YVt8ռƄ_'S؍Y?̃בT輹Pk:ͽJ nX le ߔw9Ϟ鰮L'nyTs䃐I@NqY.,N Z Yř[ᖠ;΢h1a_yex!MN k>zF /8[,ބI]g@ݷK艡 4V*dǖtMUcNe\-ώpD;2-ls p?> dSCou] r/#a}"c#ƱL|5Nc}11S?μkeQqͪ?XU80/V\shx 6gMQiNs)'ض&BnBLSQ:!0P̓?(r;A0!_jTSJ5h R/@ʲPT RB!aX L!B-PYN@T!?B]LyM ~pL]R0)u3p,5B/.:4,h|(avXD C @U}9˰" hQA٧l CCU̯3>B5s& S-~)؝y SmbbUq.1r(Cw9 pq?ȺȢk@x> ~9prIENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-help.png0000755000176700017710000000257011061563433030307 0ustar essawireessawirePNG  IHDR @LPsBITOkPLTE֭ii99$$ĘծYY؀II..▖ݾzz熆LL˫ee 44ڥBB嫫qq̙茌{{Ѝ]]QQss''PP22杝??ee֕''XXդ鹹߰jj55̳ff::߃NN00ﭭRR 唔yy!!䤤vvyyӎ))PPמvvd$ytRNSh pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHS1 wڀ̭yEETQ%q*r(N?ߤv{03~$M&1 xwء>#5ij!69J jGjZ H /V@wJ0TNS/3@\Y$Bd!׷{U ͬ lOr{ tZm`anb(-IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-archive.png0000755000176700017710000000444611061563433031004 0ustar essawireessawirePNG  IHDR @LPsBITOPLTE# %bSgm#fЊ x;ǵY@Yw2ш2Xӌ)m*~ vK!;ِ;Ze~Xˤ|R 3߹%6{l`y4֦>#kɃ6Ϳuڗ(&X}jA}`Jߎ{sRj,ք#Hh1ٕC6>ts&|nKoܸഁc/fک(n}m9*'݆#ܢ\qᯣ }Z7Yzhقo]$~ӛW;K1ݍ0F॥`iygSnMխlİ{@Ni,Nj1ތ+ČK3o>B>2aq܄8ŵα!Qa-w“Ի|B ߓ;4}T1qŹp$ƌqW@ t~Lݚd:"؆&YsU #gψ(̇9Ս .Պ11AYa TuEп'6è܌ޤ`SpȐЬ5u¿ބ))(z9rZ} ctRNS S pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jdIDATH{TTEYޚjzC˰"5쩀iRRhe>RȶLEJwmR <Ӟgq! {W`3&7_v =loˋ n}7'k|rPX笼y"H+~^9'J ^0gkϾ A#P%.{eZ JP)덍UW(7TUU3u`wwH "ЛA/¹է}z~GQѓ?"[] nXq3~_GDr{E񸶶u .=djdP{]ICF| #W(vu\Z㇫&UT.W(Ǟwrsmٯ03󾵻T׊+cյvصaô 5Spk%.moojC3Nd 0-{);;{}iZ<~&6c֗vcozS/^4*p,˽]1$g^mm1MCQ4zv~%. np&NZz_G֥'ɻk$s@Ό'Hե'~ZU555@h4`@Z"˘S olbyFl~7-&(j4?'ی1d2(5/ \ozBdKj&%9ˆ;LՀ]1@̹Z}AFaSl?'8 ©d{M:>H~0 g`)BkD i,cJփTy>فHH"Iʤ2)0md.@IX"ym0Bt " r O P;Sp' jP'gM RO kCFBLD_xp7tk{mj 8.U)ƷQ0aE$>bXA "PBplT (HB$()8H,Ӎӭ$1p>j!Ē  K?IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-css.png0000755000176700017710000000370711061563433030152 0ustar essawireessawirePNG  IHDR @LPsBITOPLTE$kQřMk}:g^؝Jg3t{ѠAYq}(`Kic杣bCj2؋ߍ(|^RåH}Y|HoNqYdܜ9et×WsAdVd嬬Tvnq,Ymambq\x;MqQk\uHw𒖛\uts.]TPn8\~R_Ǫ@g#zMfAzɐñHUzW?qGV6vτ;'w\566/i%ovϝYV]9b#ސ睵ʀ𚞓^k{Fg={?F=;=kr>W6r)`k ^Mj;ZR@砑mS=o&{JۀZ¦cǀB0<ˌ0z`_qc~518 eLt_:::?u:basV̚WV |ϤI.&θb[ˇ>zF_ë{ԆS ֓1:=_q51Z[`״Gw*6?of+?\۞5y we&xIb/W, [s+I??jYwLpB ,,ro>As w]s/2̇hbs6 J~OO| þD#T%ܫO{fe-[qٶKʗB2zᷙ"A<2zz#Nwmc]o;!~pQRbp06-j2!Mɹ>n@YaXY70d8ة;r * 2cEaͣJV(0Qd/LSx6uՁD:JDvz@Ѳ$_{n7eeX R'mjXOH#8V)(`Nmr΃N.)y:4u0KJ%2bgRk1(9RFŁCX#n)8ny@ŒF"GM@&,H.L  &. gPwe.XI 6nIi+_!(n+1վa}@IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-new.png0000755000176700017710000000320011061563433030137 0ustar essawireessawirePNG  IHDR @LPsBITOPLTEG ス<,֦ƌh1lkR h ޯ؍̈TPY.0Z l'[bEUŴϞ߱NczռLg@Ƈ8cJ ZfnQTwD륀@ᖗrp@˭Yb9[SN z΢YM@Y"Dqx!͔,aqKyT>q>tF ؕVăo\eSYoIP@s$k:㌻a[,Z/R~N >:c[ʋnב^ {ݜ_GS RP e LX?WcB|\PKZI\MZ,̃}"\nzOK\gw|k '+&Xl ǁsp 333cד_&ȓꇆb<߬B.NLLܾQV PXXTϹ#EGc,|6MYaRHG[ki{{{^F7)Fz%,J{(6]K' 'Ke#UYTq&Z#IZGZ4Ad(/i@\qEQU@D@Sʬ`.r?Cd*N cc1֡4]*dQk"fDD0+c 9(l&EDQvTYD2F|"/2'<(aM0a&, @fHD[6πd TA`#(Xf[Vl``]aHt({(rFg= #sjcRecAC"F,XDvF2" r`}ڴ ;>pv?2svE ܧj ŬIENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-default.png0000755000176700017710000000210011061563433030770 0ustar essawireessawirePNG  IHDR DsBITOPLTEɱ3gU٩`JvCԵ}JҿF:_6tbffIq*Ͼ<򁦞Ia(ɠ[BZyn.ҹϷSiٔMQa߁&md׆޷;Qǭ@ּ&=RݱCĄѹI/wvg3U{ɂ[\Rj90~"fݱvش<{)bpIJO;2D!J@QZ\löxݎ̮?޵Y]xtRNS$B pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxdIDAT8ch'" {[*PNKǫ /4֍j^< |q*TTQQ2Ʈ'-YQz[d1[A(_nKTAGZD=2P6K,PՁZ!Ƨ.$+Jn(bDB 2H,2LFBEIBN<7e9`@ɺ0tdO8 T` 9F r 5L7a*PLMe7520T{HiȘa(eHPLLQ]AJ63e2 3]@FFH똋+()pIr**P7Ho "%{-"3/C7IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-move.png0000755000176700017710000000222411061563433030321 0ustar essawireessawirePNG  IHDR @LPsBITOPLTEָEF nqؔ·\^ե33Ǿjkϵ]_z~TUѕ%&00΋Ӱff؝׿sv89YY++LMўӍԸwxӄcc򽽽㴸ۭHH]_̙֥./))֌_]_tRNSϬ. pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jVIDATHݔw0!jΤaZ.d3[E/cgxmLA/ɛ66Viw!pzJO6qW M?ȱi B-Lfy3 v [RuOsh.οkůV{9 yhJsxwZ8qw4Zh>nFo_^s%\+aO Lpz)ӚX]C+ɅGbzjJ3/ERY\x }xWBxϢh܋YcV)K̞@`|sy0)pBq7KUH [M*Tt?oB  )A !:r})$s\$pBp%'!Տvr`lҳ7С\U–m 3ZMVF2X(X1a^͢MU`3vHņ:\!Ƚ0/ҽZ\{4!c%Ǿ<@2U+뎣F c/ ?,f/?IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-config.png0000755000176700017710000000303011061563433030614 0ustar essawireessawirePNG  IHDR @LPsBITOGPLTEےԨiŨɱҺ{'Ѩe׭ٺɗBۮiصמȾܡ՛Aӓ4H̶עӵ̊ ծɕMܣŹ[ܡ 㬮ףAեռ۞нʗQ̽حشܻʐ@ԝIۥ)vy mtRNSu{ pHYs  ~tEXtCreation Time02/15/06jtEXtSoftwareMacromedia Fireworks 8hxIDATHms5` ^"Δ*)PM '`PS JK76;/ ;h$V9z! aM =mPl8 $J{m68^M(ï#XjibY6Ijx)4dj?{ xgGp L/0f\z_LX7jSiN4Feb9W̆a \AT?!G.2TJ>8'ptikk ˗[?sR787u]tFݎ(?Gu/?$p|r` ̝]Ƿ(8L!F`|X ӿi|^o~0W]u(>yO7?c!sbI5ʧS?#x:qwCg^v]HOoYZ&#\Xl'ei:%~\)}9eIBѓBmX k vnEgM)%|`z:4q[tp̻6Z G S^aƃu’2. L,D٣A[_hkqc9p@ Zր; o ?o.@\: vk5` ֠ s&Qx X$bpB0} t0V;_] hxX }O"K64$%"0.=qJ@o;w湀md^bۣk:]oo{4E6uS9hg^蹧?nЄIENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-delete.png0000755000176700017710000000554111061563433030622 0ustar essawireessawirePNG  IHDR @LPsBITOPLTE333쵸Ö lqXYcغ@COT(*ABJiksVV ~EExy~00JKSˀPU֥88>sy57_e򴴙kkNPY{񓓽ttRR{{]_j;> խᥦ,.:>흝WWԭ''99yy229 TT󨨤lrSU_qs{qq bckllDG56<88њ-/"#QRYާɷ:;BUZ߯""deqccKKHK,,\aﭰ:BBBJJJJZZZk009;{~qqȝPTiiAC\\EH9_tRNS(G< pHYs  ~tEXtCreation Time02/15/06jtEXtXML:com.adobe.xmp Adobe Fireworks CS3 2007-07-18T22:54:54Z 2007-07-18T22:58:30Z image/png j2tEXtSoftwareAdobe Fireworks CS3FIDATH{D}`Y8σ :-J}XWf,ʼj1!Е,"'iW0G_z-/sy.|/f˯j,@}:zU(w&'&'ק~ͩ}oz#_0Dߋ/x.?`Gn`N\~Z;}SSz3VÓqoJ@t@yRؿk"H+}'={D߽߇Eә~;\,J߼[V-G,&gz6r;?c Rdav lw)""gLqBMy&d!$kc + (9O|cCAVD B1uH,H1 wwϦ0F?^P`%IENDB`elracodelangela/administrator/templates/khepri/images/toolbar/icon-32-publish.png0000755000176700017710000000221511061563433031021 0ustar essawireessawirePNG  IHDR @LPsBITOhPLTEaִŮ1̊n煣cKطҘݠ|LRѨr8^|Q򰽿Ģć׌g|˛rk"8ߪƓϵMެyضźh/NSuՙ֭dHݏἽDޙxJt)k-ﭰӭuBrᘼ|Pۋ6lH^έxwۜl剃KP*xtRNS)S pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/15/06jIDATHS16?wպhqRYDƖ Ljѩ#eW!Aۇ|;I~>bi@[*jL!HetQJ׌QJs7_Q sDEh5DtY T )7SwAX<@X6n@hGܺxA==ޜ`_.~oCv7k}JܘTs?MN\=r[{{ֈ{OfǮ]o{c{ë8 R$/@ҀQE 0ǀp "<@h10'˞`gb T] .C J/%jB4'jX$Db$a$ Խ"Q*a_JrsoMx2,,...\ܩJ=/tNWBci-tNMNW/0 PhH0"@9j`ϷryÐ9`%[ӺQ,$NKqJ%4߿9=䦀P@wn/#䧀f^pwj7B gGT_|qa'A!v;0D"قn tnן !'Pc19%Þ} 2 lsߧ4, ]{fcE 9Ӝ, ݽwZg"~ޮ40Ӄ2ZO}ب lxۏ.h4AOGj4CrR*,@P j"Ci ,De_*È %B`j`$Ř2'Zo7@>H)ǂ# Ȥ@cJ2 02ß T0[bPѕfQi /d?Ir^z}V`1Ǔ@JGc @D6d^slI8Hl)ᅔw>AO3]16HHC% .$" (Ay\PT@J kr0%Ip7)  dbK("f@/ ZBbWl[@qX#/UM U}YI*h-6BnRŀqfB Lp&WUO?ϔ;a3<~(Q4(BjQi*y!xmw4x3 ir?Vd`7!ea[wBɄ=nIL㾢j`=/N hP@rZ]}*kE[4RJ.ÜaqOeF}F,4ІqªȮAt %zPv*g i3x R%h`|:|%'7ŭJ YRfcIENDB`elracodelangela/administrator/templates/khepri/images/h_cherry/0000755000176700017710000000000011061563566025642 5ustar essawireessawireelracodelangela/administrator/templates/khepri/images/h_cherry/j_header_left_rtl.png0000755000176700017710000000043311061563433032000 0ustar essawireessawirePNG  IHDR 6* pHYs  tIME $uzNyIDAT8ձ 0@.H&]=`V UPJ{Xוa,۶umr;EQU.RM^$i뺦Hf6q1&p&@t]G{ +b{Z,Y)hB$"Fg6=K1׾b3iB-,@ӟp77Es$IENDB`elracodelangela/administrator/templates/khepri/images/h_cherry/j_header_middle.png0000755000176700017710000000043011061563433031420 0ustar essawireessawirePNG  IHDRd6ƫ pHYs  ~tIME #=VIDATh 0DrJ uaCN_/.4=\vX?gkBu'eR, YR,3 7KYJ!2 { K)Ru ,e˛,Xf,e2Ce2CXb8RH>B!B) BIbK..l ^D8+1`Md/%r&yyX3iFx٤mтcp12\.W[[X,~tTyp{]яuj-Iڴ08}#E{ XoO5~ :|#i V/30<0@!~ g' F7S'yÙ vNaq=1wqG./ _ !"E fZ)5pVi.V<~S%Y֞'#q[dcɨva"6HDBX,:NVߺu:RRRbcchvݽmmmjd2ƙg0N>-vN~`[!!!iiiJ CkkkCCfp !!!999::ZT"Xj---vf̘rGn+ |3 _nC /Ј"o$3}Q,Y?%n]J4.#^}A#<<|ҥ',REQ߷mmm_}ՙ3g3k֬ɓ'z^{o>,~ie }|"l^re<X(++;~]-Z7W. ,4 9k_ -*Eg+_L[9_]߁)U0wIUg"ߦN _g4+& n:ĉ/`zHEyǜ}[W~~e2YgggeekN'800066677pƍwU7"_kZqX,VT'N;wn~~ٳ8 IJ |ܹ NvRiBBŋ233u:]IIIKKbeeeXbJw b֭p…/UjjE233p8Y^Շ:NcۡM(0guZwclxMKe Pg#RY^~eJJJnfꪭ/n:u7x_ۺukVVVooۚCɤV˗,YaÆ5kָ\'OO>ȑ#E/]nݺ;wh+W;˖-;wZ)ھ}{jjjOO{000,,b޽[8[)0YӞؓzak37^JqqX,R{L`! w~ y?͛ f``@.gggoܸqܸq}}}ӧWXwޗ^ziʕ~S xg-Zǎ[~d׮]k6_xᅲ3g:ts\r<..瞋s8۷o/..-{}\=;|k֬ٳgϪUNe }j4tM6k~> MA>y/Mgߧ쬇?:yq+L.//UVX[97,f9yQ C8 FbZG\C~}zjjjDDH$]vVu0gll… Fcii M/_\&vs㣌즦y%$$\x63fL<9<䑋d LH(oM" >7@Dbfep?:lNX@w9feRHjuzUqO+YaR F 0-X>CyUiāX?3)D;}E$8(\5Frژݧ^Ԓ?@ Z1a pYi#ʺ+9JHhCOx\^|&3%LV7iBk&IKýT*[[[7NVkڮR*=󥥥&..b8Nz߬}j 7Suted!Hjgyu J,vQBr8E!v;|Փ#,X~^>k֬1c:tc2e XrxlB-pvj>ȼ~7Dyܙ1OuIX09CEXշ~gP("_'r'өq,]~}FD#`4,}p!C JIIH$ժ[ZZ_~g)))&88ib6HǏĈD"á\2дD‚hlmmwHHHHNNQT!e{zzt:]ssK. :$ ~;k٤3ߜiCQJЈ%YʾhɎpQDt|$ N J$7vY(nmmm}݉'n3u|>?pa??<˲EEE*555bYd… ^/Xx8pÇf͚;wn\\ܰ^}edd̞=ŋY1If2b&ewW`JWŀ7tcכ!ir ٮR%qSWAAUd2Ygggee˗].XPh45km۶ͿDjAA;w:jr'jرcg̘QPP0mڴݻw <,+&'':uB{<T0o޼옘L^_ZZlZ1ً/^lJڽ{RܰaCFF9sٳCJMM;wnqqqff0f8NAϴ{:pua.58%Զ§c̰I1|"al;XB.U!t- uH&BaH:u믿_}UiiWv{WWWMM7|aÆ'n޼۰aCvvvoo|ʕ!šlnii)//?ի/_v=;V?ʕ+cbbnx.^f…NjiiEmڴ)55磏>jjj֫Ç/]tѢEssÃVOs`a8|0%"+OYIEq!r:NK;|#,_a ==={VD(ky@SSSUUdggs7:[644%?|0 Y͍`/X2~yRS+XNDŽ'sia3m1jfyl ZW2^ޫ~n(d`P(Vu۶m`0ٳ~zO>򚚚sxaf al``@*644Ni`0b S޻W|A~~JBCº;^}' ⲋhdw쨱N6K{o\VqfeJ[}tmܱ'Y9$KT@ccc}}(VTT_^VwwwѣGp`jvB1Lp8Z_ZmXX=zU]]=g*#FO.3n%V"N CqKV;!.k@$oY8LK!QM[ eX90Q|pzi\nxBbyG]-#wh?Һ\˲v]Xvy<𪽽}PaN=ZnJ Pb[wM6DɈZe*t%‰v53Yd 4cL)o`###Qcc#L0!$$^tzGG*{Qjc|*0XFx( !$c4aߖ`j@a@3csӵ _&i`lvrGȑ#jj׮]oT. e2֭[yx7ά FCD?ו[Λ?k׮744hځ\f͚QFWǏ_x;^{%K|ǎkoo`&,,,##^;w.:thժU>O]bbyW8pĉ{O}}}n[.KqqqNsӦM%%%CFag{U|۷/]ѣG)++cYVP⋣GjF׮][o!{>lD9n33_y癱ξ/k;X/,~jYEB 2]W֛>^ ;s]EE3 "^قX}ܱIKK#ͱc6mڤ^]f/qƍ7ުu̙;v?+r믗[nEEE*l;wرUPRe0( Jd2caʐJ0˲W޷oߺu͛7o޼[f?-[ v`ƌj~]vu$o,eQ*'Yy͝W O ]g}/Oev/\|CFh1#fSԖIηb-bHBQ%Cxօ@`=? { ?.'.ٻ]51d=0Ǻkd7dryId=O" ĺ5pJT9TIENDB`elracodelangela/administrator/templates/khepri/images/h_cherry/j_header_right.png0000755000176700017710000000045111061563433031302 0ustar essawireessawirePNG  IHDR 6* pHYs  ~tIME #:[ZIDAT8ҭ0CaXށ/ 1W6Ll##˲˹IYQLEqgYz)<_0m&IrTYwRuUUD~Ƙ{OR4 Z9Gg3Z,ǂ~m!Sc@pgL̦߲M⒦@}: &1O2H,YQd!]IENDB`elracodelangela/administrator/templates/khepri/images/j_button1_left.png0000755000176700017710000000074311061563433027464 0ustar essawireessawirePNG  IHDR2sBITO pHYs B4tEXtCreation Time02/08/06{tEXtSoftwareMacromedia Fireworks 8hx9IDATh0p1I.j7nP@M+t!VMb L)=p@"F!xa9z(sZa@u˥nG,!'ze^:}+W3^^^h^UUGuZSSG  &Y'(9&3ϒ&ͮpN ӡjǀ<`{G7'˼!iyi*ih9[uĘbQu0ZIWW|.6$v,ĀGCXbD3 <v3NYřrǴ$?>o2`< 7h LVWiƒ`QK&IKP(zzz~HL4IRiTP(z)KKKju||bq:^m:hɍTnSuped!Hjgy J^$SBUr8E!v;|ڛF.]}^3@}&L8vXggbf̙PVVfyXeT;8%\-:ƱH1PIj@3I/77aVKL|1b\5ee1zD!; }QF`8N`Y)\5!^/bTVV|L.l ^D9'1` Md/%js'eyX iAx^rcp1χ2nw{{;X~pTyYu-ɺ809CEXO5}oz| #i \63iyC?['# >n m4rn$uL(vb1P gA//|5! iv'ˣD.`!>}07q8+^~P[aaaIIIJFc[[[ccnp 111%%%66VT"Xtf̘zb`UkȊ͝zڅ䴣hhak7ɎpYD|͐\tiaaD ˲EQw-b{{_~y̙;̚5x~>O$^믿>~˘~e٢9H]]G}dXV\l2׋1ˏ?~X?EvWUU>|833sUUU»20Uȵ%߼i;1 w/b@ t MP͇8lw/8ߘS*((X~L&ꪪv꼼7޽_݈D_|jjjΟ?V+qbXRM8qܹg>p˲lJJʹs*++zJ/ΎVcbŊիW+ܹ+[fff .^xWiii-*..rdH|RZCRL.?\ՋCubVމ}CGh5b6GaNPHfzO?---mPv?ߺuԩSw mݺ5;;޻~m͡lh4K,ٰaÚ5knɓ'{|ȑ".]Zn]qqqlllKKˮ]<Pt:ݕ+W~-[ܹsfhS}w}eX?jժ˗'D=csJvKGȌ֣qy*w(ӀHʄn Ŕ;w?4p>2fZaIܹs`` 99yegg;7|ڵkw1w?Ofan7:thXϜN ---qE\PPp8v4K^/KEEP9r:Y=:+)SLZ c#R'uMcdpڕ=fu1K-G߮{;Mʹ!888""j޽[8[)b04CGݓV~ίMC]6 i3_f<49`agm- A+ V|1vw {-#dgZ5XBxUGGP~;a5`S }8#Q0b9^:xs8]nDpͶL<ȧ))\0O:GEE Qss3L2%44~drr X~~o51]0G( !$܌lioKMP5=I 40}Qc:_(fFV!7aaY;S +x~ ]͛7t:Rܵk=SRR6n%%%㒒/uO;vjW_ ۊR#=2rʴ{z5q%K`zӧOn4C'as>"6'_:w'0iDRw^qVɔH|0̰ٳc\YY)\-lٲ6oo+3gΉ'T*Uuu1_|Eii\.ze2ٮ]x xW Jcǎ=zTPTTT$.֭[W[[<Ԑh4;aiQwl~&ÄfTr.L{k;pH~5wp+ƟJHD7CC݄ƞ~D;?7o666655iA\qq+O^b޽{_z饕+W~'Nd&<<<33gYh;vl>O]vbyϜ9sСov{.>>tn߾=q}^f͞={VZu'N544,PTTώ?Ofddnڴ^C[~0I)O{'&i?`)s -p Phvx"Gq9a ExHk%}r-&==RXXXXXxNھ}N-77wƍ?m۶mvԅ {Q!e/\VVy%K)h۷w޶6AP,Ri) Zxd2reHRe 6>|x͋/^xfyϞ=Ν;322=0w\J?Ygr|ųL5nß礈1P^PFKEjB6^s铽};qQQQj:))i*tvvv H-Ӵi222r9q}}}Bt>}zZZZTTH$]v6m(Z^pd*++˗dnn\]]=o޼ċ/655ƦVg̘1yHaG{{{CCC}}PϞ=;--իBj*p Q\/ئ%FO0F.B>wH$4)IȨHFl9^Bcqb$1Av=W}^ЏLct|a7@a3bp^0C}R0[^ #R` ov#>OiFAS :'sKC5 Fk?#[?*Oa%B#&(q l6^F>w\4(*8DAaqj9u[m:NB:YVp/P@>@ z(@=@?@J=,k֬1c:tc2e XrxlB-pvj>ȼ~7Dyܙ1OuIX09CEXշ~gP("_'r'өq,]~}FD#`4,}p!C JIIH$ժ[ZZ_~g)))&88ib6HǏĈD"á\2дD‚hlmmw}HHHHNNQT!e{zzt:]ssK. :$ ~;k٤3_iCQJЈ菗%YʾhɎpQDt|$ N J$7vY(nmmm~'n3u|>a??<˲EEE*555}bYd… ^/X<00pÇ!g͚5wܸarݕȘ={veeŋ>c jeg/ßMZ9ol:><5?oү7C 7D/]=K|<$UVd˗/\.Bh4yyyEEEk֬۶mu#^}Ղ8wӧu:j8N,cΘ1`ڴiwxbYVMNN>uTEE^xʕ+CCR^^>իW/_v=z?w~+W455mݺ G]x7… O:28)ڴiSjjjOOχ~4W^tE^!:Q2p`JDlW,/1&B0e;]/up wy~ժUo߾={%t[lOJJ7oqyyyNw߽|;|'X|90nzzz;|IIPWNV*8np'.((HMMu8[nmhhK^/Kyy`9 hpk_Fev4;L9Vjյ O55~kgcD;,d~,WWm;4`PTP(íVmۄ;`0ٳgO= 555wmqΝűf6,T*mhhLSSٳ%`b1 SNw|Jeۅu!wD#VLe3QcT;l&B5zvs;pEki^_z "9ڸcOG=bݑrHSWWR{QX~Z Gv󱱱o'c2phZiڰ0{zΜ9VUG pW\fx4.KEv/MaC\6 I#Ⳟq ^BʂraE}.S$z7$M`3J Kdq]O>vZ}}}CCV999k֬5jT__o!xuŋر^[d_|qرa222^xᅹsCVZ+VX,W^y'Nػw?vry\\\aaK/t:7mTRR2dvF[/_}K=zȑ#eeeuuu}}},*_|qѽZ6==ڵkz-{駟h5Mxf+<36TEu륀O-K(uTHAfkzKav|h\׋4?[B"y~/T;6iii[9vئMt:߫ok֬y7nܸq[Μ9c<~E^u͟?VEͶs;v bT* EQB w;Lrc,LRTfYv[nݼy͛wl޾}|e˖t̘1CVO?k׮rųL=jW$1P^P<p!0'D n3>sLno-f #`j2iVL?cPLB( xO׺`' Qwd!#|b?9^3b$ `0u>-8Vxè2tWAAFC@h^f!p3eFyE&J 穦cC֦uXBQ6'(Nr7\Eda F41r"A۽tź:$@` X 0: x7Pqii \O\;E b}োIDATXѱ @@?گ>.|X%3y+D^! WBdA"F-IENDB`elracodelangela/administrator/templates/khepri/images/j_button2_next.png0000755000176700017710000000164511061563433027513 0ustar essawireessawirePNG  IHDRj sBITOPLTExxwػtq瓻׸pvֹsp愵pԷpǸrںҳnײֲجثϱsη݋̶݅ډɲՔՖ_Ǟ^puãuoxqƕƔpȁʼnʼna_epn`g^ea^^LBs pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time4/20/06~ :IDATcF1b LC9] (̌RX0x; (+@  _ZWP#C: fdW3ה^%? @JC#fvo9!.']vQ@6K> nZ f`^WBK z Ж ))ΟbCbr$2š g3AH0&f7qb_Ƞ aYeUUEY1 *ij@e"MɲFz'}y\=IENDB`elracodelangela/administrator/templates/khepri/images/j_crn_bl_dark.png0000755000176700017710000000037411061563434027317 0ustar essawireessawirePNG  IHDR{sBITO'PLTEN` pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time06/07/06 OIDATcHSRbb ;3002DRhMIENDB`elracodelangela/administrator/templates/khepri/images/j_crn_bl_med.png0000755000176700017710000000037011061563434027137 0ustar essawireessawirePNG  IHDR{sBITO$PLTEХw/G pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time06/07/06 OIDATcHURbbbc .~ŵByIENDB`elracodelangela/administrator/templates/khepri/images/h_green/0000755000176700017710000000000011061563567025447 5ustar essawireessawireelracodelangela/administrator/templates/khepri/images/h_green/j_header_left_rtl.png0000755000176700017710000000074711061563434031615 0ustar essawireessawirePNG  IHDR 6*gAMA7tEXtSoftwareAdobe ImageReadyqe<yIDATxb? |ٳOwv2< eXϲfu ,3ԓV26UIENDB`elracodelangela/administrator/templates/khepri/images/h_green/j_header_left.png0000755000176700017710000001203411061563434030724 0ustar essawireessawirePNG  IHDR6-N]sBITO pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/08/06{rIDATx{TW{_4@ 1ucMs毝$q7$8sЈ5@T"6<A?I2n}uDa6^麻Otk׮޸ZÆ{򦦦:?lBWVVr烦w\546H-(+**QV/غuԩSwo ۺukFFFww|ṕvh4%Klذa͚5NޱG{ʕuDGG766ڵr G^v7Ͳe.\Vuoߞ766Չ'VZ|r оGTvh ?t,)<#[QrI^AqpfmZNM|v,4<~z8rȡC%hڝ;w&$$,^쌌 o߸qN8?֬Y0Ç*_XX(,?s~@cccEEdddp7#MNNlv*$?t`9g6w?ҌbDSr1:,{Z[@Ԟ9bs9KMG˙_~;M?ˠ=Uݻw [7@:th˖-O<ć~o߾c ;he0LT*JqD df~TnNNRZ#a@3hjwHD\F>ыϜ6yDbjn*ǭT}jl.;3aHY=Gm{(w^O΅ѡP(n8eee[lQTpa+WygC) hmmJl6FמF*9̨.\h6yBZZZէ.F =iX9M M;':q͜_NvXn+8¦;)[(jgox _|2oNQ>xl0 =L]z+JF(W,ZVar|uA-`$%8(YU[^Z'D@8qK;}&<*,J[0Ok#""j644)S+LT㻷 P2EQ!d,;;{8Q!%&HH Lhc]8N{b͊܂"Dls40bluc ZyR(_W8##''GX޾}V*]v=T111qƍPXX1.,,ݱcGlllꫯaERC!B } CG s(O~O╉!P̉p &"4 }FF>0gqYYpeؼyᆱP( xΜ9NRTEEEr\X (v[o믿.uoJwǏ;vLP.֭[WUU0БV=Aidç&4k`3\_[3/ycCX4.Ej.$0v$%u9n~?۷ok4~\q1ckBgϞ]b޽{_y啕+W~gΜimmg&444--[h?~|G]vdz饗JJJΝ;wot򸸸^x!..no߾=5kٳgժUO>uTqqqmmmOO˲cǎǍݭhRSSN7mo y睏?~ܔSC4=V߱n XĹ˓禧:+3:=TZymܰD1  nk%g{jMJJ !$/////Μ9}vV/KVVƍ_|m۶m۶~K.ݻرcU8W_-..޼y%KWX,ۻwoss(@T) b *#@.c!C* ,nذȑ#7o^xŋW7{yvܙ*sT*x'"xj̆?LcpYS{MxB‚bMVeM0*D2'4/b ZuEOwu8(*"""666>>~ܸq*nUWW AH$ӦMKMMuww7553}䈈H$qիW-@؅ j˗d{Nneff644TTT̛7o/_G,66vƌ'Ogfٳg'''_~]XGGGZ <8 yg%dz`bBfq<9ܞv #y8r#iӌ0/J#8B޴#q[ Owv]GKҭ6.! #@3 sC_ K[4c)9"Q0E!!nv$f4a2R>>kbp1\)6@Y:QwU00J(,l("؜_Axv"Fohry4E9 ta;?8gT.^|ܥO?hğшFYЛOf1]N?g}ANݕQF~4h_G#4DqwIENDB`elracodelangela/administrator/templates/khepri/images/h_green/j_header_right_rtl.png0000755000176700017710000001210311061563434031765 0ustar essawireessawirePNG  IHDR6-N]sBITO pHYs B4tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/08/06{IDATxkXWsohnr@5ccq:Fw5n1>~>***oocջ-(>UzI@U G'ǣ▬nz~Q J&Ӯ9Vy@z}<) f.qΚe I,}< f9]]Jɏ:fL߹;iޤ/.J0) tA>^s\(4P\TV"@M~!yM r1ț$bbDSH.k߃0P0Qn(Zx\7f[w9&3w"<1)AJERW7D ({ZI ɡ\*7pmʊ>&ƍV5MGGCR*=EEEQQQfpx< 5`%M"o sB#$Im,A%m|.wAXapG(rf/Y}4 8p@WM95k֘1c>2e tH4sLe+-+7#8$\ ʱH1iUKtQxGNn()?Z@qPwH u 'B6W'C  eAt#>=vl6}o*y qW,c# 3-)9kg)5-9hl^^L!!}rdlBU?q.,dG<n+-v-1y@>^ &h TDN{ez{kOxL-eGHHȂ $wY(~\"=zԩSwƙ:ujAAz^w}wȑ\?,'$$RUU矛%K,\Px0u__9"g͚5wAU\Ξ=ҥK0 s vڇQ2zlI+g-RG1 򇘘ZBzuFSr|^r}xUIh-蟱xF0AĩS_&futtTUU}6l8q͛~m!s6l㏯^:pL^z.c={80Х… +W,((hhhغuG^t_p3gu6mڔG544 ȑ#K.]hQ*:TNsj)?x(1$#[Y 4IAqteNMvhY^UV+,yEnٲ7>>~޼yegggdd8w}ʕ+(ȑ#ӟ` ø\.ڷoߠr8w444@FFq_ܤ$ݾuֺIx<_JJJffs|,aiѿj?-,V-=5-g#gug` 4@K aV#|^]􃽆BK "88bl۶Mغz~޽ׯꩧ>䓬,())ĝ;wDFF;hVu IҺ444̞=["z52z~ԩWT*&$!CFFȏȧ;bމ\8+[ͭ rjkǭVQSN[yߧ hÎ!uH:::J%DZtj3 ?>H… 9 hmmhݮhG :rΜ9EG!!wˌoKFi׸'?kcᱸ" xig}Fǩ(k~a߆bwa_$ozQ7 H\.WxAX^x+vNn6BwŲf]nTsc1w;aJwi(ZU[VLND@8qzk{FLpΞ)3P`CCCf +LڜNcFmm-?~5t! E!B ^Y6!CAa@3c©u:]ƳՋs ^ F+i`lvr {}cjuyy]0|MQQ\.fwsd[n}w7Cf͠[߀Ç:tHT]$\2>>~`AIpwyÁ(EMaC&}V&4`s\߁{s,k|tKX47EM^.M$z7 E`1HHdv޲R5k֧~zں:F'333׬Y3jԨ7xCPuŋر^[d_|qĉ־>aRSS_xᅹsÇWZz+VW^yNڷo?rryttt^^K/p86mTXXncsA˷o߾tǏ;veYB/=[Ѥvڷz !{}g(zH |gj{ag=e 3% MKqPVkryy2bڲ8 g Ix<(*< VH$?bJrs&99w'NlڴIf͚_~yƍ7nܹs;v~q믿^\\nݺhZwܹcǎfQ,JXBQ?=֠62 r9X2R`̲ի߿nݺy͛7Nwɴ}?p˖-)))B1cZ~z׮]=L\.xz?Lcpic{UxB"6yM0 ,uH*'4/ZuEvuIQThhhTTT\\ѣjhkkN"H&M'9nllɓ''%%D"+W\xj3gh,..4MӋ-d䦟3gƞ?6LJ0 c[ZZjjjiӒ._,#"".] {yȕꟿxgoT #'#nc!/ǻXc$cqW&Fl9#Dc8-g;.{=ǣfOG6K/|(bF02.\h3&[ t(Ku Qy%MaI8,b@-q 1\v@Y;Q-*O`Bz.q0d?H<1ܜ \w M +_ ^Nqĵ68bqEYy By]?3(82  1|ˢ"D!k"'PA4>Fݶ|<>#_[>#_ޟ F;S v[e}A8heG"~$HÏDJm,iIENDB`elracodelangela/administrator/templates/khepri/images/h_green/j_header_right.png0000755000176700017710000000055611061563434031115 0ustar essawireessawirePNG  IHDR 6*sBITO pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time02/08/06{IDAT8! U $;MzzGЈfd[3A4;Gm[x9eY.L,q*M̛RQJu]wq%0}4GJ+bɢ9RJDha)B3rsgmqac i! yGhgoZpq<q⌉_whyA`-7hA IENDB`elracodelangela/administrator/templates/khepri/index.html0000755000176700017710000000005411061563433024562 0ustar essawireessawireelracodelangela/administrator/templates/khepri/templateDetails.xml0000755000176700017710000000313711061563433026435 0ustar essawireessawire Khepri 05/24/06 Andy Miller admin@joomla.org http://www.joomla.org GNU/GPL 1.0 Administration template for Joomla! 1.5 index.php css/template.css menu submenu toolbar title status icon cp_shell cpanel debug elracodelangela/administrator/templates/khepri/component.php0000755000176700017710000000270211061563433025302 0ustar essawireessawire direction == 'rtl') : ?> elracodelangela/administrator/templates/khepri/favicon.ico0000755000176700017710000000217611061563433024715 0ustar essawireessawire h(    //// ZZ  [osmCG+  b ]Yӈuۑ&h39`qyRxI)RO33i Dr"!00|O4p6>YK=|n v[_55?#vaZ6_0 J3c=h07ae'!^`ؔ(;Ja!@Yo! T0Cy;MQ//8"Ge&!9L #########t@^^0Z>T?Cf%f&$[#########&&&&&&NVV`'`~UZ)&&&&&&&))))))"P{r(nE3N?))))))IW[/bsy*}))))))---------kc------------------ko---------0000000000000000000000000000000000000000000000000033303333333333333333333333333333333333333330>  nter kecoape.intietlielracodelangela/administrator/templates/khepri/html/0000755000176700017710000000000011061563565023535 5ustar essawireessawireelracodelangela/administrator/templates/khepri/html/pagination.php0000755000176700017710000001025411061563433026376 0ustar essawireessawirebase : integer * $item->link : string * $item->text : string * * pagination_item_inactive * Input variable $item is an object with fields: * $item->base : integer * $item->link : string * $item->text : string * * This gives template designers ultimate control over how pagination is rendered. * * NOTE: If you override pagination_item_active OR pagination_item_inactive you MUST override them both */ function pagination_list_footer($list) { // Initialize variables $lang =& JFactory::getLanguage(); $html = "
    \n"; $html .= "\n
    ".JText::_('Display Num').$list['limitfield']."
    "; $html .= $list['pageslinks']; $html .= "\n
    ".$list['pagescounter']."
    "; $html .= "\n"; $html .= "\n
    "; return $html; } function pagination_list_render($list) { // Initialize variables $lang =& JFactory::getLanguage(); $html = null; if ($list['start']['active']) { $html .= "
    ".$list['start']['data']."
    "; } else { $html .= "
    ".$list['start']['data']."
    "; } if ($list['previous']['active']) { $html .= "
    ".$list['previous']['data']."
    "; } else { $html .= "
    ".$list['previous']['data']."
    "; } $html .= "\n
    "; foreach( $list['pages'] as $page ) { $html .= $page['data']; } $html .= "\n
    "; if ($list['next']['active']) { $html .= "
    ".$list['next']['data']."
    "; } else { $html .= "
    ".$list['next']['data']."
    "; } if ($list['end']['active']) { $html .= "
    ".$list['end']['data']."
    "; } else { $html .= "
    ".$list['end']['data']."
    "; } return $html; } function pagination_item_active(&$item) { if($item->base>0) return "text."\" onclick=\"javascript: document.adminForm.limitstart.value=".$item->base."; submitform();return false;\">".$item->text.""; else return "text."\" onclick=\"javascript: document.adminForm.limitstart.value=0; submitform();return false;\">".$item->text.""; } function pagination_item_inactive(&$item) { return "".$item->text.""; } ?> elracodelangela/administrator/templates/khepri/html/index.html0000755000176700017710000000005411061563433025526 0ustar essawireessawireelracodelangela/administrator/templates/khepri/html/modules.php0000755000176700017710000000323311061563433025714 0ustar essawireessawire * * This gives template designers ultimate control over how modules are rendered. * * NOTICE: All chrome wrapping methods should be named: modChrome_{STYLE} and take the same * two arguments. */ /* * Module chrome for rendering the module in a submenu */ function modChrome_rounded($module, &$params, &$attribs) { if($module->content) { ?>
    content; ?>
    elracodelangela/administrator/templates/khepri/params.ini0000755000176700017710000000006711061563433024555 0ustar essawireessawireuseRoundedCorners=1 showSiteName=1 headerColor=h_green elracodelangela/administrator/templates/khepri/index.php0000755000176700017710000000761011061563433024412 0ustar essawireessawire direction == 'rtl') : ?> params->get('useRoundedCorners')) : ?>
    params->get('showSiteName') ? $mainframe->getCfg( 'sitename' ) : JText::_('Administration'); ?>
    elracodelangela/administrator/templates/index.html0000755000176700017710000000005411061563432023277 0ustar essawireessawireelracodelangela/administrator/index.php0000755000176700017710000000415511061563414021132 0ustar essawireessawiremark( 'afterLoad' ) : null; /** * CREATE THE APPLICATION * * NOTE : */ $mainframe =& JFactory::getApplication('administrator'); /** * INITIALISE THE APPLICATION * * NOTE : */ $mainframe->initialise(array( 'language' => $mainframe->getUserState( "application.lang", 'lang' ) )); JPluginHelper::importPlugin('system'); // trigger the onAfterInitialise events JDEBUG ? $_PROFILER->mark('afterInitialise') : null; $mainframe->triggerEvent('onAfterInitialise'); /** * ROUTE THE APPLICATION * * NOTE : */ $mainframe->route(); // trigger the onAfterRoute events JDEBUG ? $_PROFILER->mark('afterRoute') : null; $mainframe->triggerEvent('onAfterRoute'); /** * DISPATCH THE APPLICATION * * NOTE : */ $option = JAdministratorHelper::findOption(); $mainframe->dispatch($option); // trigger the onAfterDispatch events JDEBUG ? $_PROFILER->mark('afterDispatch') : null; $mainframe->triggerEvent('onAfterDispatch'); /** * RENDER THE APPLICATION * * NOTE : */ $mainframe->render(); // trigger the onAfterRender events JDEBUG ? $_PROFILER->mark( 'afterRender' ) : null; $mainframe->triggerEvent( 'onAfterRender' ); /** * RETURN THE RESPONSE */ echo JResponse::toString($mainframe->getCfg('gzip')); ?>elracodelangela/administrator/index2.php0000755000176700017710000000106011061563414021204 0ustar essawireessawireelracodelangela/administrator/index3.php0000755000176700017710000000112111061563434021205 0ustar essawireessawireelracodelangela/administrator/help/0000755000176700017710000000000011061563570020235 5ustar essawireessawireelracodelangela/administrator/help/en-GB/0000755000176700017710000000000011061563570021125 5ustar essawireessawireelracodelangela/administrator/help/en-GB/screen.menumanager.html0000755000176700017710000000136511061563437025602 0ustar essawireessawire Menu Manager

    Menu Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.modules.edit.html0000755000176700017710000000137111061563435025672 0ustar essawireessawire Module - Edit

    Module - Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.categories.edit.html0000755000176700017710000000143111061563437026346 0ustar essawireessawire Category Manager - New/Edit

    Category Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.cache.html0000755000176700017710000000135711061563436024346 0ustar essawireessawire Clean Cache

    Clean Cache

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.frontpage.html0000755000176700017710000000137511061563436025270 0ustar essawireessawire Frontpage Manager

    Frontpage Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/joomla.support.html0000755000176700017710000000316011061563437025014 0ustar essawireessawire Support

    Support

    Official Sites


    Addons for Joomla

    • Joomla! Developers - - The object of the developers site is to provide a free project management and download environment for Joomla! related projects. It is one of largest central repositories on the web for everything that is to do with Joomla.
    elracodelangela/administrator/help/en-GB/screen.weblinks.categories.html0000755000176700017710000000143111061563437027237 0ustar essawireessawire Web Link Category Manager

    Web Link Category Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.sections.html0000755000176700017710000000137011061563436025125 0ustar essawireessawire Section Manager

    Section Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.content.html0000755000176700017710000000136711061563436024756 0ustar essawireessawire Article Manager

    Article Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.banners.client.html0000755000176700017710000000141411061563436026202 0ustar essawireessawire Banner Client Manager

    Banner Client Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.contact_details.categories.html0000755000176700017710000000143611061563436030565 0ustar essawireessawire Contact Category Manager

    Contact Category Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.polls.html0000755000176700017710000000135711061563436024434 0ustar essawireessawire Poll Manager

    Poll Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.banners.client.edit.html0000755000176700017710000000144711061563436027134 0ustar essawireessawire Banner Client Manager - New/Edit

    Banner Client Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.newsfeeds.categories.edit.html0000755000176700017710000000147111061563437030334 0ustar essawireessawire News Feeds Category Manager - New/Edit

    News Feeds Category Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.messages.inbox.html0000755000176700017710000000142211061563436026221 0ustar essawireessawire Private Messages - Inbox

    Private Messages - Inbox

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.banner.categories.edit.html0000755000176700017710000000145611061563437027621 0ustar essawireessawire Banner Category Manager - New/Edit

    Banner Category Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.content.edit.html0000755000176700017710000000142411061563436025674 0ustar essawireessawire Article Manager - New/Edit

    Article Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.system.info.html0000755000176700017710000000140111061563437025550 0ustar essawireessawire System Information

    System Information

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.templates.html0000755000176700017710000000137311061563436025277 0ustar essawireessawire Template Manager

    Template Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.plugins.html0000755000176700017710000000136611061563437024765 0ustar essawireessawire Plugin Manager

    Plugin Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.menus.html0000755000176700017710000000137311061563437024431 0ustar essawireessawire Menu Item Manager

    Menu Item Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/joomla.whatsnew10.html0000755000176700017710000001603211061563436025302 0ustar essawireessawire What's New in Version 1.0

    What's New in Version 1.0

    The following outlines the highlights of this debut version of Joomla!  All comments are made in reference to Mambo 4.5.2.3 with regard to changes and improvements made.

    Bug Fixes

    Several crucial fixes have been applied to this version:

    •  You can now properly login to different sites even if they share the same domain and are nested in sub-directories.
    • Slow queries in the User Manager have been corrected.  This bug affected sites with thousands of registered users.  Registered users (that don't have edit rights) are also excluded from the Author select list shown when editing content pages.
    • Variable references that caused notices in PHP 4.4 have been fixed.

    Check the CHANGELOG.php file for more information.

     

     Security Fixes

     Several important vulnerabilities have been patched in this version:

    • Known vulnerabilities in the phpMailer class
    • SQL injection vulnerability via the user activation feature
    • SQL injection vulnerability via the polls component
    • Files such as the CHANGELOG have been converted to PHP files to prevent them being visible.
    • The "Email from Friend" form has been hardened to reduce the risk of it being used as a gateway for spam
    • The mosGetParam has been hardened by using phpInputFilter for NO_HTML mode
    • An alternative version of globals.php has been provided.  If you rename globals.php-off to globals.php Joomla! will emulate the php setting register_globals=off.  This affords some protection against certainly types of malicious attacks but may prevent some third party applications from working correctly.

     

    Joomla! Site (Front End)

    •  The site is now visibile to Administrators even when the site is in Offline mode.
    • Frontend Users can select the WYSIWYG editor they want to use rather than having to use the default.

     

     Joomla! Administrator (Back End)

    • The System Information link has been added back to the System Menu.
    • "Force Logout" in the User Manager toolbar has been renamed to simply "Logout".
    • "Submit - Content" is a new menu type available
    • HTML output is now buffered to improve performance of non-display actions (like saving content)
    • Users can select the WYSIWYG editor they want to use rather than having to use the default.
    • Contact component: added parameter to define a certain category for a contact menu.

     

    Templates 

     The Solar Flare 2 template has been freshened with the new name.  Andy Miller joined forces with Robert Deutz to deliver a stunning new Adminstrator Template for Joomla!

    Toolbar icons in the Administrator toolbar are now shown in full colour rather than greyed out (which would normally indicate they were unavailable). 

     

    Miscellaneous Bits

    • A "check again" button has been added to the first page of the web installer. 

     

    Support for MySQL 4.1.x

     Joomla! will support installation and use with PHP 5 and MySQL 4.1.  An alternative database file is provided in the /includes directory.  SImply copy database.mysqli.php over the existing databased.php file.  Following this you can use the web installer normally to install Joomla!.

    Library Upgrades

     The following developer libraries have been upgraded:

    • patTemplate (this version now supports the short tag modifiers)
    • Overlib
    • TinyMCE
    • Walter Zorn tooltips
    • JSCookMenu
    • DOMIT!
    • DOMIT! RSS

     

    Useability and Accessibility

    A huge thrust is being made to make Joomla! compliant with web standards for useability and accessibility.  While much more will be done in future versions, the following first steps have been taken to achieve this goal:

    • Label tags have been added to Site module and component output
    • mosHTML::selectList and mosHTML::radioList automatically provide the correct label tags 

     

    Developer Extras

    A number of new things are available for developers.  These include:

    •  patHTML class provides several utility methods for handling selection lists
    • mosAbstractTasker class now auto-maps public methods to tasks
    • setTemplateVars method has been added to both the Site and Administrator page navigation classes
    • mosHash function provides a convenient method for producing secure hashes
    • A <span class="article_separator"></span> now separates content items in lists
    • mosParameter::_mos_filelist has been added to supportXML params
    • Paramater files can now use the root element <mosparams>.  This enables you to have more than one XML params file in your component installation files.
    • A number of new mambot triggers have been included: onStart, onAfterMainframe
    • A number of new toolbar icons have been added
    • The mosToolBar::help method now correctly supports local help files in a components /help folder.
    • mosDBTable::isCheckedOut method has been added
    • CSS styles have been added to the administrator template to support Joomla! 1.5-like (Mambo 4.5.3-like) screen layouts.
    • The dTree javascript tree library has been added
    • database:setQuery now takes arguments for query limit offset and number of records to be returned.

     


     Compatibility

    We have made every effort to make this version backwardly compatible with Mambo 4.5.2.3 but there are a few changes that may affect a small selection of existing addons.  If you are a developer of Mambo addons (and soon to be Joomla! developer) then your attention should be drawn to the following points:

    • patTemplate::createTemplate arguments have changed
    • database:setQuery arguments have changed but this is unlikely to affect most sites

     

     

    elracodelangela/administrator/help/en-GB/screen.modules.new.html0000755000176700017710000000136611061563436025543 0ustar essawireessawire Module - New

    Module - New

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.sections.edit.html0000755000176700017710000000142711061563436026054 0ustar essawireessawire Sections Manager - New/Edit

    Sections Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/css/0000755000176700017710000000000011061563570021715 5ustar essawireessawireelracodelangela/administrator/help/en-GB/css/help.css0000755000176700017710000000055411061563437023370 0ustar essawireessawirebody { font-family: verdana, arial, sans-serif; font-size: 9pt; } h1 { color: #6D9D2E; font-size: 1.5em; border-left: 25px solid #6D9D2E; border-bottom: 1px solid #6D9D2E; padding: 0 0 2px 5px; } h2 { color: #6D9D2E; font-size: 1.3em; margin: 1ex 0; } pre { text-align: left; background-color: #fff; border-left: 1px solid #aaa; padding: 5px; }elracodelangela/administrator/help/en-GB/css/index.html0000755000176700017710000000005411061563437023716 0ustar essawireessawireelracodelangela/administrator/help/en-GB/css/docbook.css0000755000176700017710000005070411061563437024062 0ustar essawireessawirea:hover { text-decoration: none; } /* ===================================== Article structure ===================================== */ article { display: block; } article > title { font-size: 2em; margin: 0.5ex 0; border-width: 1px; border-style: solid; border-color: transparent transparent #fea540 transparent; } title, subtitle, titleabbrev { display: block; color: #fea540; margin: 1.33ex 0; } title, subtitle { font-family: tahoma, arial, sans-serif; font-weight: bold; } /* ------------------------------------- Sections ------------------------------------- */ appendix, section { font-family: verdana, arial, sans-serif; font-size: 10pt; } section, sect1, sect2, sect3, sect4, sect5, simplesect { display: block; margin: 5px; } section > title, sect1 > title { font-size: 1.5em; margin: .83ex 0; } section > title:before, sect1 > title:before { content: counter(n-) " "; } section section > title, sect2 > title { font-size: 1.3em; margin: 1ex 0; } section * section > title { font-size: 1em; margin: 1.33ex 0; } section section > title:before, sect2 > title:before { content: counter(nn-) " "; } section section section > title:before, sect3 > title:before { content: counter(nnn-) " "; } section section section section > title:before, sect4 > title:before { content: counter(nnnn-) " "; } section section section * section > title:before { content: ""; } /* ------------------------------------- Appendix ------------------------------------- */ appendix { display: block; } appendix > title { /* in a book or in a part */ font-size: 2em; margin: 0.5ex 0; border-width: 1px; border-style: solid; border-color: transparent transparent #fea540 transparent; } article > appendix > title { font-size: 1.5em; margin: 0.83ex 0; border-width: 0; border-style: none; } appendix > title:before { content: "Appendix " counter(n-, upper-alpha) ": "; } /* ===================================== Paragraphs ===================================== */ para, simpara { display: block; margin: 1.33ex 0; font-size: 0.8em; } /* ===================================== Lists ===================================== */ /* ------------------------------------- itemizedlist ------------------------------------- */ itemizedlist { display: block; margin-left: 2ex; /* all lists are slightly indented */ margin-top: 1.33ex; margin-bottom: 1.33ex; } listitem { margin-bottom: 1.33ex; display: list-item; list-style-type: disc; } listitem > *:first-child { margin-top: 0; margin-bottom: 0; } itemizedlist > listitem { margin-left: 2.5ex; } itemizedlist > listitem:before { display: marker; content: disc; color: #fea540; padding-top: .6ex; } itemizedlist > listitem itemizedlist > listitem:before { content: square; } itemizedlist > listitem itemizedlist > listitem itemizedlist > listitem:before { content: icon(diamond); } itemizedlist > listitem itemizedlist > listitem itemizedlist > listitem itemizedlist > listitem:before { content: circle; } /* ------------------------------------- orderedlist ------------------------------------- */ orderedlist { display: block; margin-left: 2ex; margin-top: 1.33ex; margin-bottom: 1.33ex; } orderedlist > listitem { margin-left: 6ex; } orderedlist > listitem:before { display: marker; content: counter(n, decimal) "."; font-weight: bold; color: #fea540; } orderedlist[numeration=loweralpha] > listitem:before { content: counter(n, lower-alpha) "."; } orderedlist[numeration=upperalpha] > listitem:before { content: counter(n, upper-alpha) "."; } orderedlist[numeration=lowerroman] > listitem:before { content: counter(n, lower-roman) "."; } orderedlist[numeration=upperroman] > listitem:before { content: counter(n, upper-roman) "."; } /* ------------------------------------- variablelist ------------------------------------- */ variablelist { display: block; margin-left: 2ex; margin-top: 1.33ex; margin-bottom: 1.33ex; } varlistentry { display: block; } term { display: block; font-weight: bold; } varlistentry > listitem { margin-left: 4ex; } /* ===================================== Figures ===================================== */ programlisting, screen, literallayout, synopsis { display: block; white-space: pre; font-family: monospace; font-size: 1.5em; margin: 1.33ex 0; } programlisting { background-color: rgb(255,255,221); border: thin solid gray; padding: 2px; color: #00f; } screen { background-color: #EEEEFF; border: thin solid #8888FF; padding: 2px; } figure, informalfigure, example, informalexample { display: block; margin: 1.33ex auto; } figure > title, example > title { font-style: italic; font-weight: normal; text-align: center; margin: 0; /* content of figure generally already has a margin */ } mediaobject { display: table; border-spacing: 2px; margin: 1.33ex auto; } inlinemediaobject { display: inline-table; border-spacing: 2px; } caption { display: table-caption; color: #fea540; font-style: italic; font-weight: normal; text-align: center; /* content of caption already has a margin */ } audioobject, videoobject, imageobject, textobject { display: table-cell; /* this will create one row per cell */ text-align: center; } objectinfo { text-align: left; } mediaobject > objectinfo { display: table-cell; } audiodata { display: inline; content: url(icons/audio.gif); } videodata { display: inline; content: url(icons/video.gif); } imagedata { display: inline; content: image(attr(fileref), -400, -200); } textdata { display: inline; content: url(icons/text.gif); } /* ===================================== Tables ===================================== */ /* * "black" is the color used to draw a border around the table and its cells * based on values of attributes such as frame, rowsep and colsep. * * "rgb(238,238,224)" (a very light gray) is the color used to draw * a border around each cell whether the cell actually has borders or not. * Remove this parameter if this ``cell footprint'' disturbs you. * * For more information about table support for DocBook, see * Power User's Guide. */ @extension "com.xmlmind.xmleditapp.docbook.TableSupport black rgb(238,238,224)"; table, informaltable { display: block; margin: 1.33ex 0; } table > title { display: block; font-style: italic; font-weight: normal; text-align: center; /* keep margin because tgroup has no margin */ } colspec, spanspec { display: table-column; collapsed: yes; } tgroup { display: table; border-style: solid; border-width: 1; } thead, tfoot { display: table-row-group; font-weight: bold; } tbody { display: table-row-group; } row { display: table-row; } entry { display: table-cell; border-style: solid; border-width: 1; padding: 2; } entry > *:first-child { margin-top: 0; margin-bottom: 0; } entrytbl { display: subtable; border-style: solid; border-width: 1; } /* ===================================== Divisions ===================================== */ abstract { display: block; margin-left: 18ex; margin-top: 1.33ex; margin-bottom: 1.33ex; } abstract > *:first-child { margin-top: 0; margin-bottom: 0; } abstract:before { display: marker; content: element-label(); font-weight: bold; color: #fea540; } blockquote, epigraph { display: block; margin: 1.33ex 10ex; } blockquote > title { font-style: italic; font-weight: normal; text-align: center; margin: 0; /* content of blockquote already has a margin */ } attribution { display: block; text-align: right; } attribution:before { content: " -- "; } footnote { display: block; margin-left: 18ex; margin-top: 1.33ex; margin-bottom: 1.33ex; margin-right: 10ex; font-size: small; padding: 2px; background-color: #F0F0FF; } footnote > *:first-child { margin-top: 0; margin-bottom: 0; } footnote:before { display: marker; content: element-label(); color: #fea540; } footnote[label]:before { content: "[" attr(label) "]"; } note, caution, important, tip, warning { display: block; margin-left: 18ex; margin-top: 1.33ex; margin-bottom: 1.33ex; } note > *:first-child, caution > *:first-child, important > *:first-child, tip > *:first-child, warning > *:first-child { margin-top: 0; margin-bottom: 0; } note:before, caution:before, important:before, tip:before, warning:before { display: marker; content: element-label(); font-weight: bold; color: #fea540; } sidebar { display: block; margin: 1.33ex 0; border: thin solid #00FF00; background-color: #CCFFCC; padding: 2px; } sidebar > title { margin: 0; /* content of sidebar already has a margin */ } /* ===================================== Special sections ===================================== */ /* ------------------------------------- Question-and-answer set ------------------------------------- */ qandaset, qandadiv { display: block; /* content of qandaset has a margin */ } qandaentry { display: block; margin: 1.33ex 0; } question { font-weight: bold; display: block; margin-left: 2ex; margin-bottom: 1.33ex; } answer { font-weight: normal; display: block; margin-left: 4ex; margin-bottom: 1.33ex; } question > *:first-child, answer > *:first-child { margin-top: 0; margin-bottom: 0; } question:before, answer:before { display: marker; color: #004080; font-weight: bold; } question > para:before { color: #004080; content: "Q: "; font-weight: bold; } answer > para:before { color: #004080; content: "A: "; font-weight: bold; } label { display: block; margin: 1.33ex 0; color: #004080; font-weight: bold; } /* ------------------------------------- Meta-information ------------------------------------- */ appendixinfo, articleinfo, bibliographyinfo, blockinfo, bookinfo, chapterinfo, glossaryinfo, indexinfo, objectinfo, partinfo, prefaceinfo, refentryinfo, refmeta, referenceinfo, refsect1info, refsect2info, refsect3info, refsectioninfo, refsynopsisdivinfo, sect1info, sect2info, sect3info, sect4info, sect5info, sectioninfo, setindexinfo, setinfo, sidebarinfo { display: block; margin: 0; border: 0px; padding: 0px; } authorgroup { display: block; /* content of authorgroup has a margin */ } author, editor, othercredit { display: block; /* can contain authorblurb, address */ margin: 1.33ex 0; } personname { display: inline; } honorific, firstname, surname, lineage, othername { display: inline; } honorific:after, firstname:after, surname:after, lineage:after, othername:after { content: " "; } contrib { display: inline; } authorblurb, personblurb { display: block; /* content of authorblurb has a margin */ } corpauthor, corpname { /* Could be block but inline is safer when used in strange places and when used in meta-info, display is forced to be block. */ display: inline; } affiliation { display: block; /* can contain address */ margin: 1.33ex 0; } shortaffil, jobtitle, orgname, orgdiv { display: inline; } shortaffil:after, jobtitle:after, orgname:after, orgdiv:after { content: " "; } copyright { display: inline; } year, holder { display: inline; } year:after, holder:after { content: " "; } date, pubdate { display: inline; } edition { display: inline; } issuenum { display: inline; } keywordset, subjectset { display: inline; } keyword, subject, subjectterm { display: inline; } keyword:after, subjectterm:after { content: " "; } legalnotice { display: block; /* content of legalnotice has a margin */ } publishername { display: inline; } releaseinfo { display: inline; } revhistory { display: block; margin: 1.33ex 0; } revision { display: block; margin-left: 2.5ex; } revision:before { display: marker; content: icon(right); color: #fea540; padding-top: .6ex; } authorinitials { display: inline; font-weight: bold; } revnumber, revremark { display: inline; } revnumber:after, revision > date:after, revision > authorinitials:after { content: " "; } revdescription { display: block; /* content of revdescription has a margin */ } volumenum { display: inline; } /* --------------------------------------------------------------------------- Inlined elements other than those belonging to modules Note that default display is inline, so there is no need to specify it. --------------------------------------------------------------------------- */ emphasis { font-style: italic; } emphasis[role=bold] { font-style: normal; font-weight: bold; } emphasis[role=underline] { font-style: normal; text-decoration: underline; } emphasis[role=strikethrough] { font-style: normal; text-decoration: line-through; } emphasis > emphasis { font-style: normal; font-weight: normal; text-decoration: none; } literal { font-family: monospace; } link, ulink, email { color: navy; text-decoration: underline; } /* ------------------------------------- Technical ------------------------------------- */ command, computeroutput, filename, option, systemitem, userinput { font-family: monospace; } computeroutput, userinput { background-color: #EEEEEE; } command, option { font-weight: bold; } lineannotation { font-style: italic; font-size: medium; /* occurs in verbatim, fixed font, blocks */ } replaceable { font-style: italic; } /* ------------------------------------- General ------------------------------------- */ abbrev, acronym { font-weight: bold; } citetitle { font-style: italic; } footnoteref { content: "[" attr(linkend) "]"; font-size: small; vertical-align: super; color: navy; } footnoteref[label] { content: "[" attr(label) "]"; } phrase[revisionflag=deleted] { text-decoration: line-through; } phrase[revisionflag=added] { text-decoration: underline; } quote:before { content: open-quote; color: gray; } quote:after { content: close-quote; color: gray; } trademark:after, productname:after { font-size: small; color: gray; } trademark:after, /* also works for class=trade */ productname[class=trade]:after { content: "[tm]"; } trademark[class=copyright]:after, productname[class=copyright]:after { content: "\A9"; font-size: medium; } trademark[class=registered]:after, productname[class=registered]:after { content: "\AE"; font-size: medium; } trademark[class=service]:after, productname[class=service]:after { content: "[sm]"; } xref { content: icon(left-link) attr(linkend); vertical-align: text-top; /* for the icon */ color: navy; } xref[endterm] { content: icon(left-link) attr(endterm); } /* --------------------------------------------------------------------------- Comments and processing instructions --------------------------------------------------------------------------- */ *::comment, *::processing-instruction { display: block; margin: 2px; white-space: pre; text-align: left; font-family: monospace; font-size: small; font-style: normal; font-weight: normal; } *::comment { background-color: #FFFFCC; color: #808000; } *::processing-instruction { background-color: #CCFFCC; color: #008000; } /* --------------------------------------------------------------------------- Other --------------------------------------------------------------------------- */ xi\:include { display: tree; } *:read-only { background-color: #F0F0F0; } /* ------------------------------------- Meta-information ------------------------------------- */ appendixinfo > *, articleinfo > *, bibliographyinfo > *, blockinfo > *, bookinfo > *, chapterinfo > *, glossaryinfo > *, indexinfo > *, objectinfo > *, partinfo > *, prefaceinfo > *, refentryinfo > *, refmeta > *, referenceinfo > *, refsect1info > *, refsect2info > *, refsect3info > *, refsectioninfo > *, refsynopsisdivinfo > *, sect1info > *, sect2info > *, sect3info > *, sect4info > *, sect5info > *, sectioninfo > *, setindexinfo > *, setinfo > *, sidebarinfo > * { display: block; text-align: right; /* Reset paragraph styles */ font: normal normal 1em sans-serif; color: #777; font-size: 0.8em; } appendixinfo > *:first-child, articleinfo > *:first-child, bibliographyinfo > *:first-child, blockinfo > *:first-child, bookinfo > *:first-child, chapterinfo > *:first-child, glossaryinfo > *:first-child, indexinfo > *:first-child, objectinfo > *:first-child, partinfo > *:first-child, prefaceinfo > *:first-child, refentryinfo > *:first-child, refmeta > *:first-child, referenceinfo > *:first-child, refsect1info > *:first-child, refsect2info > *:first-child, refsect3info > *:first-child, refsectioninfo > *:first-child, refsynopsisdivinfo > *:first-child, sect1info > *:first-child, sect2info > *:first-child, sect3info > *:first-child, sect4info > *:first-child, sect5info > *:first-child, sectioninfo > *:first-child, setindexinfo > *:first-child, setinfo > *:first-child, sidebarinfo > *:first-child { /* nicer */ margin-top: 0; margin-bottom: 0; } appendixinfo > *:before, articleinfo > *:before, bibliographyinfo > *:before, blockinfo > *:before, bookinfo > *:before, chapterinfo > *:before, glossaryinfo > *:before, indexinfo > *:before, objectinfo > *:before, partinfo > *:before, prefaceinfo > *:before, refentryinfo > *:before, refmeta > *:before, referenceinfo > *:before, refsect1info > *:before, refsect2info > *:before, refsect3info > *:before, refsectioninfo > *:before, refsynopsisdivinfo > *:before, sect1info > *:before, sect2info > *:before, sect3info > *:before, sect4info > *:before, sect5info > *:before, sectioninfo > *:before, setindexinfo > *:before, setinfo > *:before, sidebarinfo > *:before { display: marker; content: element-label(); font: normal normal small sans-serif; color: #fea540; } appendixinfo > *:after, articleinfo > *:after, bibliographyinfo > *:after, blockinfo > *:after, bookinfo > *:after, chapterinfo > *:after, glossaryinfo > *:after, indexinfo > *:after, objectinfo > *:after, partinfo > *:after, prefaceinfo > *:after, refentryinfo > *:after, refmeta > *:after, referenceinfo > *:after, refsect1info > *:after, refsect2info > *:after, refsect3info > *:after, refsectioninfo > *:after, refsynopsisdivinfo > *:after, sect1info > *:after, sect2info > *:after, sect3info > *:after, sect4info > *:after, sect5info > *:after, sectioninfo > *:after, setindexinfo > *:after, setinfo > *:after, sidebarinfo > *:after { content: ""; } appendixinfo > title, articleinfo > title, bibliographyinfo > title, blockinfo > title, bookinfo > title, chapterinfo > title, glossaryinfo > title, indexinfo > title, objectinfo > title, partinfo > title, prefaceinfo > title, refentryinfo > title, /* refmeta has no title */ referenceinfo > title, refsect1info > title, refsect2info > title, refsect3info > title, refsectioninfo > title, refsynopsisdivinfo > title, sect1info > title, sect2info > title, sect3info > title, sect4info > title, sect5info > title, sectioninfo > title, setindexinfo > title, setinfo > title, sidebarinfo > title { font-size: 1.3em; font-weight: bold; color: #fea540; margin-left: 0; margin-right: 0; margin-top: 0; margin-bottom: 1ex; } appendixinfo > title:before, articleinfo > title:before, bibliographyinfo > title:before, blockinfo > title:before, bookinfo > title:before, chapterinfo > title:before, glossaryinfo > title:before, indexinfo > title:before, objectinfo > title:before, partinfo > title:before, prefaceinfo > title:before, refentryinfo > title:before, referenceinfo > title:before, refsect1info > title:before, refsect2info > title:before, refsect3info > title:before, refsectioninfo > title:before, refsynopsisdivinfo > title:before, sect1info > title:before, sect2info > title:before, sect3info > title:before, sect4info > title:before, sect5info > title:before, sectioninfo > title:before, setindexinfo > title:before, setinfo > title:before, sidebarinfo > title:before { content: ""; } graphic, inlinegraphic { content: image(attr(fileref)); } graphic { display: block; margin: 1.33ex auto; }elracodelangela/administrator/help/en-GB/screen.languages.html0000755000176700017710000000137311061563437025250 0ustar essawireessawire Language Manager

    Language Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.modulesadministrator.edit.html0000755000176700017710000000142711061563437030477 0ustar essawireessawire Modules Administrator

    Modules Administrator

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.newsfeeds.edit.html0000755000176700017710000000143411061563437026207 0ustar essawireessawire News Feeds Manager - New/Edit

    News Feeds Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.users.html0000755000176700017710000000136111061563437024440 0ustar essawireessawire User Manager

    User Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.contact_details.categories.edit.html0000755000176700017710000000147111061563436031510 0ustar essawireessawire Contact Category Manager - New/Edit

    Contact Category Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.banners.html0000755000176700017710000000136511061563436024732 0ustar essawireessawire Banner Manager

    Banner Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/index.html0000755000176700017710000000005411061563436023125 0ustar essawireessawireelracodelangela/administrator/help/en-GB/screen.config.html0000755000176700017710000000140011061563435024534 0ustar essawireessawire Global Configuration

    Global Configuration

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/joomla.whatsnew15.html0000755000176700017710000001117711061563437025315 0ustar essawireessawire What's New in Version 1.5

    What's New in Version 1.5

    The following outlines the highlights of the second major release of Joomla!

    As with previous releases, Joomla! provides a unified and easy-to-use framework for delivering content for websites of all kinds. To support the changing nature of the Internet and emerging web technologies, Joomla! required substantial restructuring of its core functionality and we also used this effort to simplify many challenges within the current user interface. Joomla! 1.5 has many new features.

    The goals for the Joomla! 1.5 release are to:

    • Substantially improve usability, manageability, and scalability far beyond the original Mambo foundations.
    • Expand accessibility to support internationalisation, double-byte characters and Right-to-Left support for Arabic and Hebrew languages.
    • Extend the integration of external applications through Web Services and remote authentication such as the Lightweight Directory Access Protocol (LDAP).
    • Enhance the content delivery, template and presentation capabilities to support accessibility standards and content delivery to any destination.
    • Achieve a more sustainable and flexible framework for component and extension developers.
    • Deliver backwards compatibility with previous releases of components, templates, modules and other extensions.

    What are "extensions"?

    Components, languages, modules, plugins and templates are now collectively known as Extensions.

    Where did the installer go?

    The improved installer can be found under the extensions option. With versions prior to 1.5 you needed to select a specific extension type when you wanted to install it. With Joomla! 1.5 you just select the extension you want to upload, and click on install. The installer will do all the hard work for you.

    What happened to the locale setting?

    This is now defined in the language .xml file in the language metadata settings. If you are having locale problems (dates don't appear in your language, for example) you might want to check/edit the entries in the locale tag. Note that multiple locale strings can be set and the host will usually accept the first one recognised.

    Only one edit window! How do I create "Read more..."?

    This is now implemented by inserting a tag (button is in the editor area) a dotted line appears in the edited text showing the split location for the "Read more...". A new bot takes care of the rest.

    It is worth mentioning that this does not have a negative effect on migrated data from older sites. The new implementation is fully backwards compatible.

    Where did the Mambots go?

    Mambots have been renamed as "Plugins". Mambots were introduced in Mambo and offered possibilities to add plugin logic to your site mainly for the purpose of manipulating content. In Joomla!, Plugins will now have much broader capabilities than Mambots. Plugins are able to extend functionality at the framework layer as well.

    Where is the static content?

    In Joomla! versions prior to 1.5 there was a distinct difference between static and normal content. Both content types are still around, but are not handled as separate items. If you want to create static content, just select "uncategorised" as section and category and the content is handled as static content.

    What about developers?

    This is the release that developers' have been waiting for. A massive effort has been made to refactor and reorganise the core of Joomla! into a true extendable framework. The new features in the framework are too many to list here but additional documentation can be found on the Joomla! Developer Network site.

    Compatibility

    We have made every effort to make this version backwards compatible with Joomla 1.0. In order to install 1.0 extensions you will probably need to activate the legacy code plugin. This can be found in the Plugin Manager (it's called "System - Legacy") and you just need to enable it.

    elracodelangela/administrator/help/en-GB/screen.menus.edit.html0000755000176700017710000000142611061563435025352 0ustar essawireessawire Menu Item Manager - New/Edit

    Menu Item Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.content.categories.edit.html0000755000176700017710000000146111061563437030022 0ustar essawireessawire Content Category Manager - New/Edit

    Content Category Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.installer.html0000755000176700017710000000142311061563436025272 0ustar essawireessawire Extension Manager - Install

    Extension Manager - Install

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.modulessite.edit.html0000755000176700017710000000137411061563436026563 0ustar essawireessawire Modules Site

    Modules Site

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.newsfeeds.html0000755000176700017710000000137711061563437025271 0ustar essawireessawire News Feeds Manager

    News Feeds Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.categories.html0000755000176700017710000000137411061563437025430 0ustar essawireessawire Category Manager

    Category Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.checkin.html0000755000176700017710000000136711061563437024711 0ustar essawireessawire Global Check-in

    Global Check-in

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.cpanel.html0000755000176700017710000000136211061563436024541 0ustar essawireessawire Control Panel

    Control Panel

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.weblink.edit.html0000755000176700017710000000143011061563436025652 0ustar essawireessawire Web Link Manager : New / Edit

    Web Link Manager : New / Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.stats.searches.html0000755000176700017710000000140211061563436026224 0ustar essawireessawire Search Statistics

    Search Statistics

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.banners.edit.html0000755000176700017710000000142211061563437025651 0ustar essawireessawire Banner Manager - New/Edit

    Banner Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.modules.html0000755000176700017710000000136611061563437024754 0ustar essawireessawire Module Manager

    Module Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.contactmanager.edit.html0000755000176700017710000000143311061563437027211 0ustar essawireessawire Contact Manager - New/Edit

    Contact Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.weblinks.categories.edit.html0000755000176700017710000000146411061563436030170 0ustar essawireessawire Web Link Category Manager - New/Edit

    Web Link Category Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.banner.categories.html0000755000176700017710000000142311061563436026666 0ustar essawireessawire Banner Category Manager

    Banner Category Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.contactmanager.html0000755000176700017710000000137711061563437026274 0ustar essawireessawire Contact Manager

    Contact Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.trashmanager.html0000755000176700017710000000137011061563437025753 0ustar essawireessawire Trash Manager

    Trash Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.plugins.edit.html0000755000176700017710000000140411061563437025702 0ustar essawireessawire Plugins - New/Edit

    Plugins - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.mediamanager.html0000755000176700017710000000137011061563437025711 0ustar essawireessawire Media Manager

    Media Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.content.categories.html0000755000176700017710000000142611061563437027077 0ustar essawireessawire Content Category Manager

    Content Category Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.users.massmail.html0000755000176700017710000000137611061563437026253 0ustar essawireessawire Mass Mail Users

    Mass Mail Users

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.messages.read.html0000755000176700017710000000141711061563436026021 0ustar essawireessawire Private Messages - Read

    Private Messages - Read

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/joomla.glossary.html0000755000176700017710000003301411061563436025143 0ustar essawireessawire Glossary

    Glossary

    Admin Templates: Administrator Templates define the lay-out of your Joomla Web site's Backend.

    Alt Tag: The 'alt' attribute, often called the 'alt tag' is a text attribute added to the image tag to describe the image contained in the tag. This text is viewable (inside a text box) when one hovers their mouse over an image in the Frontend of a Web site.

    Archive: Content items can be archived and managed trough the Backend. The Archive Module provides a way of displaying archived items on your Web site.

    Backend: The 'Backend' is the Joomla Administrator where the site administrator manages the site and it's content.

    Blog: A Blog style within Joomla is a listing of some or all Content Items in a certain section or category.  Only the title of the Content Item, an introductory text and a Read More link  can show up.   It could be by link only, or showing just the introductory text with a link to the complete text. Often the "News" page is written in Blog style.

    Category:  A Category is the name for a collection of content items that are related in some way. Example: The category 'Fish' may contain the Content Items 'Herring', 'Haddock' and 'Stickleback'. Category is part of the Content hierachy.  The top level is called Sections, the next level is called Categories and then the third level are called Content Items.

    Check Out (an item): When a user edits a file they 'Check it Out'. This prevents other users from being able to edit the item at the same time, thus preventing loss of data upon saving.

    CMT:
    CMT is an acronym for Components, Modules and Templates.

    CMTM: CMTM is an acronym for Components, Modules, Templates and Mambots.

    Components:
     Components are Joomla's content elements or applications that usually in the center of the the main content area of a template.  This depends on the design of the template in use. Components are core elements of Joomla functionality.  These core elements include: Banners, Contact, News Feeds, Polls and Weblinks. Members of the Joomla Community are producing third party Joomla components on a continuous basis. They are available on http://developer.joomla.org for free download.

    Content Item:
      A Content Item is a discrete piece of content within the Joomla hierarchy. A Content item can be an article, a content category, a menu item or a link. Usually Content Items are placed in the main body of your page.  Content Item are the last in the Section/Category hierarchy or it can be a separate Static Content Item. 

    Content Management System (CMS):  A CMS is a software for managing content on a Web site directly on the server.

    Core: The Joomla core is the zip-file containing the official standard Joomla installation, which can be found on http://developer.joomla.org and various other sites. It contains some built-in CMTM's, but can be extended with 3rd party developer's addons. The core Joomla software is available for download on http://developer.joomla.org.

    Database:
     A database is an organized collection of information. It contains a collection of records that you can search, sort and analyze rapidly.  Joomla is  database driven software and that you can edit, add or delete content that is stored in Joomla's database. Please see also Record.

    Elements:  Elements are plug-ins like components, modules, templates, mambots or languages that extend your Joomla installation. These elements can already be bundled into the core or they can be third party elements.

    Frontend: The Frontend is the Web site that your visitors (or members) will see. 

    Frontpage:  The Frontpage is a built-in Component which shows all the published content items from your site marked with the parameter 'Show on Frontpage'. You may configure the display of the Frontpage by editing the menu item associated with it, usually the 'Home' menu item. The ordering of your Frontpage Content Items are done using Frontpage Manager component.

    Global Checkin: When an item is 'Checked Out' and it is not saved or cancelled correctly (e.g. in case of a connection error), it will remain 'Checked Out', and thus uneditable for all other users. Performing a 'Global Checkin' will make those items available again.  This option is only available in the backend admin in the System menu item.

    Intro Text: When creating or editing a Content Item, the Intro Text usually contains a brief introduction. This introduction will be appended by the content in the Main Text box if you have entered content there. When the Content Item is set to show on the Front Page, a 'Read More' link will be shown, pointing to the full Content Item.  Intro Text and Main Text only are used in Content Items in the Section/Category hierarchy but not in Static Content Items.

    Item:
    An Item is a discrete piece of content within the Joomla hierarchy. An item can be an article, a content category, a menu item or a link.

    Main Text: When creating or editing a Content Item, the Main Text box contains the text you don't want to show on the Front Page.  It shows up after clicking the 'Read On' link in the Frontend of your site.

    Member: A member is a general term for someone who is part of the Joomla community.  It comes from a play on words, "member".

    Joomla:
     Joomla! is one of the finest Open Source Web Content Management Systems.

    Joomla Administrator: The Joomla Administrator is an application for administering your Joomla Web site directly on the server. It is sometimes also referred to as any of the Administrator, Backend, Admin Section, Administration Section, or the Control Panel.

    Joomla User (or/and User Group):  Joomla Users can be arranged in several groups with different levels of access control. User groups with access to the Frontend include Anonymous, Registered, Author, Editor and Publisher. There are also three groups with access to the Backend: Manager, Administrator and Super Administrator.

    Mambots:  A Mambot is a small, task-oriented function that intercepts content before it is displayed and manipulates it in some way. Joomla provides a number of Mambots in the core distribution.  Some examples are such are WYSIWYG editors, 3rd party component and module searchers, etc.

    Media Files: Media files such as .gif, .jpg, .png or .bmp files can be used in Content Items and are organised via the Media Manager.  Media files can be included in Content Items via Image tab on Edit Content Item pages, WYSIWYG editors' include media managers, 3rd party components, etc.

    Modules:
    Modules extend the capabilities of Joomla giving the software new functionality.Modules are small content items that can be displayed anywhere that your template allows it to be displayed. Modules are very easy to install in the Admin Section. Joomla modules may include: Main Menu, Top menu, Template Chooser, Polls, Newsflash, Hit Counter, etc. Members of the Joomla Community are producing third party Joomla modules on a continuous basis. They are available on http://developer.joomla.org for free download.

    Newsfeeds: Newsfeeds are a way of sharing content between different sites.  The types of Newsfeeds are currently available to display and produce (RSS versions, Atom, etc). The code is produced by the DOMIT parser.   This sharing method is meant for creating a news introduction in the way the provider wants it and it normally has a link to the provider's web site. Joomla offers you the possibility to both offer and display Newsfeeds.

    Open Source (OS):
     Open Source is a general term describing several parts of the Free Software Licence movement.   All the source code for Joomla is open source and is readable and changeable by any user.

    patTemplate: patTemplate is a system within Joomla to help create Joomla site Templates.
     
    Parameters:  Parameters can be used to alter the presentation of specific items, menu's or modules.

    Preview: The 'Preview' icon enables a popup window for you to see from the Backend what your content item would look like in the Frontend of your site.

    Projects: Projects  can be components, modules, templates, mambots and scripts that are freely set up and managed by their authors at /http://developer.joomla.org.

    Publish(ed):
     This defines the state of various parts of your Joomla installation. For example, installed Elements will only display on your Web site if they're published. Content items can be managed with a start and end date of publishing.

    Record:  A Record is a generic term for a 'row' in the database, just like a card. A record very often represents a 'piece' of content. The dynamic functionality and much of the content of Joomla relies on a database in order to function.

    Static Content Item:  A Static Content Item is a content item that does not belong to the Sections/Category/Content Item heirarchy.

    Section:  A Section is a collection of Categories that are related in some way. It is part of the Section/Category/Content Item heirarchy.   A section might be called 'News', categories in this section might be 'Today's News', 'Yesterdays News' and 'Other News'.  

    Site:  The Joomla Site is the Web site displayed to your visitors or users, containing all the content added in the Admin Section. It is sometime referred to as the 'Frontend'.

    Templates: Templates define the lay-out of your Joomla Web site. You can assign different templates to various pages of your Web site.  Templates can be created for the Frontend of your site called Site Template as well as the Backend called Administrator Templates.

    Title: This is the name which is displayed above a Content Item.

    Title Alias: This is an alternative title for Content Items. This field is not used by the Joomla core itself, but SEF scripts and dynamic title/meta scripts use it and it may have a future use.

    Workspace:  The Workspace is the section of the Joomla Admin Section where the business of configuration and content publishing takes place. The workspace dynamically updates as you select tools and menu options. The workspace can include: HTML editor, article and link management and several other features.

    Wrapper: A Wrapper is a built-in Joomla component which can display any URL in your web site. This can be used to wrap an application like a forum or a gallery, individual pages as well as an entire web site. An alternative name is an Iframe.
     


    elracodelangela/administrator/help/en-GB/screen.menumanager.new.html0000755000176700017710000000142111061563436026362 0ustar essawireessawire Menu Manager - New/Edit

    Menu Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.users.edit.html0000755000176700017710000000143411061563436025364 0ustar essawireessawire User Manager - Add or Edit Users

    User Manager - Add or Edit Users

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.polls.edit.html0000755000176700017710000000141411061563436025352 0ustar essawireessawire Poll Manager - New/Edit

    Poll Manager - New/Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.messages.edit.html0000755000176700017710000000141711061563437026034 0ustar essawireessawire Private Messages - Edit

    Private Messages - Edit

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.weblink.html0000755000176700017710000000137111061563436024732 0ustar essawireessawire Web Link Manager

    Web Link Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/screen.newsfeeds.categories.html0000755000176700017710000000143611061563436027410 0ustar essawireessawire News Feeds Category Manager

    News Feeds Category Manager

    The local copy of this help file is no longer maintained. Please use the online version.

    elracodelangela/administrator/help/en-GB/joomla.credits.html0000755000176700017710000000631511061563437024742 0ustar essawireessawire Credits

    Contributions


    Project Director

    • Andrew Eddie:

    Coding & Design Team

    [ Development Sub-Team ]

    • Johan Janssens: Development Team Leader
    • Andrew Eddie:
    • Emir Sakic:
    • Alex Kempkens:
    • Andy Miller:
    • Mitch Pirtle:
    • Tim Broeker:
    • Rey Gigataras:
    • Arno Zijlstra:
    • Levis Bisson:
    • Ric Allinson:
    • Mateusz Krzeszowiec:
    • Sam Moffatt:
    • Louis Landry:
    • David Gal:

    [ Stability Sub-Team ]

    • Rey Gigataras: Stability Team Leader
    • Andy Stewart:
    • Robin Muilwijk:

    Quality Testing Group

    • Robin Muilwijk: Team Co-Leader

    Documentation Team

    • Michelle Bisson: Team Co-Leader
    • Shayne Bartlett: Team Co-Leader
    • Trijnie Wanders: Interface Leader

    Translation Team

    • David Gal: Team Leader

    Public Relations Team

    • Peter Russell: Team Leader
    • Brian Teeman:

    Forum Management Team

    • Brad Baker: Forum Manager

    Standards, Usability & Accesibility Team

    • Andy Miller: Team Leader


    Former Contributors

    • Robert Castley: Former Project Leader
    • Phil Taylor
    • Ron Bakker
    • Steen Rabol
    • James Logan
    • Peter Koch
    • Nick Designer:
    • Jean-Marie Simonet
    • Nicolas Steenhout
    elracodelangela/administrator/help/helpsites-15.xml0000755000176700017710000000026111061563435023204 0ustar essawireessawire English (GB) - help.joomla.org elracodelangela/administrator/help/index.html0000755000176700017710000000005411061563437022236 0ustar essawireessawireelracodelangela/configuration.php0000444000176700017710000000306611074467640020015 0ustar essawireessawireelracodelangela/modules/0000755000176700017710000000000011061563614016074 5ustar essawireessawireelracodelangela/modules/mod_stats/0000755000176700017710000000000011061563616020073 5ustar essawireessawireelracodelangela/modules/mod_stats/helper.php0000755000176700017710000000546411061563513022073 0ustar essawireessawireget( 'serverinfo' ); $siteinfo = $params->get( 'siteinfo' ); $counter = $params->get( 'counter' ); $increase = $params->get( 'increase' ); $i = 0; if ( $serverinfo ) { $rows[$i]->title = JText::_( 'OS' ); $rows[$i]->data = substr( php_uname(), 0, 7 ); $i++; $rows[$i]->title = JText::_( 'PHP' ); $rows[$i]->data = phpversion(); $i++; $rows[$i]->title = JText::_( 'MySQL' ); $rows[$i]->data = $db->getVersion(); $i++; $rows[$i]->title = JText::_( 'Time' ); $rows[$i]->data = date( 'H:i', time() + ( $mainframe->getCfg('offset') * 60 * 60 ) ); $i++; $rows[$i]->title = JText::_( 'Caching' ); $rows[$i]->data = $mainframe->getCfg('caching') ? JText::_( 'Enabled' ):JText::_( 'Disabled' ); $i++; $rows[$i]->title = JText::_( 'GZip' ); $rows[$i]->data = $mainframe->getCfg('gzip') ? JText::_( 'Enabled' ):JText::_( 'Disabled' ); $i++; } if ( $siteinfo ) { $query = 'SELECT COUNT( id ) AS count_users' . ' FROM #__users' ; $db->setQuery( $query ); $members = $db->loadResult(); $query = 'SELECT COUNT( id ) AS count_items' . ' FROM #__content' . ' WHERE state = "1"' ; $db->setQuery( $query ); $items = $db->loadResult(); $query = 'SELECT COUNT( id ) AS count_links' . ' FROM #__weblinks' . ' WHERE published = "1"' ; $db->setQuery( $query ); $links = $db->loadResult(); if ( $members ) { $rows[$i]->title = JText::_( 'Members' ); $rows[$i]->data = $members; $i++; } if ( $items ) { $rows[$i]->title = JText::_( 'Content' ); $rows[$i]->data = $items; $i++; } if ( $links ) { $rows[$i]->title = JText::_( 'Web Links' ); $rows[$i]->data = $links; $i++; } } if( $counter ) { $query = 'SELECT SUM( hits ) AS count_hits' . ' FROM #__content' . ' WHERE state = "1"' ; $db->setQuery( $query ); $hits = $db->loadResult(); if ( $hits ) { $rows[$i]->title = JText::_( 'Content View Hits' ); $rows[$i]->data = $hits + $increase; $i++; } } return $rows; } } elracodelangela/modules/mod_stats/index.html0000755000176700017710000000005411061563513022066 0ustar essawireessawireelracodelangela/modules/mod_stats/mod_stats.php0000755000176700017710000000156711061563513022611 0ustar essawireessawireget( 'serverinfo' ); $siteinfo = $params->get( 'siteinfo' ); $list = modStatsHelper::getList($params); require(JModuleHelper::getLayoutPath('mod_stats')); elracodelangela/modules/mod_stats/tmpl/0000755000176700017710000000000011061563616021047 5ustar essawireessawireelracodelangela/modules/mod_stats/tmpl/index.html0000755000176700017710000000005411061563513023042 0ustar essawireessawireelracodelangela/modules/mod_stats/tmpl/default.php0000755000176700017710000000032211061563513023200 0ustar essawireessawire title ?> : data ?>
    elracodelangela/modules/mod_stats/mod_stats.xml0000755000176700017710000000346611061563513022622 0ustar essawireessawire Statistics Joomla! Project July 2004 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCSTATISTICS mod_stats.php elracodelangela/modules/mod_search/0000755000176700017710000000000011061563616020202 5ustar essawireessawireelracodelangela/modules/mod_search/helper.php0000755000176700017710000000144311061563512022172 0ustar essawireessawire Search Joomla! Project July 2004 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.0.0 This module will display a search box mod_search.php elracodelangela/modules/mod_search/index.html0000755000176700017710000000005411061563512022174 0ustar essawireessawireelracodelangela/modules/mod_search/mod_search.php0000755000176700017710000000243111061563512023015 0ustar essawireessawireget('button', ''); $imagebutton = $params->get('imagebutton', ''); $button_pos = $params->get('button_pos', 'left'); $button_text = $params->get('button_text', JText::_('Search')); $width = intval($params->get('width', 20)); $maxlength = $width > 20 ? $width : 20; $text = $params->get('text', JText::_('search...')); $set_Itemid = intval($params->get('set_itemid', 0)); $moduleclass_sfx = $params->get('moduleclass_sfx', ''); if ($imagebutton) { $img = modSearchHelper::getSearchImage( $button_text ); } require(JModuleHelper::getLayoutPath('mod_search')); elracodelangela/modules/mod_search/tmpl/0000755000176700017710000000000011061563616021156 5ustar essawireessawireelracodelangela/modules/mod_search/tmpl/index.html0000755000176700017710000000005411061563512023150 0ustar essawireessawireelracodelangela/modules/mod_search/tmpl/default.php0000755000176700017710000000270311061563512023313 0ustar essawireessawire
    '; if ($button) : if ($imagebutton) : $button = ''; else : $button = ''; endif; endif; switch ($button_pos) : case 'top' : $button = $button.'
    '; $output = $button.$output; break; case 'bottom' : $button = '
    '.$button; $output = $output.$button; break; case 'right' : $output = $output.$button; break; case 'left' : default : $output = $button.$output; break; endswitch; echo $output; ?>
    elracodelangela/modules/mod_sections/0000755000176700017710000000000011061563615020563 5ustar essawireessawireelracodelangela/modules/mod_sections/mod_sections.xml0000755000176700017710000000276311061563511024001 0ustar essawireessawire Sections Joomla! Project July 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCSECTIONS mod_sections.php elracodelangela/modules/mod_sections/helper.php0000755000176700017710000000346311061563511022557 0ustar essawireessawireget('count', 20)); $contentConfig = &JComponentHelper::getParams( 'com_content' ); $access = !$contentConfig->get('shownoauth'); $gid = $user->get('aid', 0); $now = date('Y-m-d H:i:s', time() + $mainframe->getCfg('offset') * 60 * 60); $nullDate = $db->getNullDate(); $query = 'SELECT a.id AS id, a.title AS title, COUNT(b.id) as cnt' . ' FROM #__sections as a' . ' LEFT JOIN #__content as b ON a.id = b.sectionid' . ($access ? ' AND b.access <= '.(int) $gid : '') . ' AND ( b.publish_up = '.$db->Quote($nullDate).' OR b.publish_up <= '.$db->Quote($now).' )' . ' AND ( b.publish_down = '.$db->Quote($nullDate).' OR b.publish_down >= '.$db->Quote($now).' )' . ' WHERE a.scope = "content"' . ' AND a.published = 1' . ($access ? ' AND a.access <= '.(int) $gid : '') . ' GROUP BY a.id '. ' HAVING COUNT( b.id ) > 0' . ' ORDER BY a.ordering'; $db->setQuery($query, 0, $count); $rows = $db->loadObjectList(); return $rows; } } elracodelangela/modules/mod_sections/index.html0000755000176700017710000000005411061563511022555 0ustar essawireessawireelracodelangela/modules/mod_sections/mod_sections.php0000755000176700017710000000151111061563511023756 0ustar essawireessawireelracodelangela/modules/mod_sections/tmpl/default.php0000755000176700017710000000051611061563511023674 0ustar essawireessawire elracodelangela/modules/mod_mainmenu/0000755000176700017710000000000011061563616020546 5ustar essawireessawireelracodelangela/modules/mod_mainmenu/helper.php0000755000176700017710000002305411061563512022540 0ustar essawireessawiregetItems('menutype', $params->get('menutype')); $maxdepth = $params->get('maxdepth',10); // Build Menu Tree root down (orphan proof - child might have lower id than parent) $user =& JFactory::getUser(); $ids = array(); $ids[0] = true; $last = null; $unresolved = array(); // pop the first item until the array is empty if there is any item if ( is_array($rows)) { while (count($rows) && !is_null($row = array_shift($rows))) { if (array_key_exists($row->parent, $ids)) { $row->ionly = $params->get('menu_images_link'); $menu->addNode($params, $row); // record loaded parents $ids[$row->id] = true; } else { // no parent yet so push item to back of list // SAM: But if the key isn't in the list and we dont _add_ this is infinite, so check the unresolved queue if(!array_key_exists($row->id, $unresolved) || $unresolved[$row->id] < $maxdepth) { array_push($rows, $row); // so let us do max $maxdepth passes // TODO: Put a time check in this loop in case we get too close to the PHP timeout if(!isset($unresolved[$row->id])) $unresolved[$row->id] = 1; else $unresolved[$row->id]++; } } } } return $menu->toXML(); } function &getXML($type, &$params, $decorator) { static $xmls; if (!isset($xmls[$type])) { $cache =& JFactory::getCache('mod_mainmenu'); $string = $cache->call(array('modMainMenuHelper', 'buildXML'), $params); $xmls[$type] = $string; } // Get document $xml = JFactory::getXMLParser('Simple'); $xml->loadString($xmls[$type]); $doc = &$xml->document; $menu = &JSite::getMenu(); $active = $menu->getActive(); $start = $params->get('startLevel'); $end = $params->get('endLevel'); $sChild = $params->get('showAllChildren'); $path = array(); // Get subtree if ($start) { $found = false; $root = true; if(!isset($active)){ $doc = false; } else{ $path = $active->tree; for ($i=0,$n=count($path);$i<$n;$i++) { foreach ($doc->children() as $child) { if ($child->attributes('id') == $path[$i]) { $doc = &$child->ul[0]; $root = false; break; } } if ($i == $start-1) { $found = true; break; } } if ((!is_a($doc, 'JSimpleXMLElement')) || (!$found) || ($root)) { $doc = false; } } } if ($doc && is_callable($decorator)) { $doc->map($decorator, array('end'=>$end, 'children'=>$sChild)); } return $doc; } function render(&$params, $callback) { switch ( $params->get( 'menu_style', 'list' ) ) { case 'list_flat' : // Include the legacy library file require_once(dirname(__FILE__).DS.'legacy.php'); mosShowHFMenu($params, 1); break; case 'horiz_flat' : // Include the legacy library file require_once(dirname(__FILE__).DS.'legacy.php'); mosShowHFMenu($params, 0); break; case 'vert_indent' : // Include the legacy library file require_once(dirname(__FILE__).DS.'legacy.php'); mosShowVIMenu($params); break; default : // Include the new menu class $xml = modMainMenuHelper::getXML($params->get('menutype'), $params, $callback); if ($xml) { $class = $params->get('class_sfx'); $xml->addAttribute('class', 'menu'.$class); if ($tagId = $params->get('tag_id')) { $xml->addAttribute('id', $tagId); } $result = JFilterOutput::ampReplace($xml->toString((bool)$params->get('show_whitespace'))); $result = str_replace(array('
      ', '
        '), '', $result); echo $result; } break; } } } /** * Main Menu Tree Class. * * @package Joomla * @subpackage Menus * @since 1.5 */ class JMenuTree extends JTree { /** * Node/Id Hash for quickly handling node additions to the tree. */ var $_nodeHash = array(); /** * Menu parameters */ var $_params = null; /** * Menu parameters */ var $_buffer = null; function __construct(&$params) { $this->_params =& $params; $this->_root = new JMenuNode(0, 'ROOT'); $this->_nodeHash[0] =& $this->_root; $this->_current =& $this->_root; } function addNode(&$params, $item) { // Get menu item data $data = $this->_getItemData($params, $item); // Create the node and add it $node = new JMenuNode($item->id, $item->name, $item->access, $data); if (isset($item->mid)) { $nid = $item->mid; } else { $nid = $item->id; } $this->_nodeHash[$nid] =& $node; $this->_current =& $this->_nodeHash[$item->parent]; if ($this->_current) { $this->addChild($node, true); } else { // sanity check JError::raiseError( 500, 'Orphan Error. Could not find parent for Item '.$item->id ); } } function toXML() { // Initialize variables $this->_current =& $this->_root; // Recurse through children if they exist while ($this->_current->hasChildren()) { $this->_buffer .= '
          '; foreach ($this->_current->getChildren() as $child) { $this->_current = & $child; $this->_getLevelXML(0); } $this->_buffer .= '
        '; } if($this->_buffer == '') { $this->_buffer = '
          '; } return $this->_buffer; } function _getLevelXML($depth) { $depth++; // Start the item $this->_buffer .= '
        • '; // Append item data $this->_buffer .= $this->_current->link; // Recurse through item's children if they exist while ($this->_current->hasChildren()) { $this->_buffer .= '
            '; foreach ($this->_current->getChildren() as $child) { $this->_current = & $child; $this->_getLevelXML($depth); } $this->_buffer .= '
          '; } // Finish the item $this->_buffer .= '
        • '; } function _getItemData(&$params, $item) { $data = null; // Menu Link is a special type that is a link to another item if ($item->type == 'menulink') { $menu = &JSite::getMenu(); if ($newItem = $menu->getItem($item->query['Itemid'])) { $tmp = clone($newItem); $tmp->name = 'name.']]>'; $tmp->mid = $item->id; $tmp->parent = $item->parent; } else { return false; } } else { $tmp = clone($item); $tmp->name = 'name.']]>'; } $iParams = new JParameter($tmp->params); if ($params->get('menu_images') && $iParams->get('menu_image') && $iParams->get('menu_image') != -1) { $image = ''.$item->alias.''; if($tmp->ionly){ $tmp->name = null; } } else { $image = null; } switch ($tmp->type) { case 'separator' : return ''.$image.$tmp->name.''; break; case 'url' : if ((strpos($tmp->link, 'index.php?') === 0) && (strpos($tmp->link, 'Itemid=') === false)) { $tmp->url = $tmp->link.'&Itemid='.$tmp->id; } else { $tmp->url = $tmp->link; } break; default : $router = JSite::getRouter(); $tmp->url = $router->getMode() == JROUTER_MODE_SEF ? 'index.php?Itemid='.$tmp->id : $tmp->link.'&Itemid='.$tmp->id; break; } // Print a link if it exists if ($tmp->url != null) { // Handle SSL links $iSecure = $iParams->def('secure', 0); if ($tmp->home == 1) { $tmp->url = JURI::base(); } elseif (strcasecmp(substr($tmp->url, 0, 4), 'http') && (strpos($tmp->link, 'index.php?') !== false)) { $tmp->url = JRoute::_($tmp->url, true, $iSecure); } else { $tmp->url = str_replace('&', '&', $tmp->url); } switch ($tmp->browserNav) { default: case 0: // _top $data = ''.$image.$tmp->name.''; break; case 1: // _blank $data = ''.$image.$tmp->name.''; break; case 2: // window.open $attribs = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'.$this->_params->get('window_open'); // hrm...this is a bit dickey $link = str_replace('index.php', 'index2.php', $tmp->url); $data = ''.$image.$tmp->name.''; break; } } else { $data = ''.$image.$tmp->name.''; } return $data; } } /** * Main Menu Tree Node Class. * * @package Joomla * @subpackage Menus * @since 1.5 */ class JMenuNode extends JNode { /** * Node Title */ var $title = null; /** * Node Link */ var $link = null; /** * CSS Class for node */ var $class = null; function __construct($id, $title, $access = null, $link = null, $class = null) { $this->id = $id; $this->title = $title; $this->access = $access; $this->link = $link; $this->class = $class; } } elracodelangela/modules/mod_mainmenu/mod_mainmenu.php0000755000176700017710000000276611061563512023740 0ustar essawireessawiredef('menutype', 'mainmenu'); $params->def('class_sfx', ''); $params->def('menu_images', 0); $params->def('menu_images_align', 0); $params->def('expand_menu', 0); $params->def('activate_parent', 0); $params->def('indent_image', 0); $params->def('indent_image1', 'indent1.png'); $params->def('indent_image2', 'indent2.png'); $params->def('indent_image3', 'indent3.png'); $params->def('indent_image4', 'indent4.png'); $params->def('indent_image5', 'indent5.png'); $params->def('indent_image6', 'indent.png'); $params->def('spacer', ''); $params->def('end_spacer', ''); $params->def('full_active_id', 0); // Added in 1.5 $params->def('startLevel', 0); $params->def('endLevel', 0); $params->def('showAllChildren', 0); require(JModuleHelper::getLayoutPath('mod_mainmenu'));elracodelangela/modules/mod_mainmenu/legacy.php0000755000176700017710000002372211061563512022527 0ustar essawireessawiretype == 'menulink') { $menu = &JSite::getMenu(); if ($tmp = $menu->getItem($mitem->query['Itemid'])) { $name = $mitem->name; $mid = $mitem->id; $parent = $mitem->parent; $mitem = clone($tmp); $mitem->name = $name; $mitem->mid = $mid; $mitem->parent = $parent; } else { return; } } switch ($mitem->type) { case 'separator' : $mitem->browserNav = 3; break; case 'url' : if (eregi('index.php\?', $mitem->link)) { if (!eregi('Itemid=', $mitem->link)) { $mitem->link .= '&Itemid='.$mitem->id; } } break; default : $mitem->link = 'index.php?Itemid='.$mitem->id; break; } // Active Menu highlighting $current_itemid = intval( $Itemid ); if (!$current_itemid) { $id = ''; } else { if ($current_itemid == $mitem->id) { $id = 'id="active_menu' . $params->get('class_sfx') . '"'; } else { if ($params->get('activate_parent') && isset ($open) && in_array($mitem->id, $open)) { $id = 'id="active_menu' . $params->get('class_sfx') . '"'; } else { if ($mitem->type == 'url' && ItemidContained($mitem->link, $current_itemid)) { $id = 'id="active_menu' . $params->get('class_sfx') . '"'; } else { $id = ''; } } } } if ($params->get('full_active_id')) { // support for `active_menu` of 'Link - Url' if link is relative if ($id == '' && $mitem->type == 'url' && strpos($mitem->link, 'http') === false) { $url = array(); if(strpos($mitem->link, '&') !== false) { $mitem->link = str_replace('&','&',$mitem->link); } parse_str($mitem->link, $url); if (isset ($url['Itemid'])) { if ($url['Itemid'] == $current_itemid) { $id = 'id="active_menu' . $params->get('class_sfx') . '"'; } } } } // replace & with amp; for xhtml compliance $menu_params = new stdClass(); $menu_params = new JParameter($mitem->params); $menu_secure = $menu_params->def('secure', 0); if (strcasecmp(substr($mitem->link, 0, 4), 'http')) { $mitem->url = JRoute::_($mitem->link, true, $menu_secure); } else { $mitem->url = $mitem->link; } $menuclass = 'mainlevel' . $params->get('class_sfx'); if ($level > 0) { $menuclass = 'sublevel' . $params->get('class_sfx'); } // replace & with amp; for xhtml compliance // remove slashes from excaped characters $mitem->name = stripslashes(htmlspecialchars($mitem->name)); switch ($mitem->browserNav) { // cases are slightly different case 1 : // open in a new window $txt = '' . $mitem->name . ''; break; case 2 : // open in a popup window $txt = "url . "', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" class=\"$menuclass\" " . $id . ">" . $mitem->name . "\n"; break; case 3 : // don't link it $txt = '' . $mitem->name . ''; break; default : // formerly case 2 // open in parent window $txt = '' . $mitem->name . ''; break; } if ($params->get('menu_images')) { $menu_params = new stdClass(); $menu_params = new JParameter($mitem->params); $menu_image = $menu_params->def('menu_image', -1); if (($menu_image <> '-1') && $menu_image) { $image = '' . $mitem->name . ''; if ($params->get('menu_images_align')) { $txt = $txt . ' ' . $image; } else { $txt = $image . ' ' . $txt; } } } return $txt; } /** * Vertically Indented Menu */ function mosShowVIMenu(& $params) { global $mainframe, $Itemid; $template = $mainframe->getTemplate(); $menu =& JSite::getMenu(); $user =& JFactory::getUser(); // indent icons switch ($params->get('indent_image')) { case '1' : { // Default images $imgpath = JURI::base(true).'/images/M_images'; for ($i = 1; $i < 7; $i++) { $img[$i] = ''; } } break; case '2' : { // Use Params $imgpath = JURI::base(true).'/images/M_images'; for ($i = 1; $i < 7; $i++) { if ($params->get('indent_image' . $i) == '-1') { $img[$i] = NULL; } else { $img[$i] = ''; } } } break; case '3' : { // None for ($i = 1; $i < 7; $i++) { $img[$i] = NULL; } } break; default : { // Template $imgpath = JURI::base(true).'/templates/' . $template . '/images'; for ($i = 1; $i < 7; $i++) { $img[$i] = ''; } } } $indents = array ( // block prefix / item prefix / item suffix / block suffix array ( '', '', '
          ', '
          ' ), array ( '', '
          ' . $img[1], '
          ', '' ), array ( '', '
          ' . $img[2], '
          ', '' ), array ( '', '
          ' . $img[3], '
          ', '' ), array ( '', '
          ' . $img[4], '
          ', '' ), array ( '', '
          ' . $img[5], '
          ', '' ), array ( '', '
          ' . $img[6], '
          ', '' ), ); // establish the hierarchy of the menu $children = array (); //get menu items $rows = $menu->getItems('menutype', $params->get('menutype')); // first pass - collect children $cacheIndex = array(); if(is_array($rows) && count($rows)) { foreach ($rows as $index => $v) { if ($v->access <= $user->get('aid')) { $pt = $v->parent; $list = @ $children[$pt] ? $children[$pt] : array (); array_push($list, $v); $children[$pt] = $list; } $cacheIndex[$v->id] = $index; } } // second pass - collect 'open' menus $open = array ( $Itemid ); $count = 20; // maximum levels - to prevent runaway loop $id = $Itemid; while (-- $count) { if (isset($cacheIndex[$id])) { $index = $cacheIndex[$id]; if (isset ($rows[$index]) && $rows[$index]->parent > 0) { $id = $rows[$index]->parent; $open[] = $id; } else { break; } } } mosRecurseVIMenu(0, 0, $children, $open, $indents, $params); } /** * Utility function to recursively work through a vertically indented * hierarchial menu */ function mosRecurseVIMenu($id, $level, & $children, & $open, & $indents, & $params) { if (@ $children[$id]) { $n = min($level, count($indents) - 1); echo "\n" . $indents[$n][0]; foreach ($children[$id] as $row) { echo "\n" . $indents[$n][1]; echo mosGetMenuLink($row, $level, $params, $open); // show menu with menu expanded - submenus visible if (!$params->get('expand_menu')) { if (in_array($row->id, $open)) { mosRecurseVIMenu($row->id, $level +1, $children, $open, $indents, $params); } } else { mosRecurseVIMenu($row->id, $level +1, $children, $open, $indents, $params); } echo $indents[$n][2]; } echo "\n" . $indents[$n][3]; } } /** * Draws a horizontal 'flat' style menu (very simple case) */ function mosShowHFMenu(& $params, $style = 0) { $menu = & JSite::getMenu(); $user = & JFactory::getUser(); //get menu items $rows = $menu->getItems('menutype', $params->get('menutype')); $links = array (); if(is_array($rows) && count($rows)) { foreach ($rows as $row) { if ($row->access <= $user->get('aid', 0)) { $links[] = mosGetMenuLink($row, 0, $params); } } } $menuclass = 'mainlevel' . $params->get('class_sfx'); $lang =& JFactory::getLanguage(); if (count($links)) { switch ($style) { case 1 : echo '
            '; foreach ($links as $link) { echo '
          • ' . $link . '
          • '; } echo '
          '; break; default : $spacer_start = $params->get('spacer'); $spacer_end = $params->get('end_spacer'); echo ''; echo ''; echo ''; echo ''; echo '
          '; if ($spacer_end) { echo ' ' . $spacer_end . ' '; } if ($spacer_start) { $html = ' ' . $spacer_start . ' '; echo implode($html, $links); } else { echo implode('', $links); } if ($spacer_end) { echo ' ' . $spacer_end . ' '; } echo '
          '; break; } } } /** * Search for Itemid in link */ function ItemidContained($link, $Itemid) { $link = str_replace('&', '&', $link); $temp = explode("&", $link); $linkItemid = ""; foreach ($temp as $value) { $temp2 = explode("=", $value); if ($temp2[0] == "Itemid") { $linkItemid = $temp2[1]; break; } } if ($linkItemid != "" && $linkItemid == $Itemid) { return true; } else { return false; } } elracodelangela/modules/mod_mainmenu/index.html0000755000176700017710000000005411061563512022540 0ustar essawireessawireelracodelangela/modules/mod_mainmenu/tmpl/0000755000176700017710000000000011061563616021522 5ustar essawireessawireelracodelangela/modules/mod_mainmenu/tmpl/index.html0000755000176700017710000000005411061563512023514 0ustar essawireessawireelracodelangela/modules/mod_mainmenu/tmpl/default.php0000755000176700017710000000352111061563512023656 0ustar essawireessawiregetActive(); $path = isset($active) ? array_reverse($active->tree) : null; if (($args['end']) && ($node->attributes('level') >= $args['end'])) { $children = $node->children(); foreach ($node->children() as $child) { if ($child->name() == 'ul') { $node->removeChild($child); } } } if ($node->name() == 'ul') { foreach ($node->children() as $child) { if ($child->attributes('access') > $user->get('aid', 0)) { $node->removeChild($child); } } } if (($node->name() == 'li') && isset($node->ul)) { $node->addAttribute('class', 'parent'); } if (isset($path) && in_array($node->attributes('id'), $path)) { if ($node->attributes('class')) { $node->addAttribute('class', $node->attributes('class').' active'); } else { $node->addAttribute('class', 'active'); } } else { if (isset($args['children']) && !$args['children']) { $children = $node->children(); foreach ($node->children() as $child) { if ($child->name() == 'ul') { $node->removeChild($child); } } } } if (($node->name() == 'li') && ($id = $node->attributes('id'))) { if ($node->attributes('class')) { $node->addAttribute('class', $node->attributes('class').' item'.$id); } else { $node->addAttribute('class', 'item'.$id); } } if (isset($path) && $node->attributes('id') == $path[0]) { $node->addAttribute('id', 'current'); } else { $node->removeAttribute('id'); } $node->removeAttribute('level'); $node->removeAttribute('access'); } define('modMainMenuXMLCallbackDefined', true); } modMainMenuHelper::render($params, 'modMainMenuXMLCallback'); elracodelangela/modules/mod_mainmenu/mod_mainmenu.xml0000755000176700017710000001306211061563512023740 0ustar essawireessawire Menu Joomla! Project July 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Displays a menu. mod_mainmenu.php elracodelangela/modules/mod_latestnews/0000755000176700017710000000000011061563615021125 5ustar essawireessawireelracodelangela/modules/mod_latestnews/mod_latestnews.xml0000755000176700017710000000443111061563511024677 0ustar essawireessawire Latest News Joomla! Project July 2004 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCLATESTNEWS mod_latestnews.php elracodelangela/modules/mod_latestnews/helper.php0000755000176700017710000000721011061563511023113 0ustar essawireessawireget('id'); $count = (int) $params->get('count', 5); $catid = trim( $params->get('catid') ); $secid = trim( $params->get('secid') ); $show_front = $params->get('show_front', 1); $aid = $user->get('aid', 0); $contentConfig = &JComponentHelper::getParams( 'com_content' ); $access = !$contentConfig->get('show_noauth'); $nullDate = $db->getNullDate(); $date =& JFactory::getDate(); $now = $date->toMySQL(); $where = 'a.state = 1' . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )' . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )' ; // User Filter switch ($params->get( 'user_id' )) { case 'by_me': $where .= ' AND (created_by = ' . (int) $userId . ' OR modified_by = ' . (int) $userId . ')'; break; case 'not_me': $where .= ' AND (created_by <> ' . (int) $userId . ' AND modified_by <> ' . (int) $userId . ')'; break; } // Ordering switch ($params->get( 'ordering' )) { case 'm_dsc': $ordering = 'a.modified DESC, a.created DESC'; break; case 'c_dsc': default: $ordering = 'a.created DESC'; break; } if ($catid) { $ids = explode( ',', $catid ); JArrayHelper::toInteger( $ids ); $catCondition = ' AND (cc.id=' . implode( ' OR cc.id=', $ids ) . ')'; } if ($secid) { $ids = explode( ',', $secid ); JArrayHelper::toInteger( $ids ); $secCondition = ' AND (s.id=' . implode( ' OR s.id=', $ids ) . ')'; } // Content Items only $query = 'SELECT a.*, ' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'. ' FROM #__content AS a' . ($show_front == '0' ? ' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' : '') . ' INNER JOIN #__categories AS cc ON cc.id = a.catid' . ' INNER JOIN #__sections AS s ON s.id = a.sectionid' . ' WHERE '. $where .' AND s.id > 0' . ($access ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : ''). ($catid ? $catCondition : ''). ($secid ? $secCondition : ''). ($show_front == '0' ? ' AND f.content_id IS NULL ' : ''). ' AND s.published = 1' . ' AND cc.published = 1' . ' ORDER BY '. $ordering; $db->setQuery($query, 0, $count); $rows = $db->loadObjectList(); $i = 0; $lists = array(); foreach ( $rows as $row ) { if($row->access <= $aid) { $lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid)); } else { $lists[$i]->link = JRoute::_('index.php?option=com_user&view=login'); } $lists[$i]->text = htmlspecialchars( $row->title ); $i++; } return $lists; } } elracodelangela/modules/mod_latestnews/index.html0000755000176700017710000000005411061563511023117 0ustar essawireessawireelracodelangela/modules/mod_latestnews/tmpl/0000755000176700017710000000000011061563616022102 5ustar essawireessawireelracodelangela/modules/mod_latestnews/tmpl/index.html0000755000176700017710000000005411061563511024073 0ustar essawireessawireelracodelangela/modules/mod_latestnews/tmpl/default.php0000755000176700017710000000065211061563511024237 0ustar essawireessawire elracodelangela/modules/mod_latestnews/mod_latestnews.php0000755000176700017710000000145311061563511024667 0ustar essawireessawiretext = $item->introtext; $item->groups = ''; $item->readmore = (trim($item->fulltext) != ''); $item->metadesc = ''; $item->metakey = ''; $item->created = ''; $item->modified = ''; if ($params->get('readmore') || $params->get('link_titles')) { if ($params->get('intro_only')) { // Check to see if the user has access to view the full article if ($item->access <= $user->get('aid', 0)) { $item->linkOn = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid)); $item->linkText = JText::_('Read more text'); } else { $item->linkOn = JRoute::_('index.php?option=com_user&view=login'); $item->linkText = JText::_('Login To Read More'); } } } if (!$params->get('image')) { $item->text = preg_replace( '/]*>/', '', $item->text ); } $results = $mainframe->triggerEvent('onAfterDisplayTitle', array (&$item, &$params, 1)); $item->afterDisplayTitle = trim(implode("\n", $results)); $results = $mainframe->triggerEvent('onBeforeDisplayContent', array (&$item, &$params, 1)); $item->beforeDisplayContent = trim(implode("\n", $results)); require(JModuleHelper::getLayoutPath('mod_newsflash', '_item')); } function getList(&$params, &$access) { global $mainframe; $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $aid = $user->get('aid', 0); $catid = (int) $params->get('catid', 0); $items = (int) $params->get('items', 0); $contentConfig = &JComponentHelper::getParams( 'com_content' ); $noauth = !$contentConfig->get('show_noauth'); $date =& JFactory::getDate(); $now = $date->toMySQL(); $nullDate = $db->getNullDate(); // query to determine article count $query = 'SELECT a.*,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'. ' FROM #__content AS a' . ' INNER JOIN #__categories AS cc ON cc.id = a.catid' . ' INNER JOIN #__sections AS s ON s.id = a.sectionid' . ' WHERE a.state = 1 ' . ($noauth ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : ''). ' AND (a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' ) ' . ' AND (a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )' . ' AND cc.id = '. (int) $catid . ' AND cc.section = s.id' . ' AND cc.published = 1' . ' AND s.published = 1' . ' ORDER BY a.ordering'; $db->setQuery($query, 0, $items); $rows = $db->loadObjectList(); return $rows; } } elracodelangela/modules/mod_newsflash/index.html0000755000176700017710000000005411061563510022717 0ustar essawireessawireelracodelangela/modules/mod_newsflash/tmpl/0000755000176700017710000000000011061563615021702 5ustar essawireessawireelracodelangela/modules/mod_newsflash/tmpl/_item.php0000755000176700017710000000216211061563510023506 0ustar essawireessawire get('item_title')) : ?>
          get('link_titles') && $item->linkOn != '') : ?> title;?> title; ?>
          get('intro_only')) : echo $item->afterDisplayTitle; endif; ?> beforeDisplayContent; ?>
          text; ?>
          linkOn) && $item->readmore && $params->get('readmore')) : echo ''.$item->linkText.''; endif; ?>
          elracodelangela/modules/mod_newsflash/tmpl/vert.php0000755000176700017710000000051411061563510023370 0ustar essawireessawire 1 && (($i < $n - 1) || $params->get('showLastSeparator'))) : ?>   elracodelangela/modules/mod_newsflash/tmpl/index.html0000755000176700017710000000005411061563510023673 0ustar essawireessawireelracodelangela/modules/mod_newsflash/tmpl/default.php0000755000176700017710000000035711061563510024041 0ustar essawireessawire elracodelangela/modules/mod_newsflash/tmpl/horiz.php0000755000176700017710000000047111061563510023545 0ustar essawireessawire
          elracodelangela/modules/mod_newsflash/mod_newsflash.php0000755000176700017710000000244111061563510024266 0ustar essawireessawireset('intro_only', 1); $params->set('hide_author', 1); $params->set('hide_createdate', 0); $params->set('hide_modifydate', 1); // Disable edit ability icon $access = new stdClass(); $access->canEdit = 0; $access->canEditOwn = 0; $access->canPublish = 0; $list = modNewsFlashHelper::getList($params, $access); // check if any results returned $items = count($list); if (!$items) { return; } $layout = $params->get('layout', 'default'); $layout = JFilterInput::clean($layout, 'word'); $path = JModuleHelper::getLayoutPath('mod_newsflash', $layout); if (file_exists($path)) { require($path); } elracodelangela/modules/mod_newsflash/mod_newsflash.xml0000755000176700017710000000507211061563510024302 0ustar essawireessawire Newsflash Joomla! Project July 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCNEWSFLASH mod_newsflash.php elracodelangela/modules/mod_custom/0000755000176700017710000000000011061563615020246 5ustar essawireessawireelracodelangela/modules/mod_custom/mod_custom.xml0000755000176700017710000000122611061563510023137 0ustar essawireessawire Custom HTML Joomla! Project July 2004 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCMODCUSTOM elracodelangela/modules/mod_custom/index.html0000755000176700017710000000005411061563510022237 0ustar essawireessawireelracodelangela/modules/mod_login/0000755000176700017710000000000011061563616020045 5ustar essawireessawireelracodelangela/modules/mod_login/helper.php0000755000176700017710000000203211061563512022030 0ustar essawireessawireget($type)) { $menu =& JSite::getMenu(); $item = $menu->getItem($itemid); $url = $item->link; } else { // Redirect to login $uri = JFactory::getURI(); $url = $uri->toString(); } return base64_encode($url); } function getType() { $user = & JFactory::getUser(); return (!$user->get('guest')) ? 'logout' : 'login'; } } elracodelangela/modules/mod_login/mod_login.xml0000755000176700017710000000403011061563512022531 0ustar essawireessawire Login Joomla! Project July 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCLOGINFORM mod_login.php elracodelangela/modules/mod_login/mod_login.php0000755000176700017710000000161411061563512022525 0ustar essawireessawiredef('greeting', 1); $type = modLoginHelper::getType(); $return = modLoginHelper::getReturnURL($params, $type); $user =& JFactory::getUser(); require(JModuleHelper::getLayoutPath('mod_login'));elracodelangela/modules/mod_login/index.html0000755000176700017710000000005411061563512022037 0ustar essawireessawireelracodelangela/modules/mod_login/tmpl/0000755000176700017710000000000011061563616021021 5ustar essawireessawireelracodelangela/modules/mod_login/tmpl/index.html0000755000176700017710000000005411061563512023013 0ustar essawireessawireelracodelangela/modules/mod_login/tmpl/default.php0000755000176700017710000000627111061563512023162 0ustar essawireessawire
          get('greeting')) : ?>
          get('name')) : { echo JText::sprintf( 'HINAME', $user->get('name') ); } else : { echo JText::sprintf( 'HINAME', $user->get('username') ); } endif; ?>
          load( 'plg_authentication_openid', JPATH_ADMINISTRATOR ); $langScript = 'var JLanguage = {};'. ' JLanguage.WHAT_IS_OPENID = \''.JText::_( 'WHAT_IS_OPENID' ).'\';'. ' JLanguage.LOGIN_WITH_OPENID = \''.JText::_( 'LOGIN_WITH_OPENID' ).'\';'. ' JLanguage.NORMAL_LOGIN = \''.JText::_( 'NORMAL_LOGIN' ).'\';'. ' var modlogin = 1;'; $document = &JFactory::getDocument(); $document->addScriptDeclaration( $langScript ); JHTML::_('script', 'openid.js'); endif; ?>
          get('pretext'); ?>



          • get('allowUserRegistration')) : ?>
          get('posttext'); ?>
          elracodelangela/modules/mod_archive/0000755000176700017710000000000011061563615020355 5ustar essawireessawireelracodelangela/modules/mod_archive/mod_archive.xml0000755000176700017710000000226511061563510023361 0ustar essawireessawire Archived Content Joomla! Project July 2006 (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCARCHIVE mod_archive.php elracodelangela/modules/mod_archive/helper.php0000755000176700017710000000321211061563510022340 0ustar essawireessawiresetQuery($query, 0, intval($params->get('count'))); $rows = $db->loadObjectList(); $menu = &JSite::getMenu(); $item = $menu->getItems('link', 'index.php?option=com_content&view=archive', true); $itemid = isset($item) ? '&Itemid='.$item->id : ''; $i = 0; $lists = array(); foreach ( $rows as $row ) { $date =& JFactory::getDate($row->created); $created_month = $date->toFormat("%m"); $month_name = $date->toFormat("%B"); $created_year = $date->toFormat("%Y"); $lists[$i]->link = JRoute::_('index.php?option=com_content&view=archive&year='.$created_year.'&month='.$created_month.$itemid); $lists[$i]->text = $month_name.', '.$created_year; $i++; } return $lists; } } elracodelangela/modules/mod_archive/mod_archive.php0000755000176700017710000000147611061563510023353 0ustar essawireessawiredef('count', 10); $list = modArchiveHelper::getList($params); require(JModuleHelper::getLayoutPath('mod_archive'));elracodelangela/modules/mod_archive/index.html0000755000176700017710000000005411061563510022346 0ustar essawireessawireelracodelangela/modules/mod_archive/tmpl/0000755000176700017710000000000011061563615021331 5ustar essawireessawireelracodelangela/modules/mod_archive/tmpl/index.html0000755000176700017710000000005411061563510023322 0ustar essawireessawireelracodelangela/modules/mod_archive/tmpl/default.php0000755000176700017710000000035011061563510023461 0ustar essawireessawire elracodelangela/modules/mod_syndicate/0000755000176700017710000000000011061563616020720 5ustar essawireessawireelracodelangela/modules/mod_syndicate/mod_syndicate.xml0000755000176700017710000000253411061563512024266 0ustar essawireessawire Syndicate Joomla! Project May 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Smart Syndication module that creates syndicated feed for the page where the module is displayed mod_syndicate.php elracodelangela/modules/mod_syndicate/helper.php0000755000176700017710000000171611061563512022713 0ustar essawireessawire_links as $link) { if(strpos($link, 'application/'.$params->get('format').'+xml')) { preg_match("#href=\"(.*?)\"#s", $link, $matches); return $matches[1]; } } } }elracodelangela/modules/mod_syndicate/index.html0000755000176700017710000000005411061563512022712 0ustar essawireessawireelracodelangela/modules/mod_syndicate/tmpl/0000755000176700017710000000000011061563616021674 5ustar essawireessawireelracodelangela/modules/mod_syndicate/tmpl/index.html0000755000176700017710000000005411061563512023666 0ustar essawireessawireelracodelangela/modules/mod_syndicate/tmpl/default.php0000755000176700017710000000040511061563512024026 0ustar essawireessawire get('text') ?>elracodelangela/modules/mod_syndicate/mod_syndicate.php0000755000176700017710000000172511061563512024256 0ustar essawireessawiredef('text', 'Feed Entries'); $params->def('format', 'rss'); $link = modSyndicateHelper::getLink($params); if(is_null($link)) { return; } require(JModuleHelper::getLayoutPath('mod_syndicate')); elracodelangela/modules/mod_whosonline/0000755000176700017710000000000011061563616021122 5ustar essawireessawireelracodelangela/modules/mod_whosonline/helper.php0000755000176700017710000000356311061563512023117 0ustar essawireessawiresetQuery($query); $sessions = $db->loadObjectList(); if ($db->getErrorNum()) { JError::raiseWarning( 500, $db->stderr() ); } if (count($sessions)) { foreach ($sessions as $session) { // if guest increase guest count by 1 if ($session->guest == 1 && !$session->usertype) { $guest_array ++; } // if member increase member count by 1 if ($session->guest == 0) { $user_array ++; } } } $result['user'] = $user_array; $result['guest'] = $guest_array; return $result; } // show online member names function getOnlineMemberNames() { $db =& JFactory::getDBO(); $result = null; $query = 'SELECT DISTINCT a.username' . ' FROM #__session AS a' . ' WHERE client_id = 0' . ' AND a.guest = 0'; $db->setQuery($query); $result = $db->loadObjectList(); if ($db->getErrorNum()) { JError::raiseWarning( 500, $db->stderr() ); } return $result; } } elracodelangela/modules/mod_whosonline/index.html0000755000176700017710000000005411061563512023114 0ustar essawireessawireelracodelangela/modules/mod_whosonline/mod_whosonline.php0000755000176700017710000000173511061563512024663 0ustar essawireessawireget( 'showmode', 0 ); if ($showmode == 0 || $showmode == 2) { $count = modWhosonlineHelper::getOnlineCount(); } if ($showmode > 0) { $names = modWhosonlineHelper::getOnlineMemberNames(); } require(JModuleHelper::getLayoutPath('mod_whosonline')); elracodelangela/modules/mod_whosonline/tmpl/0000755000176700017710000000000011061563616022076 5ustar essawireessawireelracodelangela/modules/mod_whosonline/tmpl/index.html0000755000176700017710000000005411061563512024070 0ustar essawireessawireelracodelangela/modules/mod_whosonline/tmpl/default.php0000755000176700017710000000166711061563512024243 0ustar essawireessawire 1) : echo JText::sprintf('guests', $count['guest']); endif; endif; if ($count['guest'] != 0 && $count['user'] != 0) : echo ' ' . JText::_('and') . ' '; endif; if ($count['user'] == 1) : echo JText::sprintf('member', '1'); else : if ($count['user'] > 1) : echo JText::sprintf('members', $count['user']); endif; endif; echo ' ' . JText::_('online'); endif; endif; if(($showmode > 0) && count($names)) : ?>
          • username; ?>
          Who\'s Online Joomla! Project July 2004 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.0.0 DESCWHOSONLINE mod_whosonline.php elracodelangela/modules/mod_related_items/0000755000176700017710000000000011061563616021556 5ustar essawireessawireelracodelangela/modules/mod_related_items/helper.php0000755000176700017710000000667611061563512023563 0ustar essawireessawireget('showDate', 0); $nullDate = $db->getNullDate(); $date =& JFactory::getDate(); $now = $date->toMySQL(); $related = array(); if ($option == 'com_content' && $view == 'article' && $id) { // select the meta keywords from the item $query = 'SELECT metakey' . ' FROM #__content' . ' WHERE id = '.(int) $id; $db->setQuery($query); if ($metakey = trim($db->loadResult())) { // explode the meta keys on a comma $keys = explode(',', $metakey); $likes = array (); // assemble any non-blank word(s) foreach ($keys as $key) { $key = trim($key); if ($key) { $likes[] = $db->getEscaped($key); } } if (count($likes)) { // select other items based on the metakey field 'like' the keys found $query = 'SELECT a.id, a.title, DATE_FORMAT(a.created, "%Y-%m-%d") AS created, a.sectionid, a.catid, cc.access AS cat_access, s.access AS sec_access, cc.published AS cat_state, s.published AS sec_state,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'. ' FROM #__content AS a' . ' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' . ' LEFT JOIN #__categories AS cc ON cc.id = a.catid' . ' LEFT JOIN #__sections AS s ON s.id = a.sectionid' . ' WHERE a.id != '.(int) $id . ' AND a.state = 1' . ' AND a.access <= ' .(int) $user->get('aid', 0) . ' AND ( a.metakey LIKE "%'.implode('%" OR a.metakey LIKE "%', $likes).'%" )' . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )' . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'; $db->setQuery($query); $temp = $db->loadObjectList(); if (count($temp)) { foreach ($temp as $row) { if (($row->cat_state == 1 || $row->cat_state == '') && ($row->sec_state == 1 || $row->sec_state == '') && ($row->cat_access <= $user->get('aid', 0) || $row->cat_access == '') && ($row->sec_access <= $user->get('aid', 0) || $row->sec_access == '')) { $row->route = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid)); $related[] = $row; } } } unset ($temp); } } } return $related; } } elracodelangela/modules/mod_related_items/mod_related_items.php0000755000176700017710000000160011061563512025742 0ustar essawireessawireget('showDate', 0); require(JModuleHelper::getLayoutPath('mod_related_items')); elracodelangela/modules/mod_related_items/index.html0000755000176700017710000000005411061563512023550 0ustar essawireessawireelracodelangela/modules/mod_related_items/tmpl/0000755000176700017710000000000011061563616022532 5ustar essawireessawireelracodelangela/modules/mod_related_items/tmpl/index.html0000755000176700017710000000005411061563512024524 0ustar essawireessawireelracodelangela/modules/mod_related_items/tmpl/default.php0000755000176700017710000000053611061563512024671 0ustar essawireessawire elracodelangela/modules/mod_related_items/mod_related_items.xml0000755000176700017710000000260611061563512025762 0ustar essawireessawire Related Items Joomla! Project July 2004 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.0.0 DESCRELATEDITEMS mod_related_items.php elracodelangela/modules/index.html0000755000176700017710000000005411061563510020066 0ustar essawireessawireelracodelangela/modules/mod_random_image/0000755000176700017710000000000011061563616021357 5ustar essawireessawireelracodelangela/modules/mod_random_image/mod_random_image.php0000755000176700017710000000203511061563512025347 0ustar essawireessawireget( 'link' ); $folder = modRandomImageHelper::getFolder($params); $images = modRandomImageHelper::getImages($params, $folder); if (!count($images)) { echo JText::_( 'No images '); return; } $image = modRandomImageHelper::getRandomImage($params, $images); require(JModuleHelper::getLayoutPath('mod_random_image')); elracodelangela/modules/mod_random_image/helper.php0000755000176700017710000000513111061563512023345 0ustar essawireessawireget( 'width' ); $height = $params->get( 'height' ); $i = count($images); $random = mt_rand(0, $i - 1); $image = $images[$random]; $size = getimagesize (JPATH_BASE.DS.$image->folder .DS. $image->name); if ($width == '') { $width = 100; } if ($size[0] < $width) { $width = $size[0]; } $coeff = $size[0]/$size[1]; if ($height == '') { $height = (int) ($width/$coeff); } else { $newheight = min ($height, (int) ($width/$coeff)); if ($newheight < $height) { $height = $newheight; } else { $width = $height * $coeff; } } $image->width = $width; $image->height = $height; $image->folder = str_replace( '\\', '/', $image->folder ); return $image; } function getImages(&$params, $folder) { $type = $params->get( 'type', 'jpg' ); $files = array(); $images = array(); $dir = JPATH_BASE.DS.$folder; // check if directory exists if (is_dir($dir)) { if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if ($file != '.' && $file != '..' && $file != 'CVS' && $file != 'index.html' ) { $files[] = $file; } } } closedir($handle); $i = 0; foreach ($files as $img) { if (!is_dir($dir .DS. $img)) { if (eregi($type, $img)) { $images[$i]->name = $img; $images[$i]->folder = $folder; ++$i; } } } } return $images; } function getFolder(&$params) { $folder = $params->get( 'folder' ); $LiveSite = JURI::base(); // if folder includes livesite info, remove if ( JString::strpos($folder, $LiveSite) === 0 ) { $folder = str_replace( $LiveSite, '', $folder ); } // if folder includes absolute path, remove if ( JString::strpos($folder, JPATH_SITE) === 0 ) { $folder= str_replace( JPATH_BASE, '', $folder ); } $folder = str_replace('\\',DS,$folder); $folder = str_replace('/',DS,$folder); return $folder; } } elracodelangela/modules/mod_random_image/index.html0000755000176700017710000000005411061563512023351 0ustar essawireessawireelracodelangela/modules/mod_random_image/tmpl/0000755000176700017710000000000011061563616022333 5ustar essawireessawireelracodelangela/modules/mod_random_image/tmpl/index.html0000755000176700017710000000005411061563512024325 0ustar essawireessawireelracodelangela/modules/mod_random_image/tmpl/default.php0000755000176700017710000000056511061563512024474 0ustar essawireessawire elracodelangela/modules/mod_random_image/mod_random_image.xml0000755000176700017710000000331311061563512025360 0ustar essawireessawire Random Image Joomla! Project July 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCRANDOMIMAGE mod_random_image.php elracodelangela/modules/mod_breadcrumbs/0000755000176700017710000000000011061563615021225 5ustar essawireessawireelracodelangela/modules/mod_breadcrumbs/helper.php0000755000176700017710000000367111061563511023222 0ustar essawireessawiregetPathway(); $items = $pathway->getPathWay(); $count = count($items); for ($i = 0; $i < $count; $i ++) { $items[$i]->name = stripslashes(htmlspecialchars($items[$i]->name)); $items[$i]->link = JRoute::_($items[$i]->link); } if ($params->get('showHome', 1)) { $item = new stdClass(); $item->name = $params->get('homeText', JText::_('Home')); $item->link = JURI::base(); array_unshift($items, $item); } return $items; } /** * Set the breadcrumbs separator for the breadcrumbs display. * * @param string $custom Custom xhtml complient string to separate the * items of the breadcrumbs * @return string Separator string * @since 1.5 */ function setSeparator($custom = null) { global $mainframe; $lang =& JFactory::getLanguage(); /** * If a custom separator has not been provided we try to load a template * specific one first, and if that is not present we load the default separator */ if ($custom == null) { if($lang->isRTL()){ $_separator = JHTML::_('image.site', 'arrow_rtl.png'); } else{ $_separator = JHTML::_('image.site', 'arrow.png'); } } else { $_separator = $custom; } return $_separator; } }elracodelangela/modules/mod_breadcrumbs/index.html0000755000176700017710000000005411061563511023217 0ustar essawireessawireelracodelangela/modules/mod_breadcrumbs/mod_breadcrumbs.php0000755000176700017710000000171211061563511025065 0ustar essawireessawireget( 'separator' )); require(JModuleHelper::getLayoutPath('mod_breadcrumbs'));elracodelangela/modules/mod_breadcrumbs/mod_breadcrumbs.xml0000755000176700017710000000300111061563511025067 0ustar essawireessawire Breadcrumbs Joomla! Project July 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 This module displays the breadcrumbs mod_breadcrumbs.php elracodelangela/modules/mod_breadcrumbs/tmpl/0000755000176700017710000000000011061563615022201 5ustar essawireessawireelracodelangela/modules/mod_breadcrumbs/tmpl/index.html0000755000176700017710000000005411061563511024173 0ustar essawireessawireelracodelangela/modules/mod_breadcrumbs/tmpl/default.php0000755000176700017710000000105611061563511024336 0ustar essawireessawire link)) { echo ''.$list[$i]->name.''; } else { echo $list[$i]->name; } echo ' '.$separator.' '; } else if ($params->get('showLast', 1)) { // when $i == $count -1 and 'showLast' is true echo $list[$i]->name; } endfor; ?> elracodelangela/modules/mod_banners/0000755000176700017710000000000011061563615020364 5ustar essawireessawireelracodelangela/modules/mod_banners/mod_banners.xml0000755000176700017710000000521611061563511023377 0ustar essawireessawire Banner Joomla! Project July 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCBANNER mod_banners.php elracodelangela/modules/mod_banners/helper.php0000755000176700017710000000771011061563511022357 0ustar essawireessawireget( 'cid' ); $vars['catid'] = (int) $params->get( 'catid' ); $vars['limit'] = (int) $params->get( 'count', 1 ); $vars['ordering'] = $params->get( 'ordering' ); if ($params->get( 'tag_search' )) { $document =& JFactory::getDocument(); $keywords = $document->getMetaData( 'keywords' ); $vars['tag_search'] = BannerHelper::getKeywords( $keywords ); } $banners = $model->getList( $vars ); $model->impress( $banners ); return $banners; } function getModel() { if (!class_exists( 'BannersModelBanner' )) { // Build the path to the model based upon a supplied base path $path = JPATH_SITE.DS.'components'.DS.'com_banners'.DS.'models'.DS.'banner.php'; $false = false; // If the model file exists include it and try to instantiate the object if (file_exists( $path )) { require_once( $path ); if (!class_exists( 'BannersModelBanner' )) { JError::raiseWarning( 0, 'Model class BannersModelBanner not found in file.' ); return $false; } } else { JError::raiseWarning( 0, 'Model BannersModelBanner not supported. File not found.' ); return $false; } } $model = new BannersModelBanner(); return $model; } function renderBanner($params, &$item) { $link = JRoute::_( 'index.php?option=com_banners&task=click&bid='. $item->bid ); $baseurl = JURI::base(); $html = ''; if (trim($item->custombannercode)) { // template replacements $html = str_replace( '{CLICKURL}', $link, $item->custombannercode ); $html = str_replace( '{NAME}', $item->name, $html ); } else if (BannerHelper::isImage( $item->imageurl )) { $image = ''.JText::_('Banner').''; if ($item->clickurl) { switch ($params->get( 'target', 1 )) { // cases are slightly different case 1: // open in a new window $a = ''; break; case 2: // open in a popup window $a = ""; break; default: // formerly case 2 // open in parent window $a = ''; break; } $html = $a . $image . ''; } else { $html = $image; } } else if (BannerHelper::isFlash( $item->imageurl )) { //echo $item->params; $banner_params = new JParameter( $item->params ); $width = $banner_params->get( 'width'); $height = $banner_params->get( 'height'); $imageurl = $baseurl."images/banners/".$item->imageurl; $html = " "; } return $html; } } elracodelangela/modules/mod_banners/index.html0000755000176700017710000000005411061563511022356 0ustar essawireessawireelracodelangela/modules/mod_banners/tmpl/0000755000176700017710000000000011061563615021340 5ustar essawireessawireelracodelangela/modules/mod_banners/tmpl/index.html0000755000176700017710000000005411061563511023332 0ustar essawireessawireelracodelangela/modules/mod_banners/tmpl/default.php0000755000176700017710000000116711061563511023500 0ustar essawireessawire
          elracodelangela/modules/mod_banners/mod_banners.php0000755000176700017710000000161611061563511023366 0ustar essawireessawireget( 'header_text' ) ); $footerText = trim( $params->get( 'footer_text' ) ); $list = modBannersHelper::getList($params); require(JModuleHelper::getLayoutPath('mod_banners')); elracodelangela/modules/mod_wrapper/0000755000176700017710000000000011061563615020414 5ustar essawireessawireelracodelangela/modules/mod_wrapper/mod_wrapper.php0000755000176700017710000000204011061563511023436 0ustar essawireessawireget( 'load'); $url = $params->get( 'url'); $target = $params->get( 'target' ); $width = $params->get( 'width'); $height = $params->get( 'height'); $scroll = $params->get( 'scrolling' ); $class = $params->get( 'moduleclass_sfx' ); require(JModuleHelper::getLayoutPath('mod_wrapper')); elracodelangela/modules/mod_wrapper/mod_wrapper.xml0000755000176700017710000000472611061563511023464 0ustar essawireessawire Wrapper Joomla! Project October 2004 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.0.0 This module shows an IFrame window to specified location mod_wrapper.php elracodelangela/modules/mod_wrapper/helper.php0000755000176700017710000000272011061563511022403 0ustar essawireessawiredef('url', ''); $params->def('scrolling', 'auto'); $params->def('height', '200'); $params->def('height_auto', '0'); $params->def('width', '100%'); $params->def('add', '1'); $params->def('name', 'wrapper'); $url = $params->get('url'); if ($params->get('add')) { // adds 'http://' if none is set if (substr($url, 0, 1) == '/') { // relative url in component. use server http_host. $url = 'http://'.$_SERVER['HTTP_HOST'].$url; } elseif (!strstr($url, 'http') && !strstr($url, 'https')) { $url = 'http://'.$url; } else { $url = $url; } } // auto height control if ($params->def('height_auto')) { $load = 'onload="iFrameHeight()"'; } else { $load = ''; } $params->set( 'load', $load ); $params->set( 'url', $url ); return $params; } } elracodelangela/modules/mod_wrapper/index.html0000755000176700017710000000005411061563511022406 0ustar essawireessawireelracodelangela/modules/mod_wrapper/tmpl/0000755000176700017710000000000011061563615021370 5ustar essawireessawireelracodelangela/modules/mod_wrapper/tmpl/index.html0000755000176700017710000000005411061563511023362 0ustar essawireessawireelracodelangela/modules/mod_wrapper/tmpl/default.php0000755000176700017710000000147211061563511023527 0ustar essawireessawire elracodelangela/modules/mod_feed/0000755000176700017710000000000011061563615017637 5ustar essawireessawireelracodelangela/modules/mod_feed/helper.php0000755000176700017710000000315011061563510021623 0ustar essawireessawireget('rssurl', ''); // get RSS parsed object $options = array(); $options['rssUrl'] = $rssurl; if ($params->get('cache')) { $options['cache_time'] = $params->get('cache_time', 15) ; $options['cache_time'] *= 60; } else { $options['cache_time'] = null; } $rssDoc =& JFactory::getXMLparser('RSS', $options); $feed = new stdclass(); if ($rssDoc != false) { // channel header and link $feed->title = $rssDoc->get_title(); $feed->link = $rssDoc->get_link(); $feed->description = $rssDoc->get_description(); // channel image if exists $feed->image->url = $rssDoc->get_image_url(); $feed->image->title = $rssDoc->get_image_title(); // items $items = $rssDoc->get_items(); // feed elements $feed->items = array_slice($items, 0, $params->get('rssitems', 5)); } else { $feed = false; } return $feed; } }elracodelangela/modules/mod_feed/mod_feed.php0000755000176700017710000000241311061563510022107 0ustar essawireessawireget('rssurl', ''); //check if cache diretory is writable as cache files will be created for the feed $cacheDir = JPATH_BASE.DS.'cache'; if (!is_writable($cacheDir)) { echo '
          '; echo JText::_('Please make cache directory writable.'); echo '
          '; return; } //check if feed URL has been set if (empty ($rssurl)) { echo '
          '; echo JText::_('No feed URL specified.'); echo '
          '; return; } $feed = modFeedHelper::getFeed($params); require(JModuleHelper::getLayoutPath('mod_feed')); elracodelangela/modules/mod_feed/index.html0000755000176700017710000000005411061563510021630 0ustar essawireessawireelracodelangela/modules/mod_feed/mod_feed.xml0000755000176700017710000000447711061563510022134 0ustar essawireessawire Feed Display Joomla! Project July 2005 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 This module allows the displaying of a syndicated feed mod_feed.php elracodelangela/modules/mod_feed/tmpl/0000755000176700017710000000000011061563615020613 5ustar essawireessawireelracodelangela/modules/mod_feed/tmpl/index.html0000755000176700017710000000005411061563510022604 0ustar essawireessawireelracodelangela/modules/mod_feed/tmpl/default.php0000755000176700017710000000443211061563510022750 0ustar essawireessawire image->url) ? $feed->image->url : null; $iTitle = isset($feed->image->title) ? $feed->image->title : null; ?> title ) && $params->get('rsstitle', 1)) { ?> get('rssdesc', 1)) { ?> get('rssimage', 1) && $iUrl) { ?> items ); $setItems = $params->get('rssitems', 5); if ($setItems > $actualItems) { $totalItems = $actualItems; } else { $totalItems = $setItems; } ?>
          title; ?>
          description; ?>
          <?php echo @$iTitle; ?>
            def('word_count', 0); for ($j = 0; $j < $totalItems; $j ++) { $currItem = & $feed->items[$j]; // item title ?>
          • get_link() ) ) { ?> get_title(); ?> get('rssitemdesc', 1)) { // item description $text = $currItem->get_description(); $text = str_replace(''', "'", $text); // word limit check if ($words) { $texts = explode(' ', $text); $count = count($texts); if ($count > $words) { $text = ''; for ($i = 0; $i < $words; $i ++) { $text .= ' '.$texts[$i]; } $text .= '...'; } } ?>
          elracodelangela/modules/mod_mostread/0000755000176700017710000000000011061563615020552 5ustar essawireessawireelracodelangela/modules/mod_mostread/mod_mostread.xml0000755000176700017710000000331211061563511023746 0ustar essawireessawire Most Read Content Joomla! Project July 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCMOSTREAD mod_mostread.php elracodelangela/modules/mod_mostread/helper.php0000755000176700017710000000600711061563511022543 0ustar essawireessawireget('count', 5)); $catid = trim($params->get('catid')); $secid = trim($params->get('secid')); $show_front = $params->get('show_front', 1); $aid = $user->get('aid', 0); $contentConfig = &JComponentHelper::getParams( 'com_content' ); $access = !$contentConfig->get('show_noauth'); $nullDate = $db->getNullDate(); $date =& JFactory::getDate(); $now = $date->toMySQL(); if ($catid) { $ids = explode( ',', $catid ); JArrayHelper::toInteger( $ids ); $catCondition = ' AND (cc.id=' . implode( ' OR cc.id=', $ids ) . ')'; } if ($secid) { $ids = explode( ',', $secid ); JArrayHelper::toInteger( $ids ); $secCondition = ' AND (s.id=' . implode( ' OR s.id=', $ids ) . ')'; } //Content Items only $query = 'SELECT a.*,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'. ' FROM #__content AS a' . ' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' . ' INNER JOIN #__categories AS cc ON cc.id = a.catid' . ' INNER JOIN #__sections AS s ON s.id = a.sectionid' . ' WHERE ( a.state = 1 AND s.id > 0 )' . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )' . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'. ($access ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : ''). ($catid ? $catCondition : ''). ($secid ? $secCondition : ''). ($show_front == '0' ? ' AND f.content_id IS NULL' : ''). ' AND s.published = 1' . ' AND cc.published = 1' . ' ORDER BY a.hits DESC'; $db->setQuery($query, 0, $count); $rows = $db->loadObjectList(); $i = 0; $lists = array(); foreach ( $rows as $row ) { if($row->access <= $aid) { $lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid)); } else { $lists[$i]->link = JRoute::_('index.php?option=com_user&view=login'); } $lists[$i]->text = htmlspecialchars( $row->title ); $i++; } return $lists; } } elracodelangela/modules/mod_mostread/index.html0000755000176700017710000000005411061563511022544 0ustar essawireessawireelracodelangela/modules/mod_mostread/mod_mostread.php0000755000176700017710000000144511061563511023742 0ustar essawireessawireelracodelangela/modules/mod_mostread/tmpl/default.php0000755000176700017710000000064311061563511023664 0ustar essawireessawire elracodelangela/modules/mod_footer/0000755000176700017710000000000011061563616020233 5ustar essawireessawireelracodelangela/modules/mod_footer/index.html0000755000176700017710000000005411061563512022225 0ustar essawireessawireelracodelangela/modules/mod_footer/mod_footer.php0000755000176700017710000000213311061563512023076 0ustar essawireessawiretoFormat('%Y'); $csite_name = $mainframe->getCfg('sitename'); if (JString::strpos(JText :: _('FOOTER_LINE1'), '%date%')) { $line1 = ereg_replace('%date%', $cur_year, JText :: _('FOOTER_LINE1')); } else { $line1 = JText :: _('FOOTER_LINE1'); } if (JString::strpos($line1, '%sitename%')) { $lineone = ereg_replace('%sitename%', $csite_name, $line1); } else { $lineone = $line1; } require(JModuleHelper::getLayoutPath('mod_footer')); elracodelangela/modules/mod_footer/tmpl/0000755000176700017710000000000011061563616021207 5ustar essawireessawireelracodelangela/modules/mod_footer/tmpl/index.html0000755000176700017710000000005411061563512023201 0ustar essawireessawireelracodelangela/modules/mod_footer/tmpl/default.php0000755000176700017710000000024311061563512023341 0ustar essawireessawire
          elracodelangela/modules/mod_footer/mod_footer.xml0000755000176700017710000000155211061563512023113 0ustar essawireessawire Footer Joomla! Project July 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 This module shows the Joomla! Copyright information mod_footer.php elracodelangela/modules/mod_poll/0000755000176700017710000000000011061563614017701 5ustar essawireessawireelracodelangela/modules/mod_poll/mod_poll.php0000755000176700017710000000222411061563510022215 0ustar essawireessawiregetItems('link', 'index.php?option=com_poll&view=poll'); $itemid = isset($items[0]) ? '&Itemid='.$items[0]->id : ''; $poll = modPollHelper::getPoll($params->get( 'id', 0 )); if ( $poll && $poll->id ) { $layout = JModuleHelper::getLayoutPath('mod_poll'); $tabcnt = 0; $options = modPollHelper::getPollOptions($poll->id); require($layout); }elracodelangela/modules/mod_poll/mod_poll.xml0000755000176700017710000000235611061563510022234 0ustar essawireessawire Poll Joomla! Project July 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 DESCPOLL mod_poll.php elracodelangela/modules/mod_poll/helper.php0000755000176700017710000000257211061563510021675 0ustar essawireessawiresetQuery($query); $result = $db->loadObject(); if ($db->getErrorNum()) { JError::raiseWarning( 500, $db->stderr() ); } return $result; } function getPollOptions($id) { $db =& JFactory::getDBO(); $query = 'SELECT id, text' . ' FROM #__poll_data' . ' WHERE pollid = ' . (int) $id . ' AND text <> ""' . ' ORDER BY id'; $db->setQuery($query); if (!($options = $db->loadObjectList())) { echo "MD ".$db->stderr(); return; } return $options; } } ?> elracodelangela/modules/mod_poll/index.html0000755000176700017710000000005411061563510021673 0ustar essawireessawireelracodelangela/modules/mod_poll/tmpl/0000755000176700017710000000000011061563615020656 5ustar essawireessawireelracodelangela/modules/mod_poll/tmpl/index.html0000755000176700017710000000005411061563510022647 0ustar essawireessawireelracodelangela/modules/mod_poll/tmpl/default.php0000755000176700017710000000346311061563510023016 0ustar essawireessawire
          title; ?>
            slug".$itemid); ?>'" />
          elracodelangela/COPYRIGHT.php0000755000176700017710000000222611061563454016514 0ustar essawireessawire Joomla! derives from copyrighted works licensed under the GNU General Public License. This version has been modified pursuant to the GNU General Public License as of September 15, 2005, and as distributed, it includes or is derivative of works licensed under the GNU General Public License or other free or open source software licenses. Please see the CREDITS.php for a non-exhaustive list of contributors and copyright holders. A full text version of the GNU GPL version 2 can be found in the LICENSE.php file. A full text version of the other licenses that Joomla! is derivative of or includes can be found in LICENSES.php.elracodelangela/configuration.php-dist0000755000176700017710000000644211061563454020760 0ustar essawireessawire mv configuration.php-dist configuration.php * Windows -> rename configuration.php-dist configuration.php * * Now edit this file and configure the parameters for your site and * database. */ class JConfig { /** * ------------------------------------------------------------------------- * Site configuration section * ------------------------------------------------------------------------- */ /* Site Settings */ var $offline = '0'; var $offline_message = 'This site is down for maintenance.
          Please check back again soon.'; var $sitename = 'Joomla!'; // Name of Joomla site var $editor = 'tinymce'; var $list_limit = '20'; var $legacy = '0'; /** * ------------------------------------------------------------------------- * Database configuration section * ------------------------------------------------------------------------- */ /* Database Settings */ var $dbtype = 'mysql'; // Normally mysql var $host = 'localhost'; // This is normally set to localhost var $user = ''; // MySQL username var $password = ''; // MySQL password var $db = ''; // MySQL database name var $dbprefix = 'jos_'; // Do not change unless you need to! /* Server Settings */ var $secret = 'FBVtggIk5lAzEU9H'; //Change this to something more secure var $gzip = '0'; var $error_reporting = '-1'; var $helpurl = 'http://help.joomla.org'; var $xmlrpc_server = '1'; var $ftp_host = ''; var $ftp_port = ''; var $ftp_user = ''; var $ftp_pass = ''; var $ftp_root = ''; var $ftp_enable = ''; var $tmp_path = '/tmp'; var $log_path = '/var/logs'; var $offset = '0'; var $live_site = ''; // Optional, Full url to Joomla install. /* Session settings */ var $lifetime = '15'; // Session time var $session_handler = 'database'; /* Mail Settings */ var $mailer = 'mail'; var $mailfrom = ''; var $fromname = ''; var $sendmail = '/usr/sbin/sendmail'; var $smtpauth = '0'; var $smtpuser = ''; var $smtppass = ''; var $smtphost = 'localhost'; /* Cache Settings */ var $caching = '0'; var $cachetime = '15'; var $cache_handler = 'file'; /* Debug Settings */ var $debug = '0'; var $debug_db = '0'; var $debug_lang = '0'; /* Meta Settings */ var $MetaDesc = 'Joomla! - the dynamic portal engine and content management system'; var $MetaKeys = 'joomla, Joomla'; var $MetaTitle = '1'; var $MetaAuthor = '1'; /* SEO Settings */ var $sef = '0'; var $sef_rewrite = '0'; var $sef_suffix = ''; /* Feed Settings */ var $feed_limit = 10; } ?> elracodelangela/components/0000755000176700017710000000000011074453335016613 5ustar essawireessawireelracodelangela/components/com_poll/0000755000176700017710000000000011061563606020416 5ustar essawireessawireelracodelangela/components/com_poll/router.php0000755000176700017710000000650711061563447022465 0ustar essawireessawiregetItems('componentid', $component->id); } // Search for an appropriate menu item. if (is_array($items)) { // If only the option and itemid are specified in the query, return that item. if (!isset($query['view']) && !isset($query['id']) && !isset($query['catid']) && isset($query['Itemid'])) { $itemid = (int) $query['Itemid']; } // Search for a specific link based on the critera given. if (!$itemid) { foreach ($items as $item) { // Check if this menu item links to this view. if (isset($item->query['view']) && $item->query['view'] == 'poll' && isset($query['view']) && $query['view'] != 'category' && isset($item->query['id']) && $item->query['id'] == $query['id']) { $itemid = $item->id; } } } // If no specific link has been found, search for a general one. if (!$itemid) { foreach ($items as $item) { if (isset($query['view']) && $query['view'] == 'poll' && isset($item->query['view']) && $item->query['view'] == 'poll') { // Check for an undealt with newsfeed id. if (isset($query['id'])) { // This menu item links to the newsfeed view but we need to append the newsfeed id to it. $itemid = $item->id; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } } } } } // Check if the router found an appropriate itemid. if (!$itemid) { // Check if a id was specified. if (isset($query['id'])) { if (isset($query['alias'])) { $query['id'] .= ':'.$query['alias']; } // Push the id onto the stack. $segments[] = $query['id']; unset($query['id']); unset($query['alias']); } unset($query['view']); } else { $query['Itemid'] = $itemid; // Remove the unnecessary URL segments. unset($query['view']); unset($query['id']); unset($query['catid']); unset($query['alias']); } return $segments; } /** * @param array * @return array */ function PollParseRoute( $segments ) { $vars = array(); //Get the active menu item $menu =& JSite::getMenu(); $item =& $menu->getActive(); $count = count( $segments ); //Standard routing for articles if(!isset($item)) { $vars['id'] = $segments[$count - 1]; return $vars; } // Count route segments $vars['id'] = $segments[$count-1]; $vars['view'] = 'poll'; return $vars; }elracodelangela/components/com_poll/models/0000755000176700017710000000000011061563606021701 5ustar essawireessawireelracodelangela/components/com_poll/models/index.html0000755000176700017710000000005411061563450023675 0ustar essawireessawireelracodelangela/components/com_poll/models/poll.php0000755000176700017710000000311011061563450023353 0ustar essawireessawiregetDBO(); $poll_id = (int) $poll_id; $option_id = (int) $option_id; $query = 'UPDATE #__poll_data' . ' SET hits = hits + 1' . ' WHERE pollid = ' . (int) $poll_id . ' AND id = ' . (int) $option_id ; $db->setQuery( $query ); $db->query(); $query = 'UPDATE #__polls' . ' SET voters = voters + 1' . ' WHERE id = ' . (int) $poll_id ; $db->setQuery( $query ); $db->query(); $date =& JFactory::getDate(); $query = 'INSERT INTO #__poll_date' . ' SET date = ' . $db->Quote($date->toMySQL()) . ', vote_id = ' . (int) $option_id . ', poll_id = ' . (int) $poll_id ; $db->setQuery( $query ); $db->query(); } } elracodelangela/components/com_poll/index.html0000755000176700017710000000005411061563447022420 0ustar essawireessawireelracodelangela/components/com_poll/views/0000755000176700017710000000000011061563606021553 5ustar essawireessawireelracodelangela/components/com_poll/views/index.html0000755000176700017710000000005411061563447023555 0ustar essawireessawireelracodelangela/components/com_poll/views/poll/0000755000176700017710000000000011061563606022521 5ustar essawireessawireelracodelangela/components/com_poll/views/poll/metadata.xml0000755000176700017710000000021611061563447025030 0ustar essawireessawire elracodelangela/components/com_poll/views/poll/index.html0000755000176700017710000000005411061563447024523 0ustar essawireessawireelracodelangela/components/com_poll/views/poll/tmpl/0000755000176700017710000000000011061563606023475 5ustar essawireessawireelracodelangela/components/com_poll/views/poll/tmpl/default.xml0000755000176700017710000000070311061563447025651 0ustar essawireessawire Poll Layout STANDARD POLL LAYOUT DESC elracodelangela/components/com_poll/views/poll/tmpl/index.html0000755000176700017710000000005411061563447025477 0ustar essawireessawireelracodelangela/components/com_poll/views/poll/tmpl/default_graph.php0000755000176700017710000000320611061563447027022 0ustar essawireessawire
          votes as $vote) : ?>
          poll->title; ?>
          text; ?>
          hits; ?>  percent; ?>%

           :  votes[0])) echo $this->votes[0]->voters; ?>
           :  first_vote; ?>
           :  last_vote; ?>
          elracodelangela/components/com_poll/views/poll/tmpl/default.php0000755000176700017710000000141011061563450025626 0ustar essawireessawire
          params->get( 'show_page_title', 1)) : ?>
          escape($this->params->get('page_title')); ?>
          loadTemplate('graph'); ?>
          elracodelangela/components/com_poll/views/poll/view.html.php0000755000176700017710000001172611061563447025164 0ustar essawireessawiregetPathway(); $poll_id = JRequest::getVar( 'id', 0, '', 'int' ); $poll =& JTable::getInstance('poll', 'Table'); $poll->load( $poll_id ); // if id value is passed and poll not published then exit if ($poll->id > 0 && $poll->published != 1) { JError::raiseError( 403, JText::_('Access Forbidden') ); return; } // Adds parameter handling $params = $mainframe->getParams(); //Set page title information $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', $poll->title); } } else { $params->set('page_title', $poll->title); } $document->setTitle( $params->get( 'page_title' ) ); //Set pathway information $pathway->addItem($poll->title, ''); $params->def( 'show_page_title', 1 ); $params->def( 'page_title', $poll->title ); $first_vote = ''; $last_vote = ''; $votes = ''; // Check if there is a poll corresponding to id and if poll is published if ($poll->id > 0) { if (empty( $poll->title )) { $poll->id = 0; $poll->title = JText::_( 'Select Poll from the list' ); } $query = 'SELECT MIN( date ) AS mindate, MAX( date ) AS maxdate' . ' FROM #__poll_date' . ' WHERE poll_id = '. (int) $poll->id; $db->setQuery( $query ); $dates = $db->loadObject(); if (isset( $dates->mindate )) { $first_vote = JHTML::_('date', $dates->mindate, JText::_('DATE_FORMAT_LC2') ); $last_vote = JHTML::_('date', $dates->maxdate, JText::_('DATE_FORMAT_LC2') ); } $query = 'SELECT a.id, a.text, a.hits, b.voters ' . ' FROM #__poll_data AS a' . ' INNER JOIN #__polls AS b ON b.id = a.pollid' . ' WHERE a.pollid = '. (int) $poll->id . ' AND a.text <> ""' . ' ORDER BY a.hits DESC'; $db->setQuery( $query ); $votes = $db->loadObjectList(); } else { $votes = array(); } // list of polls for dropdown selection $query = 'SELECT id, title, alias' . ' FROM #__polls' . ' WHERE published = 1' . ' ORDER BY id' ; $db->setQuery( $query ); $pList = $db->loadObjectList(); foreach ($pList as $k=>$p) { $pList[$k]->url = JRoute::_('index.php?option=com_poll&id='.$p->id.':'.$p->alias); } array_unshift( $pList, JHTML::_('select.option', '', JText::_( 'Select Poll from the list' ), 'url', 'title' )); // dropdown output $lists = array(); $lists['polls'] = JHTML::_('select.genericlist', $pList, 'id', 'class="inputbox" size="1" style="width:200px" onchange="if (this.options[selectedIndex].value != \'\') {document.location.href=this.options[selectedIndex].value}"', 'url', 'title', JRoute::_('index.php?option=com_poll&id='.$poll->id.':'.$poll->alias) ); $graphwidth = 200; $barheight = 4; $maxcolors = 5; $barcolor = 0; $tabcnt = 0; $colorx = 0; $maxval = isset($votes[0]) ? $votes[0]->hits : 0; $sumval = isset($votes[0]) ? $votes[0]->voters : 0; $k = 0; for ($i = 0; $i < count( $votes ); $i++) { $vote =& $votes[$i]; if ($maxval > 0 && $sumval > 0) { $vote->width = ceil( $vote->hits * $graphwidth / $maxval ); $vote->percent = round( 100 * $vote->hits / $sumval, 1 ); } else { $vote->width = 0; $vote->percent = 0; } $vote->class = ''; if ($barcolor == 0) { if ($colorx < $maxcolors) { $colorx = ++$colorx; } else { $colorx = 1; } $vote->class = "polls_color_".$colorx; } else { $vote->class = "polls_color_".$barcolor; } $vote->barheight = $barheight; $vote->odd = $k; $vote->count = $i; $k = 1 - $k; } $this->assign('first_vote', $first_vote); $this->assign('last_vote', $last_vote); $this->assignRef('lists', $lists); $this->assignRef('params', $params); $this->assignRef('poll', $poll); $this->assignRef('votes', $votes); parent::display($tpl); } } ?> elracodelangela/components/com_poll/poll.php0000755000176700017710000000254311061563447022107 0ustar essawireessawireregisterTask( 'results', 'display' ); // Perform the Request task $controller->execute(JRequest::getCmd('task')); // Redirect if set by the controller $controller->redirect(); elracodelangela/components/com_poll/controller.php0000755000176700017710000000474711061563447023334 0ustar essawireessawireload( $poll_id ) || $poll->published != 1) { JError::raiseWarning( 404, JText::_('ALERTNOTAUTH') ); return; } $cookieName = JUtility::getHash( $mainframe->getName() . 'poll' . $poll_id ); // ToDo - may be adding those information to the session? $voted = JRequest::getVar( $cookieName, '0', 'COOKIE', 'INT'); if ($voted || !$option_id ) { if($voted) { $msg = JText::_('You already voted for this poll today!'); } if(!$option_id){ $msg = JText::_('WARNSELECT'); } } else { setcookie( $cookieName, '1', time() + $poll->lag ); require_once(JPATH_COMPONENT.DS.'models'.DS.'poll.php'); $model = new PollModelPoll(); $model->vote( $poll_id, $option_id ); $msg = JText::_( 'Thanks for your vote!' ); } // set Itemid id for links $menu = &JSite::getMenu(); $items = $menu->getItems('link', 'index.php?option=com_poll&view=poll'); $itemid = isset($items[0]) ? '&Itemid='.$items[0]->id : ''; $this->setRedirect( JRoute::_('index.php?option=com_poll&id='. $poll_id.':'.$poll->alias.$itemid, false), $msg ); } } ?>elracodelangela/components/com_poll/assets/0000755000176700017710000000000011061563606021720 5ustar essawireessawireelracodelangela/components/com_poll/assets/blank.png0000755000176700017710000000025011061563447023520 0ustar essawireessawirePNG  IHDREMYvtIME ''ڭ3R pHYs  ~gAMA aPLTEtRNS@fIDATx nH@<DIENDB`elracodelangela/components/com_poll/assets/poll_bars.css0000755000176700017710000000102411061563447024412 0ustar essawireessawire/* polls Bar Colors/Formats - Follow the format to add your own. Then update the maxcolors setting for polls in components/com_poll/poll.php -> $polls_maxcolors */ .polls_color_1{ background-color: #8D1B1B; border: 2px ridge #B22222; } .polls_color_2{ background-color: #6740E1; border: 2px ridge #4169E1; } .polls_color_3{ background-color: #8D8D8D; border: 2px ridge #D2D2D2; } .polls_color_4{ background-color: #CC8500; border: 2px ridge #FFA500; } .polls_color_5{ background-color: #5B781E; border: 2px ridge #6B8E23; } elracodelangela/components/com_poll/assets/index.html0000755000176700017710000000005411061563447023722 0ustar essawireessawireelracodelangela/components/com_poll/assets/poll.png0000755000176700017710000000121411061563447023400 0ustar essawireessawirePNG  IHDR ,c tIME  N pHYs  ~wPLTE/BCT œ UKln x ӚaMt vӚ! a Py~*!%Ӛ- a R 50:Ӛ> aV &*E5ARӚ[))aZ4;]DZrӚ""44a`DP~Ӛ++BBagXk$$66SSa$$u$ۃ..CCmma--88XXa@@EEppaZZaaak{tRNS@fIDATxc`**k`Ҳr')!=#3 cOHqSRCB#"cb=<}|ml]\ ML̕-,T54ut$edUxED%YX98yp?fAIENDB`elracodelangela/components/com_svmap/0000755000176700017710000000000011074453335020577 5ustar essawireessawireelracodelangela/components/com_svmap/svmap.css0000644000176700017710000000162211074453335022440 0ustar essawireessawire#svmap_business { width:100%; } .svmap_location { font-weight:bold; } .svmap_location, .svmap_contact, .svmap_options { width:33%; font-size:90%; background-color:#f9f9f9; padding:10px; border-bottom:1px solid #dddddd; } .svmap_description { padding:10px; } .row1 { background-color:#eeeeee; } #svmap_members th { border-top:1px solid #dddddd; border-bottom:1px solid #dddddd; } #svmap_members th, #svmap_members td { padding:2px 6px; } #svmap_members { width:100%; } #svmap_members h4 { padding:0; margin:0; } #svmap_business, #svmap_members { margin-bottom:20px; } #svmap fieldset { font-size:0.8em; color:#666666; padding:8px 10px; margin:4px 0; } #svmap fieldset legend { color:#666666; } #svmap input, #svmap select { font-size:1em; } #svmap fieldset p { margin:0 0 4px 0; } #svmap_directions { color:#000000; font-size:10pt; } elracodelangela/components/com_svmap/svmap.php0000644000176700017710000000121111074453335022431 0ustar essawireessawireexecute( JRequest::getVar('task')); $controller->redirect(); ?> elracodelangela/components/com_svmap/models/0000755000176700017710000000000011074453335022062 5ustar essawireessawireelracodelangela/components/com_svmap/models/svmap.php0000644000176700017710000005124611074453335023731 0ustar essawireessawire_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business WHERE id='.$id ) ); $this->_db->query(); if ($this->_db->getNumRows() == 1) { $temp = $this->_db->loadObject(); JRequest::set(Array('user_id'=>$temp->user_id,'type'=>$temp->type),'GET'); } } if (isset($_GET['id']) && isset($_GET['user_id']) && isset($_GET['type'])) { if ($type == '0') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business WHERE id='.$id ) ); $this->_db->query(); if ($this->_db->getNumRows() == 1) { $this->business = $this->_db->loadObjectList(); } } else if ($this->_config->linkwith != '0' && $this->_config->linkas == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business_link' ) ); $businessLink = $this->_db->loadObject(); $return = ''; if ($id != '0') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business WHERE id='.$id.' AND user_id='.$user_id.' AND type='.$type ) ); $return = $this->_db->loadObject(); } else { $return->marker = 'http://www.google.com/mapfiles/marker.png'; $return->id = 0; } if ($type == '1') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__contact_details WHERE id='.$user_id ) ); } else if ($type == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__comprofiler WHERE id='.$user_id ) ); } $temp = $this->_db->loadObject(); if (!empty($temp)) { $return->user_id = $temp->id; if (!empty($businessLink->name)) { $return->name = @$temp->{$businessLink->name}; } if (!empty($businessLink->address1)) { $return->address1 = @$temp->{$businessLink->address1}; } if (!empty($businessLink->address2)) { $return->address2 = @$temp->{$businessLink->address2}; } if (!empty($businessLink->address3)) { $return->address3 = @$temp->{$businessLink->address3}; } if (!empty($businessLink->postcode)) { $return->postcode = @$temp->{$businessLink->postcode}; } if (!empty($businessLink->city)) { $return->city = @$temp->{$businessLink->city}; } if (!empty($businessLink->country)) { $return->country = @$temp->{$businessLink->country}; } if (!empty($businessLink->phone)) { $return->phone = @$temp->{$businessLink->phone}; } if (!empty($businessLink->fax)) { $return->fax = @$temp->{$businessLink->fax}; } if (!empty($businessLink->email)) { $return->email = @$temp->{$businessLink->email}; } if (!empty($businessLink->description)) { $return->description = @$temp->{$businessLink->description}; } $return->type = '1'; } $this->business[] = $return; } return $this->business; } else { $this->business = $this->getBusinessList(); return $this->business; } } function getBusinessList() { $this->_db->setQuery( 'SELECT * FROM #__svmap_business WHERE type=0' ); $this->business = $this->_db->loadObjectList(); if ($this->_config->linkwith != '0' && $this->_config->linkas == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business_link' ) ); $businessLink = $this->_db->loadObject(); if ($this->_config->linkwith == '1') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__contact_details' ) ); $contacts = $this->_db->loadObjectList(); } else if ($this->_config->linkwith == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__comprofiler' ) ); $contacts = $this->_db->loadObjectList(); } foreach ($contacts as $contact) { if ($this->_config->linkwith == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__users WHERE id='.$contact->id ) ); $user = $this->_db->loadObject(); } if (($this->_config->linkwith == '1' && $contact->published == '1') || ($this->_config->linkwith == '2' && $user->block != '1')) { $temp = null; $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business WHERE user_id='.intval( $contact->id ).' AND type='.$this->_config->linkwith ) ); $business = $this->_db->loadObject(); if (!empty($business)) { $temp->id = $business->id; $temp->marker = $business->marker; $temp->lat = $business->lat; $temp->lon = $business->lon; } else { $temp->marker = 'http://www.google.com/mapfiles/marker.png'; $temp->id = 0; } $temp->user_id = $contact->id; if (!empty($businessLink->name)) { $temp->name = @$contact->{$businessLink->name}; } if (!empty($businessLink->address1)) { $temp->address1 = @$contact->{$businessLink->address1}; } if (!empty($businessLink->address2)) { $temp->address2 = @$contact->{$businessLink->address2}; } if (!empty($businessLink->address3)) { $temp->address3 = @$contact->{$businessLink->address3}; } if (!empty($businessLink->postcode)) { $temp->postcode = @$contact->{$businessLink->postcode}; } if (!empty($businessLink->city)) { $temp->city = @$contact->{$businessLink->city}; } if (!empty($businessLink->country)) { $temp->country = @$contact->{$businessLink->country}; } if (!empty($businessLink->phone)) { $temp->phone = @$contact->{$businessLink->phone}; } if (!empty($businessLink->fax)) { $temp->fax = @$contact->{$businessLink->fax}; } if (!empty($businessLink->email)) { $temp->email = @$contact->{$businessLink->email}; } if (!empty($businessLink->description)) { $temp->description = @$contact->{$businessLink->description}; } $temp->type = $this->_config->linkwith; $this->business[] = $temp; } } } return $this->business; } function getConfig() { $this->_db->setQuery( 'SELECT * FROM #__svmap_config' ); $this->_config = $this->_db->loadObject(); return $this->_config; } function getMembers() { $user_id = intval( JRequest::getVar('user_id') ); if (!empty($user_id)) { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business_members WHERE id_business='.$user_id ) ); $this->members = $this->_db->loadObjectList(); if ($this->members) { foreach($this->members as $temp) { if ($temp->type == '0') { $temps0[] = 'id='.$temp->id_member; } else if ($temp->type == '1') { $temps1[] = 'id='.$temp->id_member; } else if ($temp->type == '2') { $temps2[] = 'user_id='.$temp->id_member; } } } else { return false; } $temp = 0; if (@$temps0) { $where0 = implode(' OR ',$temps0); $where0 = ' WHERE '.$where0; $temp = 1; } if (@$temps1) { $where1 = implode(' OR ',$temps1); $where1 = ' WHERE '.$where1; $temp = 1; } if (@$temps2) { $where2 = implode(' OR ',$temps2); $where2 = ' WHERE '.$where2; $temp = 1; } if (!$temp) { return false; } $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_members'.$where0 ) ); $this->members = $this->_db->loadObjectList(); if ($this->_config->linkwith != '0' && $this->_config->linkas == '1') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_members_link' ) ); $membersLink = $this->_db->loadObject(); if ($this->_config->linkwith == '1') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__contact_details'.$where1 ) ); $contacts = $this->_db->loadObjectList(); foreach ($contacts as $contact) { if ($contact->published == '1') { $temp = null; $temp->id = $contact->id; if (!empty($membersLink->first_name)) { $temp->first_name = @$contact->{$membersLink->first_name}; } if (!empty($membersLink->last_name)) { $temp->last_name = @$contact->{$membersLink->last_name}; } if (!empty($membersLink->phone)) { $temp->phone = @$contact->{$membersLink->phone}; } if (!empty($membersLink->email)) { $temp->email = @$contact->{$membersLink->email}; } $temp->type = '1'; $this->members[] = $temp; } } } else if ($this->_config->linkwith == '2') { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__comprofiler'.$where2 ) ); $contacts = $this->_db->loadObjectList(); foreach ($contacts as $contact) { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__users WHERE id='.$contact->id ) ); $user = $this->_db->loadObject(); if ($user->block != '1') { $temp = null; $temp->id = $contact->id; if (!empty($membersLink->first_name)) { $temp->first_name = @$contact->{$membersLink->first_name}; } if (!empty($membersLink->last_name)) { $temp->last_name = @$contact->{$membersLink->last_name}; } if (!empty($membersLink->phone)) { $temp->phone = @$contact->{$membersLink->phone}; } if (!empty($membersLink->email)) { $temp->email = @$contact->{$membersLink->email}; } $temp->type = '2'; $this->members[] = $temp; } } } } return $this->members; } else { return false; } } function getOptions() { $id = intval( JRequest::getVar('id') ); if (!empty($id)) { $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_business_options WHERE id_business='.$id ) ); $this->options = $this->_db->loadObjectList(); if ($this->options) { foreach($this->options as $temp) { $temps[] = 'id='.$temp->id_option; } } if (@$temps) { $where = implode(' OR ',$temps); $where = ' WHERE '.$where; } else { return false; } $this->_db->setQuery( $this->_db->getEscaped( 'SELECT * FROM #__svmap_options'.$where ) ); $this->options = $this->_db->loadObjectList(); return $this->options; } else { return false; } } function getMap($num = '') { $language =& JFactory::getLanguage(); $language->load('com_svmap'); $document =& JFactory::getDocument(); $document->addStyleSheet('components/com_svmap/svmap.css'); $Itemid = JRequest::getVar('Itemid'); if (!empty($Itemid)) { $Itemid = '&Itemid='.$Itemid; } if (empty($num)) { $num = ''; } $map = '

          '.JText::_( 'SVMAP_COPYRIGHT' ).'

          '; if ($this->_config->direction == 1) { $map .= '
          '.JText::_( 'SVMAP_DIRECTIONS' ).'

          '.JText::_( 'SVMAP_FROM' ).' : '.JText::_( 'SVMAP_OR' ).'

          '.JText::_( 'SVMAP_TO' ).' : '.JText::_( 'SVMAP_OR' ).'
          '; } $map .= '
          '; return $map; } } ?>elracodelangela/components/com_svmap/models/index.html0000644000176700017710000000000011074453335024045 0ustar essawireessawireelracodelangela/components/com_svmap/index.html0000644000176700017710000000000011074453335022562 0ustar essawireessawireelracodelangela/components/com_svmap/views/0000755000176700017710000000000011074453335021734 5ustar essawireessawireelracodelangela/components/com_svmap/views/index.html0000644000176700017710000000000011074453335023717 0ustar essawireessawireelracodelangela/components/com_svmap/views/svmap/0000755000176700017710000000000011074453335023062 5ustar essawireessawireelracodelangela/components/com_svmap/views/svmap/index.html0000644000176700017710000000000011074453335025045 0ustar essawireessawireelracodelangela/components/com_svmap/views/svmap/tmpl/0000755000176700017710000000000011074453335024036 5ustar essawireessawireelracodelangela/components/com_svmap/views/svmap/tmpl/index.html0000644000176700017710000000000011074453335026021 0ustar essawireessawireelracodelangela/components/com_svmap/views/svmap/tmpl/default.php0000644000176700017710000000712411074453335026177 0ustar essawireessawiremap; if (count($this->business) == 1) { $this->business = $this->business[0]; ?> business->address1) || !empty($this->business->address2) || !empty($this->business->address3) || !empty($this->business->postcode) || !empty($this->business->city)) { echo ''; $col++; } if (!empty($this->business->phone) || !empty($this->business->fax) || !empty($this->business->email)) { echo ''; $col++; } if (!empty($this->options)) { echo ''; $col++; } echo ''; if (!empty($this->business->description)) { echo ''; echo ''; echo ''; } echo ''; if (!empty($this->business->name)) { echo ''; echo ''; echo ''; echo ''; echo ''; } ?>
          '; if (!empty($this->business->address1)) { echo $this->business->address1.'
          '; } if (!empty($this->business->address2)) { echo $this->business->address2.'
          '; } if (!empty($this->business->address3)) { echo $this->business->address3.'
          '; } if (!empty($this->business->city)) { echo $this->business->city.'
          '; } if (!empty($this->business->postcode)) { echo $this->business->postcode; } echo '
          '; if (!empty($this->business->phone)) { echo $this->business->phone.'
          '; } if (!empty($this->business->fax)) { echo $this->business->fax.'
          '; } if (!empty($this->business->email)) { echo @JHTML::_('email.cloak',$this->business->email); } echo '
          '; echo '
            '; foreach($this->options as $option) { echo '
          • '.$option->value.'
          • '; } echo '
          '; echo '
          '; echo '

          '.$this->business->description.'

          '; echo '
          '.$this->business->name.'
          members)) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $k = 0; foreach($this->members as $member) { $first_name = ''; $last_name = ''; $phone = ''; $email = ''; if (!empty($member->first_name)) { $first_name = $member->first_name; } if (!empty($member->last_name)) { $last_name = $member->last_name; } if (!empty($member->phone)) { $phone = $member->phone; } if (!empty($member->email)) { $email = @JHTML::_('email.cloak',$member->email); } echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $k = 1-$k; } echo '

          '.JText::_( 'SVMAP_MEMBERS' ).'

          '.JText::_( 'SVMAP_FIRST_NAME' ).''.JText::_( 'SVMAP_LAST_NAME' ).''.JText::_( 'SVMAP_PHONE' ).''.JText::_( 'SVMAP_EMAIL' ).'
          '.$first_name.''.$last_name.''.$phone.''.$email.'
          '; } } ?> elracodelangela/components/com_svmap/views/svmap/view.html.php0000644000176700017710000000147411074453335025516 0ustar essawireessawireget( 'Config' ); $this->assignRef( 'config', $config ); $business = $this->get( 'Business' ); $this->assignRef( 'business', $business ); $members = $this->get( 'Members' ); $this->assignRef( 'members', $members ); $options = $this->get( 'Options' ); $this->assignRef( 'options', $options ); $map = $this->get( 'Map' ); $this->assignRef( 'map', $map ); parent::display($tpl); } } ?> elracodelangela/components/com_svmap/controller.php0000644000176700017710000000071211074453335023473 0ustar essawireessawire elracodelangela/components/com_mailto/0000755000176700017710000000000011061563604020733 5ustar essawireessawireelracodelangela/components/com_mailto/mailto.php0000755000176700017710000000160111061563442022732 0ustar essawireessawireregisterDefaultTask('mailto'); $controller->execute(JRequest::getCmd('task')); //$controller->redirect();elracodelangela/components/com_mailto/mailto.xml0000755000176700017710000000140711061563442022747 0ustar essawireessawire MailTo Joomla! Project April 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 A generic mail to friend component elracodelangela/components/com_mailto/index.html0000755000176700017710000000005411061563442022732 0ustar essawireessawireelracodelangela/components/com_mailto/views/0000755000176700017710000000000011061563604022070 5ustar essawireessawireelracodelangela/components/com_mailto/views/mailto/0000755000176700017710000000000011061563604023355 5ustar essawireessawireelracodelangela/components/com_mailto/views/mailto/metadata.xml0000755000176700017710000000004511061563442025661 0ustar essawireessawire elracodelangela/components/com_mailto/views/mailto/index.html0000755000176700017710000000005411061563442025354 0ustar essawireessawireelracodelangela/components/com_mailto/views/mailto/tmpl/0000755000176700017710000000000011061563604024331 5ustar essawireessawireelracodelangela/components/com_mailto/views/mailto/tmpl/index.html0000755000176700017710000000005411061563442026330 0ustar essawireessawireelracodelangela/components/com_mailto/views/mailto/tmpl/default.php0000755000176700017710000000414311061563442026473 0ustar essawireessawire get('data'); ?>

          :

          :

          :

          :

          elracodelangela/components/com_mailto/views/mailto/view.html.php0000755000176700017710000000332211061563442026006 0ustar essawireessawiregetData(); if ($data === false) { return false; } $this->set('data' , $data); parent::display($tpl); } function &getData() { $user =& JFactory::getUser(); $data = new stdClass(); $data->link = urldecode( JRequest::getVar( 'link', '', 'method', 'base64' ) ); if ($data->link == '') { JError::raiseError( 403, 'Link is missing' ); $false = false; return $false; } // Load with previous data, if it exists $mailto = JRequest::getString('mailto', '', 'post'); $sender = JRequest::getString('sender', '', 'post'); $from = JRequest::getString('from', '', 'post'); $subject = JRequest::getString('subject', '', 'post'); if ($user->get('id') > 0) { $data->sender = $user->get('name'); $data->from = $user->get('email'); } else { $data->sender = $sender; $data->from = $from; } $data->subject = $subject; $data->mailto = $mailto; return $data; } } elracodelangela/components/com_mailto/views/sent/0000755000176700017710000000000011061563604023041 5ustar essawireessawireelracodelangela/components/com_mailto/views/sent/metadata.xml0000755000176700017710000000075111061563442025351 0ustar essawireessawire Mailto Andrew Eddie 13 Mar 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org Generic mail link to friend form elracodelangela/components/com_mailto/views/sent/index.html0000755000176700017710000000005411061563442025040 0ustar essawireessawireelracodelangela/components/com_mailto/views/sent/tmpl/0000755000176700017710000000000011061563604024015 5ustar essawireessawireelracodelangela/components/com_mailto/views/sent/tmpl/index.html0000755000176700017710000000005411061563442026014 0ustar essawireessawireelracodelangela/components/com_mailto/views/sent/tmpl/default.php0000755000176700017710000000066111061563442026160 0ustar essawireessawire elracodelangela/components/com_mailto/views/sent/view.html.php0000755000176700017710000000146511061563442025500 0ustar essawireessawireelracodelangela/components/com_mailto/controller.php0000755000176700017710000001002111061563442023624 0ustar essawireessawireset('com_mailto.formtime', time()); JRequest::setVar( 'view', 'mailto' ); $this->display(); } /** * Send the message and display a notice * * @access public * @since 1.5 */ function send() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $session =& JFactory::getSession(); $db =& JFactory::getDBO(); $timeout = $session->get('com_mailto.formtime', 0); if($timeout == 0 || time() - $timeout < 20) { JError::raiseNotice( 500, 'EMAIL_NOT_SENT' ); return $this->mailto(); } jimport( 'joomla.mail.helper' ); $SiteName = $mainframe->getCfg('sitename'); $MailFrom = $mainframe->getCfg('mailfrom'); $FromName = $mainframe->getCfg('fromname'); $link = base64_decode( JRequest::getVar( 'link', '', 'post', 'base64' ) ); // Verify that this is a local link if(!JURI::isInternal($link)) { //Non-local url... JError::raiseNotice( 500, 'EMAIL_NOT_SENT' ); return $this->mailto(); } // An array of e-mail headers we do not want to allow as input $headers = array ( 'Content-Type:', 'MIME-Version:', 'Content-Transfer-Encoding:', 'bcc:', 'cc:'); // An array of the input fields to scan for injected headers $fields = array ('mailto', 'sender', 'from', 'subject', ); /* * Here is the meat and potatoes of the header injection test. We * iterate over the array of form input and check for header strings. * If we fine one, send an unauthorized header and die. */ foreach ($fields as $field) { foreach ($headers as $header) { if (strpos($_POST[$field], $header) !== false) { JError::raiseError(403, ''); } } } /* * Free up memory */ unset ($headers, $fields); $email = JRequest::getString('mailto', '', 'post'); $sender = JRequest::getString('sender', '', 'post'); $from = JRequest::getString('from', '', 'post'); $subject_default = JText::sprintf('Item sent by', $sender); $subject = JRequest::getString('subject', $subject_default, 'post'); // Check for a valid to address $error = false; if ( ! $email || ! JMailHelper::isEmailAddress($email) ) { $error = JText::sprintf('EMAIL_INVALID', $email); JError::raiseWarning(0, $error ); } // Check for a valid from address if ( ! $from || ! JMailHelper::isEmailAddress($from) ) { $error = JText::sprintf('EMAIL_INVALID', $from); JError::raiseWarning(0, $error ); } if ( $error ) { return $this->mailto(); } // Build the message to send $msg = JText :: _('EMAIL_MSG'); $body = sprintf( $msg, $SiteName, $sender, $from, $link); // Clean the email data $subject = JMailHelper::cleanSubject($subject); $body = JMailHelper::cleanBody($body); $sender = JMailHelper::cleanAddress($sender); // Send the email if ( JUtility::sendMail($from, $sender, $email, $subject, $body) !== true ) { JError::raiseNotice( 500, 'EMAIL_NOT_SENT' ); return $this->mailto(); } JRequest::setVar( 'view', 'sent' ); $this->display(); } } elracodelangela/components/com_mailto/assets/0000755000176700017710000000000011061563604022235 5ustar essawireessawireelracodelangela/components/com_mailto/assets/close-x.png0000755000176700017710000000024211061563442024316 0ustar essawireessawirePNG  IHDR +t PLTE_o! pHYs  tIME7Z4,IDATxcZ!54ajh4i Sj1 ɁhGIENDB`elracodelangela/components/com_mailto/assets/index.html0000755000176700017710000000005411061563442024234 0ustar essawireessawireelracodelangela/components/com_masscontent/0000755000176700017710000000000011072762732022011 5ustar essawireessawireelracodelangela/components/com_weblinks/0000755000176700017710000000000011061563606021266 5ustar essawireessawireelracodelangela/components/com_weblinks/weblinks.php0000755000176700017710000000227511061563451023624 0ustar essawireessawireexecute(JRequest::getCmd('task')); // Redirect if set by the controller $controller->redirect(); elracodelangela/components/com_weblinks/router.php0000755000176700017710000001727411061563451023333 0ustar essawireessawiregetItems('componentid', $component->id); } // Search for an appropriate menu item. if (is_array($items)) { // If only the option and itemid are specified in the query, return that item. if (!isset($query['view']) && !isset($query['id']) && !isset($query['catid']) && isset($query['Itemid'])) { $itemid = (int) $query['Itemid']; } // Search for a specific link based on the critera given. if (!$itemid) { foreach ($items as $item) { // Check if this menu item links to this view. if (isset($item->query['view']) && $item->query['view'] == 'weblink' && isset($query['view']) && $query['view'] != 'category' && isset($item->query['id']) && $item->query['id'] == $query['id']) { $itemid = $item->id; } elseif (isset($item->query['view']) && $item->query['view'] == 'category' && isset($query['view']) && $query['view'] != 'weblink' && isset($item->query['catid']) && $item->query['catid'] == $query['catid']) { $itemid = $item->id; } } } // If no specific link has been found, search for a general one. if (!$itemid) { foreach ($items as $item) { if (isset($query['view']) && $query['view'] == 'weblink' && isset($item->query['view']) && $item->query['view'] == 'category' && isset($item->query['id']) && isset($query['catid']) && $query['catid'] == $item->query['id']) { // This menu item links to the weblink view but we need to append the weblink id to it. $itemid = $item->id; $segments[] = isset($query['catalias']) ? $query['catid'].':'.$query['catalias'] : $query['catid']; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } elseif (isset($query['view']) && $query['view'] == 'category' && isset($item->query['view']) && $item->query['view'] == 'category' && isset($item->query['id']) && isset($query['id']) && $item->query['id'] != $query['id']) { // This menu item links to the category view but we need to append the category id to it. $itemid = $item->id; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } } } // Search for an even more general link. if (!$itemid) { foreach ($items as $item) { if (isset($query['view']) && $query['view'] == 'weblink' && isset($item->query['view']) && $item->query['view'] == 'categories' && isset($query['catid']) && isset($query['id'])) { // This menu item links to the categories view but we need to append the category and weblink id to it. $itemid = $item->id; $segments[] = isset($query['catalias']) ? $query['catid'].':'.$query['catalias'] : $query['catid']; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } elseif (isset($query['view']) && $query['view'] == 'category' && isset($item->query['view']) && $item->query['view'] == 'categories' && !isset($query['catid'])) { // This menu item links to the categories view but we need to append the category id to it. $itemid = $item->id; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } } } } // Check if the router found an appropriate itemid. if (!$itemid) { // Check if a category was specified if (isset($query['view']) && $query['view'] == 'category' && isset($query['id'])) { if (isset($query['alias'])) { $query['id'] .= ':'.$query['alias']; } // Push the catid onto the stack. $segments[] = $query['id']; unset($query['view']); unset($query['id']); unset($query['alias']); } // Check if a id was specified. elseif (isset($query['id'])) { if (isset($query['catalias'])) { $query['catid'] .= ':'.$query['catalias']; } // Push the catid onto the stack. $segments[] = $query['catid']; if (isset($query['alias'])) { $query['id'] .= ':'.$query['alias']; } // Push the id onto the stack. $segments[] = $query['id']; unset($query['view']); unset($query['id']); unset($query['alias']); unset($query['catid']); unset($query['catalias']); } elseif (isset($query['catid'])) { if (isset($query['alias'])) { $query['catid'] .= ':'.$query['catalias']; } // Push the catid onto the stack. $segments[] = 'category'; $segments[] = $query['catid']; unset($query['view']); unset($query['catid']); unset($query['catalias']); unset($query['alias']); } else { // Categories view. unset($query['view']); } } else { $query['Itemid'] = $itemid; // Remove the unnecessary URL segments. unset($query['view']); unset($query['id']); unset($query['alias']); unset($query['catid']); unset($query['catalias']); } return $segments; } function WeblinksParseRoute($segments) { $vars = array(); // Get the active menu item. $menu = &JSite::getMenu(); $item = &$menu->getActive(); // Check if we have a valid menu item. if (is_object($item)) { // Proceed through the possible variations trying to match the most specific one. if (isset($item->query['view']) && $item->query['view'] == 'weblink' && isset($segments[0])) { // Contact view. $vars['view'] = 'weblink'; $vars['id'] = $segments[0]; } elseif (isset($item->query['view']) && $item->query['view'] == 'category' && count($segments) == 2) { // Weblink view. $vars['view'] = 'weblink'; $vars['id'] = $segments[1]; $vars['catid'] = $segments[0]; } elseif (isset($item->query['view']) && $item->query['view'] == 'category' && isset($segments[0])) { // Category view. $vars['view'] = 'category'; $vars['id'] = $segments[0]; } elseif (isset($item->query['view']) && $item->query['view'] == 'categories' && count($segments) == 2) { // Weblink view. $vars['view'] = 'weblink'; $vars['id'] = $segments[1]; $vars['catid'] = $segments[0]; } elseif (isset($item->query['view']) && $item->query['view'] == 'categories' && isset($segments[0])) { // Category view. $vars['view'] = 'category'; $vars['id'] = $segments[0]; } } else { // Count route segments $count = count($segments); // Check if there are any route segments to handle. if ($count) { if ($count == 2) { // We are viewing a weblink. $vars['view'] = 'weblink'; $vars['catid'] = $segments[$count-2]; $vars['id'] = $segments[$count-1]; } else { // We are viewing a category. $vars['view'] = 'category'; $vars['id'] = $segments[$count-1]; } } } return $vars; } elracodelangela/components/com_weblinks/controllers/0000755000176700017710000000000011061563606023634 5ustar essawireessawireelracodelangela/components/com_weblinks/controllers/weblink.php0000755000176700017710000000633111061563451026004 0ustar essawireessawireget('aid', 0) < 1) { JError::raiseError( 403, JText::_('ALERTNOTAUTH') ); return; } JRequest::setVar('view', 'weblink'); JRequest::setVar('layout', 'form'); $model =& $this->getModel('weblink'); $model->checkout(); parent::display(); } /** * Saves the record on an edit form submit * * @acces public * @since 1.5 */ function save() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get some objects from the JApplication $db =& JFactory::getDBO(); $user =& JFactory::getUser(); // Must be logged in if ($user->get('id') < 1) { JError::raiseError( 403, JText::_('ALERTNOTAUTH') ); return; } //get data from the request $post = JRequest::getVar('jform', array(), 'post', 'array'); $model = $this->getModel('weblink'); if ($model->store($post)) { $msg = JText::_( 'Weblink Saved' ); } else { $msg = JText::_( 'Error Saving Weblink' ); } // Check the table in so it can be edited.... we are done with it anyway $model->checkin(); // admin users gid $gid = 25; // list of admins $query = 'SELECT email, name' . ' FROM #__users' . ' WHERE gid = ' . $gid . ' AND sendEmail = 1'; $db->setQuery($query); if (!$db->query()) { JError::raiseError( 500, $db->stderr(true)); return; } $adminRows = $db->loadObjectList(); // send email notification to admins foreach ($adminRows as $adminRow) { JUtility::sendAdminMail($adminRow->name, $adminRow->email, '', JText::_('Web Link'), $post['title']." URL link ".$post[url], $user->get('username'), JURI::base()); } $this->setRedirect(JRoute::_('index.php?option=com_weblinks&view=category&id='.$post['catid'], false), $msg); } /** * Cancel the editing of a web link * * @access public * @since 1.5 */ function cancel() { // Get some objects from the JApplication $user = & JFactory::getUser(); // Must be logged in if ($user->get('id') < 1) { JError::raiseError( 403, JText::_('ALERTNOTAUTH') ); return; } // Checkin the weblink $model = $this->getModel('weblink'); $model->checkin(); $this->setRedirect(JRoute::_('index.php?option=com_weblinks&view=categories', false)); } } ?> elracodelangela/components/com_weblinks/controllers/index.html0000755000176700017710000000005411061563451025631 0ustar essawireessawireelracodelangela/components/com_weblinks/models/0000755000176700017710000000000011061563607022552 5ustar essawireessawireelracodelangela/components/com_weblinks/models/weblink.php0000755000176700017710000001377111061563453024731 0ustar essawireessawiresetId((int)$id); } /** * Method to set the weblink identifier * * @access public * @param int Weblink identifier */ function setId($id) { // Set weblink id and wipe data $this->_id = $id; $this->_data = null; } /** * Method to get a weblink * * @since 1.5 */ function &getData() { // Load the weblink data if ($this->_loadData()) { // Initialize some variables $user = &JFactory::getUser(); // Make sure the weblink is published if (!$this->_data->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // Check to see if the category is published if (!$this->_data->cat_pub) { JError::raiseError( 404, JText::_("Resource Not Found") ); return; } // Check whether category access level allows access if ($this->_data->cat_access > $user->get('aid', 0)) { JError::raiseError( 403, JText::_('ALERTNOTAUTH') ); return; } } else $this->_initData(); return $this->_data; } /** * Method to increment the hit counter for the weblink * * @access public * @return boolean True on success * @since 1.5 */ function hit() { global $mainframe; if ($this->_id) { $weblink = & $this->getTable(); $weblink->hit($this->_id); return true; } return false; } /** * Tests if weblink is checked out * * @access public * @param int A user id * @return boolean True if checked out * @since 1.5 */ function isCheckedOut( $uid=0 ) { if ($this->_loadData()) { if ($uid) { return ($this->_data->checked_out && $this->_data->checked_out != $uid); } else { return $this->_data->checked_out; } } } /** * Method to checkin/unlock the weblink * * @access public * @return boolean True on success * @since 1.5 */ function checkin() { if ($this->_id) { $weblink = & $this->getTable(); if(! $weblink->checkin($this->_id)) { $this->setError($this->_db->getErrorMsg()); return false; } return true; } return false; } /** * Method to checkout/lock the weblink * * @access public * @param int $uid User ID of the user checking the article out * @return boolean True on success * @since 1.5 */ function checkout($uid = null) { if ($this->_id) { // Make sure we have a user id to checkout the article with if (is_null($uid)) { $user =& JFactory::getUser(); $uid = $user->get('id'); } // Lets get to it and checkout the thing... $weblink = & $this->getTable(); if(!$weblink->checkout($uid, $this->_id)) { $this->setError($this->_db->getErrorMsg()); return false; } return true; } return false; } /** * Method to store the weblink * * @access public * @return boolean True on success * @since 1.5 */ function store($data) { $row =& $this->getTable(); // Bind the form fields to the web link table if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } // Create the timestamp for the date $row->date = gmdate('Y-m-d H:i:s'); // if new item, order last in appropriate group if (!$row->id) { $where = 'catid = ' . (int) $row->catid ; $row->ordering = $row->getNextOrder( $where ); } // Make sure the web link table is valid if (!$row->check()) { $this->setError($this->_db->getErrorMsg()); return false; } // Store the web link table to the database if (!$row->store()) { $this->setError($this->_db->getErrorMsg()); return false; } return true; } /** * Method to load content weblink data * * @access private * @return boolean True on success * @since 1.5 */ function _loadData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $query = 'SELECT w.*, cc.title AS category,' . ' cc.published AS cat_pub, cc.access AS cat_access'. ' FROM #__weblinks AS w' . ' LEFT JOIN #__categories AS cc ON cc.id = w.catid' . ' WHERE w.id = '. (int) $this->_id; $this->_db->setQuery($query); $this->_data = $this->_db->loadObject(); return (boolean) $this->_data; } return true; } /** * Method to initialise the weblink data * * @access private * @return boolean True on success * @since 1.5 */ function _initData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $weblink = new stdClass(); $weblink->id = 0; $weblink->catid = 0; $weblink->sid = 0; $weblink->title = null; $weblink->url = null; $weblink->description = null; $weblink->date = null; $weblink->hits = 0; $weblink->published = 0; $weblink->checked_out = 0; $weblink->checked_out_time = 0; $weblink->ordering = 0; $weblink->archived = 0; $weblink->approved = 0; $weblink->params = null; $weblink->category = null; $this->_data = $weblink; return (boolean) $this->_data; } return true; } } elracodelangela/components/com_weblinks/models/index.html0000755000176700017710000000005411061563453024550 0ustar essawireessawireelracodelangela/components/com_weblinks/models/categories.php0000755000176700017710000000461311061563453025416 0ustar essawireessawire_data)) { $query = $this->_buildQuery(); $this->_data = $this->_getList($query); } return $this->_data; } /** * Method to get the total number of weblink items for the category * * @access public * @return integer */ function getTotal() { // Lets load the content if it doesn't already exist if (empty($this->_total)) { $query = $this->_buildQuery(); $this->_total = $this->_getListCount($query); } return $this->_total; } function _buildQuery() { $user =& JFactory::getUser(); $aid = $user->get('aid', 0); //Query to retrieve all categories that belong under the web links section and that are published. $query = 'SELECT cc.*, COUNT(a.id) AS numlinks,' .' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\':\', cc.id, cc.alias) ELSE cc.id END as slug' .' FROM #__categories AS cc' .' LEFT JOIN #__weblinks AS a ON a.catid = cc.id' .' WHERE a.published = 1' .' AND section = \'com_weblinks\'' .' AND cc.published = 1' .' AND cc.access <= '.(int) $aid .' GROUP BY cc.id' .' ORDER BY cc.ordering'; return $query; } } ?> elracodelangela/components/com_weblinks/models/category.php0000755000176700017710000001254311061563453025107 0ustar essawireessawiresetState('limit', $mainframe->getUserStateFromRequest('com_weblinks.limit', 'limit', $config->getValue('config.list_limit'), 'int')); $this->setState('limitstart', JRequest::getVar('limitstart', 0, '', 'int')); // In case limit has been changed, adjust limitstart accordingly $this->setState('limitstart', ($this->getState('limit') != 0 ? (floor($this->getState('limitstart') / $this->getState('limit')) * $this->getState('limit')) : 0)); // Get the filter request variables $this->setState('filter_order', JRequest::getCmd('filter_order', 'ordering')); $this->setState('filter_order_dir', JRequest::getCmd('filter_order_Dir', 'ASC')); $id = JRequest::getVar('id', 0, '', 'int'); $this->setId((int)$id); } /** * Method to set the category id * * @access public * @param int Category ID number */ function setId($id) { // Set category ID and wipe data $this->_id = $id; $this->_category = null; } /** * Method to get weblink item data for the category * * @access public * @return array */ function getData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $query = $this->_buildQuery(); $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit')); $total = count($this->_data); for($i = 0; $i < $total; $i++) { $item =& $this->_data[$i]; $item->slug = $item->id.':'.$item->alias; } } return $this->_data; } /** * Method to get the total number of weblink items for the category * * @access public * @return integer */ function getTotal() { // Lets load the content if it doesn't already exist if (empty($this->_total)) { $query = $this->_buildQuery(); $this->_total = $this->_getListCount($query); } return $this->_total; } /** * Method to get a pagination object of the weblink items for the category * * @access public * @return integer */ function getPagination() { // Lets load the content if it doesn't already exist if (empty($this->_pagination)) { jimport('joomla.html.pagination'); $this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') ); } return $this->_pagination; } /** * Method to get category data for the current category * * @since 1.5 */ function getCategory() { // Load the Category data if ($this->_loadCategory()) { // Initialize some variables $user = &JFactory::getUser(); // Make sure the category is published if (!$this->_category->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // check whether category access level allows access if ($this->_category->access > $user->get('aid', 0)) { JError::raiseError(403, JText::_("ALERTNOTAUTH")); return false; } } return $this->_category; } /** * Method to load category data if it doesn't exist. * * @access private * @return boolean True on success */ function _loadCategory() { if (empty($this->_category)) { // current category info $query = 'SELECT c.*, ' . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END as slug '. ' FROM #__categories AS c' . ' WHERE c.id = '. (int) $this->_id . ' AND c.section = "com_weblinks"'; $this->_db->setQuery($query, 0, 1); $this->_category = $this->_db->loadObject(); } return true; } function _buildQuery() { $filter_order = $this->getState('filter_order'); $filter_order_dir = $this->getState('filter_order_dir'); $filter_order = JFilterInput::clean($filter_order, 'cmd'); $filter_order_dir = JFilterInput::clean($filter_order_dir, 'word'); // We need to get a list of all weblinks in the given category $query = 'SELECT *' . ' FROM #__weblinks' . ' WHERE catid = '. (int) $this->_id. ' AND published = 1' . ' AND archived = 0'. ' ORDER BY '. $filter_order .' '. $filter_order_dir .', ordering'; return $query; } } elracodelangela/components/com_weblinks/metadata.xml0000755000176700017710000000007711061563453023577 0ustar essawireessawire elracodelangela/components/com_weblinks/helpers/0000755000176700017710000000000011061563607022731 5ustar essawireessawireelracodelangela/components/com_weblinks/helpers/route.php0000755000176700017710000000340411061563453024603 0ustar essawireessawire (int) $catid, 'categories' => null ); //Find the itemid $itemid = WeblinksHelperRoute::_findItem($needles); $itemid = $itemid ? '&Itemid='.$itemid : ''; //Create the link $link = 'index.php?option=com_weblinks&view=weblink&id='. $id . '&catid='.$catid . $itemid; return $link; } function _findItem($needles) { static $items; if (!$items) { $component =& JComponentHelper::getComponent('com_weblinks'); $menu = &JSite::getMenu(); $items = $menu->getItems('componentid', $component->id); } if (!is_array($items)) { return null; } $match = null; foreach($needles as $needle => $id) { foreach($items as $item) { if ((@$item->query['view'] == $needle) && (@$item->query['id'] == $id)) { $match = $item->id; break; } } if(isset($match)) { break; } } return $match; } } ?> elracodelangela/components/com_weblinks/helpers/index.html0000755000176700017710000000005411061563453024727 0ustar essawireessawireelracodelangela/components/com_weblinks/index.html0000755000176700017710000000005411061563451023263 0ustar essawireessawireelracodelangela/components/com_weblinks/views/0000755000176700017710000000000011061563606022423 5ustar essawireessawireelracodelangela/components/com_weblinks/views/category/0000755000176700017710000000000011061563606024240 5ustar essawireessawireelracodelangela/components/com_weblinks/views/category/metadata.xml0000755000176700017710000000022611061563452026544 0ustar essawireessawire elracodelangela/components/com_weblinks/views/category/index.html0000755000176700017710000000005411061563452026236 0ustar essawireessawireelracodelangela/components/com_weblinks/views/category/view.feed.php0000755000176700017710000000376711061563452026644 0ustar essawireessawirelink = JRoute::_('index.php?option=com_weblinks&view=category&id='.JRequest::getVar('id',null, '', 'int')); JRequest::setVar('limit', $mainframe->getCfg('feed_limit')); // Get some data from the model $items =& $this->get( 'data' ); $category =& $this->get( 'category' ); foreach ( $items as $item ) { // strip html from feed item title $title = $this->escape( $item->title ); $title = html_entity_decode( $title ); // url link to article $link = JRoute::_('index.php?option=com_weblinks&view=weblink&id='. $item->id ); // strip html from feed item description text $description = $item->description; $date = ( $item->date ? date( 'r', strtotime($item->date) ) : '' ); // load individual item creator class $feeditem = new JFeedItem(); $feeditem->title = $title; $feeditem->link = $link; $feeditem->description = $description; $feeditem->date = $date; $feeditem->category = 'Weblinks'; // loads item info into rss array $document->addItem( $feeditem ); } } } ?> elracodelangela/components/com_weblinks/views/category/tmpl/0000755000176700017710000000000011061563606025214 5ustar essawireessawireelracodelangela/components/com_weblinks/views/category/tmpl/default.xml0000755000176700017710000000126311061563452027366 0ustar essawireessawire WEBLINK STANDARD CATEGORY LAYOUT WEBLINK STANDARD CATEGORY LAYOUT DESC elracodelangela/components/com_weblinks/views/category/tmpl/default_items.php0000755000176700017710000000502611061563452030557 0ustar essawireessawire
          params->def( 'show_headings', 1 ) ) : ?> params->get( 'show_link_hits' ) ) : ?> items as $item) : ?> params->get( 'show_link_hits' ) ) : ?>
          pagination->getLimitBox(); ?>
          lists['order_Dir'], $this->lists['order'] ); ?> lists['order_Dir'], $this->lists['order'] ); ?>
          pagination->getRowOffset( $item->count ); ?> image ) : ?>   image;?>   link; ?> params->get( 'show_link_description' ) ) : ?>
          description); ?>
          hits; ?>
          pagination->getPagesLinks(); ?>
          pagination->getPagesCounter(); ?>
          elracodelangela/components/com_weblinks/views/category/tmpl/index.html0000755000176700017710000000005411061563452027212 0ustar essawireessawireelracodelangela/components/com_weblinks/views/category/tmpl/default.php0000755000176700017710000000252711061563452027361 0ustar essawireessawire params->def( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>
          category->image || @$this->category->description ) : ?> params->get('show_other_cats', 1)): ?>
          category->image) ) : echo $this->category->image; endif; echo $this->category->description; ?>
          loadTemplate('items'); ?>
          elracodelangela/components/com_weblinks/views/category/view.html.php0000755000176700017710000001236411061563452026676 0ustar essawireessawiregetPathway(); // Get the parameters of the active menu item $menus = &JSite::getMenu(); $menu = $menus->getActive(); // Get some data from the model $items = &$this->get('data' ); $total = &$this->get('total'); $pagination = &$this->get('pagination'); $category = &$this->get('category' ); $state = &$this->get('state'); $model =& JModel::getInstance('categories', 'weblinksmodel'); $categories =& $model->getData(); // Get the page/component configuration $params = &$mainframe->getParams(); $category->total = $total; // Add alternate feed link if($params->get('show_feed_link', 1) == 1) { $link = '&view=category&id='.$category->slug.'&format=feed&limitstart='; $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0'); $document->addHeadLink(JRoute::_($link.'&type=rss'), 'alternate', 'rel', $attribs); $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0'); $document->addHeadLink(JRoute::_($link.'&type=atom'), 'alternate', 'rel', $attribs); } $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', $category->title); } } else { $params->set('page_title', $category->title); } $document->setTitle( $params->get( 'page_title' ) ); //set breadcrumbs if(is_object($menu) && $menu->query['view'] != 'category') { $pathway->addItem($category->title, ''); } // Prepare category description $category->description = JHTML::_('content.prepare', $category->description); // table ordering $lists['order_Dir'] = $state->get('filter_order_dir'); $lists['order'] = $state->get('filter_order'); // Set some defaults if not set for params $params->def('comp_description', JText::_('WEBLINKS_DESC')); // Define image tag attributes if (isset( $category->image ) && $category->image != '') { $attribs['align'] = $category->image_position; $attribs['hspace'] = 6; // Use the static HTML library to build the image tag $category->image = JHTML::_('image', 'images/stories/'.$category->image, JText::_('Web Links'), $attribs); } // icon in table display if ( $params->get( 'link_icons' ) <> -1 ) { $image = JHTML::_('image.site', $params->get('link_icons', 'weblink.png'), '/images/M_images/', $params->get( 'weblink_icons' ), '/images/M_images/', 'Link' ); } $k = 0; $count = count($items); for($i = 0; $i < $count; $i++) { $item =& $items[$i]; $link = JRoute::_( 'index.php?view=weblink&catid='.$category->slug.'&id='. $item->slug); $menuclass = 'category'.$params->get( 'pageclass_sfx' ); $itemParams = new JParameter($item->params); switch ($itemParams->get('target', $params->get('target'))) { // cases are slightly different case 1: // open in a new window $item->link = ''. $this->escape($item->title) .''; break; case 2: // open in a popup window $item->link = "". $this->escape($item->title) ."\n"; break; default: // formerly case 2 // open in parent window $item->link = ''. $this->escape($item->title) .''; break; } $item->image = $image; $item->odd = $k; $item->count = $i; $k = 1 - $k; } $count = count($categories); for($i = 0; $i < $count; $i++) { $cat =& $categories[$i]; $cat->link = JRoute::_('index.php?option=com_weblinks&view=category&id='. $cat->slug); } $this->assignRef('lists', $lists); $this->assignRef('params', $params); $this->assignRef('category', $category); $this->assignRef('categories', $categories); $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); $this->assign('action', $uri->toString()); parent::display($tpl); } } elracodelangela/components/com_weblinks/views/index.html0000755000176700017710000000005411061563452024421 0ustar essawireessawireelracodelangela/components/com_weblinks/views/weblink/0000755000176700017710000000000011061563606024056 5ustar essawireessawireelracodelangela/components/com_weblinks/views/weblink/index.html0000755000176700017710000000005411061563452026054 0ustar essawireessawireelracodelangela/components/com_weblinks/views/weblink/tmpl/0000755000176700017710000000000011061563606025032 5ustar essawireessawireelracodelangela/components/com_weblinks/views/weblink/tmpl/form.php0000755000176700017710000000627011061563452026515 0ustar essawireessawire
          params->def( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>
          lists['catid']; ?>
          lists['published']; ?>
          lists['ordering']; ?>
          elracodelangela/components/com_weblinks/views/weblink/tmpl/form.xml0000755000176700017710000000052611061563452026524 0ustar essawireessawire WEBLINK SUBMISSION LAYOUT WEBLINK SUBMISSION LAYOUT DESC elracodelangela/components/com_weblinks/views/weblink/tmpl/default.xml0000755000176700017710000000050511061563452027202 0ustar essawireessawire Weblink Layout This layout shows a single weblink. elracodelangela/components/com_weblinks/views/weblink/tmpl/index.html0000755000176700017710000000005411061563452027030 0ustar essawireessawireelracodelangela/components/com_weblinks/views/weblink/view.html.php0000755000176700017710000001154211061563452026511 0ustar essawireessawiregetLayout() == 'form') { $this->_displayForm($tpl); return; } //get the weblink $weblink =& $this->get('data'); if ($weblink->url) { // redirects to url if matching id found $mainframe->redirect($weblink->url); } parent::display($tpl); } function _displayForm($tpl) { global $mainframe; // Get some objects from the JApplication $pathway =& $mainframe->getPathway(); $document =& JFactory::getDocument(); $model =& $this->getModel(); $user =& JFactory::getUser(); $uri =& JFactory::getURI(); $params = &$mainframe->getParams(); // Make sure you are logged in and have the necessary access rights if ($user->get('gid') < 19) { JResponse::setHeader('HTTP/1.0 403',true); JError::raiseWarning( 403, JText::_('ALERTNOTAUTH') ); return; } //get the weblink $weblink =& $this->get('data'); $isNew = ($weblink->id < 1); // Edit or Create? if (!$isNew) { // Is this link checked out? If not by me fail //if ($model->isCheckedOut($user->get('id'))) { // $mainframe->redirect("index.php?option=$option", "The weblink $weblink->title is currently being edited by another administrator."); //} // Set page title $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'Web Links'.' - '.JText::_('Edit') )); } } else { $params->set('page_title', JText::_( 'Web Links'.' - '.JText::_('Edit') )); } $document->setTitle( $params->get( 'page_title' ) ); //set breadcrumbs if($item->query['view'] != 'weblink') { switch ($item->query['view']) { case 'categories': $pathway->addItem($weblink->category, 'index.php?view=category&id='.$weblink->catid); $pathway->addItem(JText::_('Edit').' '.$weblink->title, ''); break; case 'category': $pathway->addItem(JText::_('Edit').' '.$weblink->title, ''); break; } } } else { /* * The web link does not already exist so we are creating a new one. Here * we want to manipulate the pathway and pagetitle to indicate this. Also, * we need to initialize some values. */ $weblink->published = 0; $weblink->approved = 1; $weblink->ordering = 0; // Set page title // Set page title $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( JText::_('Submit a Web Link') )); } } else { $params->set('page_title', JText::_( JText::_('Submit a Web Link') )); } $document->setTitle( $params->get( 'page_title' ) ); // Add pathway item $pathway->addItem(JText::_('New'), ''); } // build list of categories $lists['catid'] = JHTML::_('list.category', 'jform[catid]', 'com_weblinks', intval($weblink->catid)); // build the html select list for ordering $query = 'SELECT ordering AS value, title AS text' . ' FROM #__weblinks' . ' WHERE catid = ' . (int) $weblink->catid . ' ORDER BY ordering'; $lists['ordering'] = JHTML::_('list.specificordering', $weblink, $weblink->id, $query ); // Radio Buttons: Should the article be published $lists['published'] = JHTML::_('select.booleanlist', 'jform[published]', 'class="inputbox"', $weblink->published ); JFilterOutput::objectHTMLSafe( $weblink, ENT_QUOTES, 'description' ); $this->assign('action', $uri->toString()); $this->assignRef('lists' , $lists); $this->assignRef('weblink' , $weblink); $this->assignRef('params' , $params); parent::display($tpl); } } ?> elracodelangela/components/com_weblinks/views/categories/0000755000176700017710000000000011061563606024550 5ustar essawireessawireelracodelangela/components/com_weblinks/views/categories/metadata.xml0000755000176700017710000000023611061563453027056 0ustar essawireessawire elracodelangela/components/com_weblinks/views/categories/index.html0000755000176700017710000000005411061563452026546 0ustar essawireessawireelracodelangela/components/com_weblinks/views/categories/tmpl/0000755000176700017710000000000011061563607025525 5ustar essawireessawireelracodelangela/components/com_weblinks/views/categories/tmpl/default.xml0000755000176700017710000000156411061563453027703 0ustar essawireessawire WEBLINK CATEGORY LIST LAYOUT WEBLINK CATEGORY LIST LAYOUT DESC elracodelangela/components/com_weblinks/views/categories/tmpl/index.html0000755000176700017710000000005411061563453027523 0ustar essawireessawireelracodelangela/components/com_weblinks/views/categories/tmpl/default.php0000755000176700017710000000222511061563453027665 0ustar essawireessawire params->def( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>
          params->def('image', -1) != -1) || $this->params->def('show_comp_description', 1) ) : ?>
          image) ) : echo $this->image; endif; echo $this->params->get('comp_description'); ?>
          elracodelangela/components/com_weblinks/views/categories/view.html.php0000755000176700017710000000507311061563453027206 0ustar essawireessawireget('data'); $total =& $this->get('total'); $state =& $this->get('state'); // Get the page/component configuration $params = &$mainframe->getParams(); $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'Web Links' )); } } else { $params->set('page_title', JText::_( 'Web Links' )); } $document->setTitle( $params->get( 'page_title' ) ); // Set some defaults if not set for params $params->def('comp_description', JText::_('WEBLINKS_DESC')); // Define image tag attributes if ($params->get('image') != -1) { if($params->get('image_align')!="") $attribs['align'] = $params->get('image_align'); else $attribs['align'] = ''; $attribs['hspace'] = 6; // Use the static HTML library to build the image tag $image = JHTML::_('image', 'images/stories/'.$params->get('image'), JText::_('Web Links'), $attribs); } for($i = 0; $i < count($categories); $i++) { $category =& $categories[$i]; $category->link = JRoute::_('index.php?option=com_weblinks&view=category&id='. $category->slug); // Prepare category description $category->description = JHTML::_('content.prepare', $category->description); } $this->assignRef('image', $image); $this->assignRef('params', $params); $this->assignRef('categories', $categories); parent::display($tpl); } } ?> elracodelangela/components/com_weblinks/controller.php0000755000176700017710000000241111061563451024161 0ustar essawireessawiregetModel('weblink'); $model->hit(); } parent::display(); } }elracodelangela/components/com_newsfeeds/0000755000176700017710000000000011061563605021432 5ustar essawireessawireelracodelangela/components/com_newsfeeds/router.php0000755000176700017710000001630711061563445023477 0ustar essawireessawiregetItems('componentid', $component->id); } // Search for an appropriate menu item. if (is_array($items)) { // If only the option and itemid are specified in the query, return that item. if (!isset($query['view']) && !isset($query['id']) && !isset($query['catid']) && isset($query['Itemid'])) { $itemid = (int) $query['Itemid']; } // Search for a specific link based on the critera given. if (!$itemid) { foreach ($items as $item) { // Check if this menu item links to this view. if (isset($item->query['view']) && $item->query['view'] == 'newsfeed' && isset($query['view']) && $query['view'] != 'category' && isset($item->query['id']) && isset($query['id']) && $item->query['id'] == $query['id']) { $itemid = $item->id; } elseif (isset($item->query['view']) && $item->query['view'] == 'category' && isset($query['view']) && $query['view'] != 'newsfeed' && isset($item->query['catid']) && $item->query['catid'] == $query['catid']) { $itemid = $item->id; } } } // If no specific link has been found, search for a general one. if (!$itemid) { foreach ($items as $item) { //var_dump($item->query); if (isset($query['view']) && $query['view'] == 'newsfeed' && isset($item->query['view']) && $item->query['view'] == 'category' && isset($item->query['id']) && isset($query['catid']) && $query['catid'] == $item->query['id']) { // This menu item links to the newsfeed view but we need to append the newsfeed id to it. $itemid = $item->id; $segments[] = isset($query['catalias']) ? $query['catid'].':'.$query['catalias'] : $query['catid']; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } elseif (isset($query['view']) && $query['view'] == 'category' && isset($item->query['view']) && $item->query['view'] == 'category' && isset($item->query['id']) && isset($query['id']) && $item->query['id'] != $query['id']) { // This menu item links to the category view but we need to append the category id to it. $itemid = $item->id; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } } } // Search for an even more general link. if (!$itemid) { foreach ($items as $item) { if (isset($query['view']) && $query['view'] == 'newsfeed' && isset($item->query['view']) && $item->query['view'] == 'categories' && isset($query['catid']) && isset($query['id'])) { // This menu item links to the categories view but we need to append the category and newsfeed id to it. $itemid = $item->id; $segments[] = isset($query['catalias']) ? $query['catid'].':'.$query['catalias'] : $query['catid']; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } elseif (isset($query['view']) && $query['view'] == 'category' && isset($item->query['view']) && $item->query['view'] == 'categories' && !isset($query['catid'])) { // This menu item links to the categories view but we need to append the category id to it. $itemid = $item->id; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } } } } // Check if the router found an appropriate itemid. if (!$itemid) { // Check if a id was specified. if (isset($query['id'])) { if (isset($query['alias'])) { $query['id'] .= ':'.$query['alias']; } // Push the id onto the stack. $segments[] = $query['id']; unset($query['view']); unset($query['id']); unset($query['alias']); } elseif (isset($query['catid'])) { if (isset($query['alias'])) { $query['catid'] .= ':'.$query['catalias']; } // Push the catid onto the stack. $segments[] = 'category'; $segments[] = $query['catid']; unset($query['view']); unset($query['catid']); unset($query['catalias']); unset($query['alias']); } else { // Categories view. unset($query['view']); } } else { $query['Itemid'] = $itemid; // Remove the unnecessary URL segments. unset($query['view']); unset($query['id']); unset($query['alias']); unset($query['catid']); unset($query['catalias']); } return $segments; } function NewsfeedsParseRoute($segments) { $vars = array(); // Get the active menu item. $menu = &JSite::getMenu(); $item = &$menu->getActive(); // Check if we have a valid menu item. if (is_object($item)) { // Proceed through the possible variations trying to match the most specific one. if (isset($item->query['view']) && $item->query['view'] == 'newsfeed' && isset($segments[0])) { // Contact view. $vars['view'] = 'newsfeed'; $vars['id'] = $segments[0]; } elseif (isset($item->query['view']) && $item->query['view'] == 'category' && count($segments) == 2) { // Newsfeed view. $vars['view'] = 'newsfeed'; $vars['id'] = $segments[1]; $vars['catid'] = $segments[0]; } elseif (isset($item->query['view']) && $item->query['view'] == 'category' && isset($segments[0])) { // Category view. $vars['view'] = 'category'; $vars['id'] = $segments[0]; } elseif (isset($item->query['view']) && $item->query['view'] == 'categories' && count($segments) == 2) { // Newsfeed view. $vars['view'] = 'newsfeed'; $vars['id'] = $segments[1]; $vars['catid'] = $segments[0]; } elseif (isset($item->query['view']) && $item->query['view'] == 'categories' && isset($segments[0])) { // Category view. $vars['view'] = 'category'; $vars['id'] = $segments[0]; } } else { // Count route segments $count = count($segments); // Check if there are any route segments to handle. if ($count) { if (count($segments[0]) == 2) { // We are viewing a newsfeed. $vars['view'] = 'newsfeed'; $vars['id'] = $segments[$count-2]; $vars['catid'] = $segments[$count-1]; } else { // We are viewing a category. $vars['view'] = 'category'; $vars['catid'] = $segments[$count-1]; } } } return $vars; } ?> elracodelangela/components/com_newsfeeds/models/0000755000176700017710000000000011061563606022716 5ustar essawireessawireelracodelangela/components/com_newsfeeds/models/newsfeed.php0000755000176700017710000000545611061563446025246 0ustar essawireessawiresetId((int)$id); } /** * Method to set the newsfeed identifier * * @access public * @param int Newsfeed identifier */ function setId($id) { // Set weblink id and wipe data $this->_id = $id; $this->_data = null; } /** * Method to get the newsfeed data * * @since 1.5 */ function &getData() { // Load the weblink data if ($this->_loadData()) { // Initialize some variables $user = &JFactory::getUser(); // Make sure the category is published if (!$this->_data->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // Check to see if the category is published if (!$this->_data->cat_pub) { JError::raiseError( 404, JText::_("Resource Not Found") ); return; } // Check whether category access level allows access if ($this->_data->cat_access > $user->get('aid', 0)) { JError::raiseError( 403, JText::_('ALERTNOTAUTH') ); return; } } return $this->_data; } /** * Method to load newsfeed data * * @access private * @return boolean True on success * @since 1.5 */ function _loadData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $query = 'SELECT f.*, cc.title AS category,'. ' cc.published AS cat_pub, cc.access AS cat_access,'. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\':\', cc.id, cc.alias) ELSE cc.id END as catslug'. ' FROM #__newsfeeds AS f' . ' LEFT JOIN #__categories AS cc ON cc.id = f.catid' . ' WHERE f.id = '.$this->_id; $this->_db->setQuery($query); $this->_data = $this->_db->loadObject(); return (boolean) $this->_data; } return true; } } ?> elracodelangela/components/com_newsfeeds/models/index.html0000755000176700017710000000005411061563446024717 0ustar essawireessawireelracodelangela/components/com_newsfeeds/models/categories.php0000755000176700017710000000465611061563446025574 0ustar essawireessawire_data)) { $query = $this->_buildQuery(); $this->_data = $this->_getList($query); } return $this->_data; } /** * Method to get the total number of newsfeed items for the categories * * @access public * @return integer */ function getTotal() { // Lets load the content if it doesn't already exist if (empty($this->_total)) { $query = $this->_buildQuery(); $this->_total = $this->_getListCount($query); } return $this->_total; } function _buildQuery() { $user =& JFactory::getUser(); $gid = $user->get('aid', 0); /* Query to retrieve all categories that belong under the newsfeeds section and that are published. */ $query = 'SELECT cc.*, a.catid, COUNT(a.id) AS numlinks,' . ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\':\', cc.id, cc.alias) ELSE cc.id END as slug' . ' FROM #__categories AS cc' . ' LEFT JOIN #__newsfeeds AS a ON a.catid = cc.id' . ' WHERE a.published = 1' . ' AND cc.section = \'com_newsfeeds\'' . ' AND cc.published = 1' . ' AND cc.access <= '.(int) $gid . ' GROUP BY cc.id' . ' ORDER BY cc.ordering' ; return $query; } } ?> elracodelangela/components/com_newsfeeds/models/category.php0000755000176700017710000001106411061563446025253 0ustar essawireessawiresetState('limit', $mainframe->getUserStateFromRequest('com_newsfeeds.limit', 'limit', $config->getValue('config.list_limit'), 'int')); $this->setState('limitstart', JRequest::getVar('limitstart', 0, '', 'int')); $id = JRequest::getVar('id', 0, '', 'int'); $this->setId((int)$id); } /** * Method to set the category id * * @access public * @param int Category ID number */ function setId($id) { // Set category ID and wipe data $this->_id = $id; $this->_category = null; } /** * Method to get newsfeed item data for the category * * @access public * @return array */ function getData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $query = $this->_buildQuery(); $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit')); $total = count($this->_data); for($i = 0; $i < $total; $i++) { $item =& $this->_data[$i]; $item->slug = $item->id.'-'.$item->alias; } } return $this->_data; } /** * Method to get the total number of newsfeed items for the category * * @access public * @return integer */ function getTotal() { // Lets load the content if it doesn't already exist if (empty($this->_total)) { $query = $this->_buildQuery(); $this->_total = $this->_getListCount($query); } return $this->_total; } /** * Method to get a pagination object of the newsfeeds items for the category * * @access public * @return integer */ function getPagination() { // Lets load the content if it doesn't already exist if (empty($this->_pagination)) { jimport('joomla.html.pagination'); $this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') ); } return $this->_pagination; } /** * Method to get category data for the current category * * @since 1.5 */ function getCategory() { // Load the Category data if ($this->_loadCategory()) { // Initialize some variables $user = &JFactory::getUser(); // Make sure the category is published if (!$this->_category->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // check whether category access level allows access if ($this->_category->access > $user->get('aid', 0)) { JError::raiseError(403, JText::_("ALERTNOTAUTH")); return false; } } return $this->_category; } /** * Method to load category data if it doesn't exist. * * @access private * @return boolean True on success */ function _loadCategory() { if (empty($this->_category)) { // current category info $query = 'SELECT c.*,' . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END as slug '. ' FROM #__categories AS c' . ' WHERE c.id = '. (int) $this->_id . ' AND c.section = "com_newsfeeds"'; $this->_db->setQuery($query, 0, 1); $this->_category = $this->_db->loadObject(); } return true; } function _buildQuery() { // We need to get a list of all weblinks in the given category $query = 'SELECT *' . ' FROM #__newsfeeds' . ' WHERE catid = '.(int) $this->_id. ' AND published = 1' . ' ORDER BY ordering'; return $query; } } ?>elracodelangela/components/com_newsfeeds/metadata.xml0000755000176700017710000000007711061563446023746 0ustar essawireessawire elracodelangela/components/com_newsfeeds/index.html0000755000176700017710000000005411061563445023433 0ustar essawireessawireelracodelangela/components/com_newsfeeds/views/0000755000176700017710000000000011061563605022567 5ustar essawireessawireelracodelangela/components/com_newsfeeds/views/category/0000755000176700017710000000000011061563605024404 5ustar essawireessawireelracodelangela/components/com_newsfeeds/views/category/metadata.xml0000755000176700017710000000024111061563445026710 0ustar essawireessawire elracodelangela/components/com_newsfeeds/views/category/index.html0000755000176700017710000000005411061563445026405 0ustar essawireessawireelracodelangela/components/com_newsfeeds/views/category/tmpl/0000755000176700017710000000000011061563605025360 5ustar essawireessawireelracodelangela/components/com_newsfeeds/views/category/tmpl/default.xml0000755000176700017710000000132211061563445027531 0ustar essawireessawire Newsfeed Category Layout NEWSFEED CATEGORY LAYOUT DESC elracodelangela/components/com_newsfeeds/views/category/tmpl/default_items.php0000755000176700017710000000377711061563445030741 0ustar essawireessawire
          params->get('show_limit')) : ?> params->get( 'show_headings' ) ) : ?> params->get( 'show_name' ) ) : ?> params->get( 'show_articles' ) ) : ?> items as $item) : ?> params->get( 'show_articles' ) ) : ?>
          pagination->getLimitBox(); ?>
          count + 1; ?> name; ?> numarticles; ?>
          pagination->getPagesLinks(); ?>
          pagination->getPagesCounter(); ?>
          elracodelangela/components/com_newsfeeds/views/category/tmpl/index.html0000755000176700017710000000005411061563445027361 0ustar essawireessawireelracodelangela/components/com_newsfeeds/views/category/tmpl/default.php0000755000176700017710000000153211061563445027523 0ustar essawireessawire params->get( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>
          image || @$this->category->description ) : ?>
          image) ) : echo $this->image; endif; echo $this->category->description; ?>
          loadTemplate('items'); ?>
          elracodelangela/components/com_newsfeeds/views/category/view.html.php0000755000176700017710000000533611061563445027046 0ustar essawireessawiregetPathway(); $document = & JFactory::getDocument(); // Get the parameters of the active menu item $menus = &JSite::getMenu(); $menu = $menus->getActive(); $params = &$mainframe->getParams(); $category = $this->get('category'); $items = $this->get('data'); $total = $this->get('total'); $pagination = &$this->get('pagination'); // Set page title $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', $category->title); } } else { $params->set('page_title', $category->title); } $document->setTitle( $params->get( 'page_title' ) ); //set breadcrumbs $pathway->addItem($category->title, ''); // Prepare category description $category->description = JHTML::_('content.prepare', $category->description); $k = 0; for($i = 0; $i < count($items); $i++) { $item =& $items[$i]; $item->link = JRoute::_('index.php?view=newsfeed&catid='.$category->slug.'&id='. $item->slug ); $item->odd = $k; $item->count = $i; $k = 1 - $k; } // Define image tag attributes if (!empty ($category->image)) { $attribs['align'] = $category->image_position; $attribs['hspace'] = 6; // Use the static HTML library to build the image tag $image = JHTML::_('image', 'images/stories/'.$category->image, JText::_('NEWS_FEEDS'), $attribs); } $this->assignRef('image', $image); $this->assignRef('params', $params); $this->assignRef('items', $items); $this->assignRef('category', $category); $this->assignRef('pagination', $pagination); parent::display($tpl); } } ?> elracodelangela/components/com_newsfeeds/views/index.html0000755000176700017710000000005411061563445024570 0ustar essawireessawireelracodelangela/components/com_newsfeeds/views/newsfeed/0000755000176700017710000000000011061563605024367 5ustar essawireessawireelracodelangela/components/com_newsfeeds/views/newsfeed/metadata.xml0000755000176700017710000000025711061563446026703 0ustar essawireessawire elracodelangela/components/com_newsfeeds/views/newsfeed/index.html0000755000176700017710000000005411061563446026371 0ustar essawireessawireelracodelangela/components/com_newsfeeds/views/newsfeed/tmpl/0000755000176700017710000000000011061563605025343 5ustar essawireessawireelracodelangela/components/com_newsfeeds/views/newsfeed/tmpl/default.xml0000755000176700017710000000073011061563446027517 0ustar essawireessawire Newsfeed Layout NEWSFEED SINGLE LAYOUT DESC elracodelangela/components/com_newsfeeds/views/newsfeed/tmpl/index.html0000755000176700017710000000005411061563446027345 0ustar essawireessawireelracodelangela/components/com_newsfeeds/views/newsfeed/tmpl/default.php0000755000176700017710000000360411061563446027511 0ustar essawireessawire
          params->get('show_page_title', 1)) : ?>
          escape($this->params->get('page_title')); ?>
          params->get( 'show_feed_description' ) ) : ?> newsfeed->image['url']) && isset($this->newsfeed->image['title']) && $this->params->get( 'show_feed_image' ) ) : ?>
          newsfeed->channel['title']); ?>
          newsfeed->channel['description']); ?>

          <?php echo $this->newsfeed->image['title']; ?>
            newsfeed->items as $item ) : ?>
          • get_link() ) ) : ?> get_title(); ?> params->get( 'show_item_description' ) && $item->get_description()) : ?>
            limitText($item->get_description(), $this->params->get( 'feed_word_count' )); echo str_replace(''', "'", $text); ?>

          elracodelangela/components/com_newsfeeds/views/newsfeed/view.html.php0000755000176700017710000000716711061563446027036 0ustar essawireessawiregetPathway(); $document =& JFactory::getDocument(); // Get the current menu item $menus = &JSite::getMenu(); $menu = $menus->getActive(); $params = &$mainframe->getParams(); //get the newsfeed $newsfeed =& $this->get('data'); // get RSS parsed object $options = array(); $options['rssUrl'] = $newsfeed->link; $options['cache_time'] = $newsfeed->cache_time; $rssDoc =& JFactory::getXMLparser('RSS', $options); if ( $rssDoc == false ) { $msg = JText::_('Error: Feed not retrieved'); $mainframe->redirect('index.php?option=com_newsfeeds&view=category&id='. $newsfeed->catslug, $msg); return; } $lists = array(); // channel header and link $newsfeed->channel['title'] = $rssDoc->get_title(); $newsfeed->channel['link'] = $rssDoc->get_link(); $newsfeed->channel['description'] = $rssDoc->get_description(); $newsfeed->channel['language'] = $rssDoc->get_language(); // channel image if exists $newsfeed->image['url'] = $rssDoc->get_image_url(); $newsfeed->image['title'] = $rssDoc->get_image_title(); $newsfeed->image['link'] = $rssDoc->get_image_link(); $newsfeed->image['height'] = $rssDoc->get_image_height(); $newsfeed->image['width'] = $rssDoc->get_image_width(); // items $newsfeed->items = $rssDoc->get_items(); // feed elements $newsfeed->items = array_slice($newsfeed->items, 0, $newsfeed->numarticles); // Set page title // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', $newsfeed->name); } } else { $params->set('page_title', $newsfeed->name); } $document->setTitle( $params->get( 'page_title' ) ); //set breadcrumbs $viewname = JRequest::getString('view'); if ( $viewname == 'categories' ) { $pathway->addItem($newsfeed->category, 'index.php?view=category&id='.$newsfeed->catslug); } $pathway->addItem($newsfeed->name, ''); $this->assignRef('params' , $params ); $this->assignRef('newsfeed', $newsfeed ); parent::display($tpl); } function limitText($text, $wordcount) { if(!$wordcount) { return $text; } $texts = explode( ' ', $text ); $count = count( $texts ); if ( $count > $wordcount ) { $text = ''; for( $i=0; $i < $wordcount; $i++ ) { $text .= ' '. $texts[$i]; } $text .= '...'; } return $text; } } ?> elracodelangela/components/com_newsfeeds/views/categories/0000755000176700017710000000000011061563605024714 5ustar essawireessawireelracodelangela/components/com_newsfeeds/views/categories/metadata.xml0000755000176700017710000000023611061563446027225 0ustar essawireessawire elracodelangela/components/com_newsfeeds/views/categories/index.html0000755000176700017710000000005411061563446026716 0ustar essawireessawireelracodelangela/components/com_newsfeeds/views/categories/tmpl/0000755000176700017710000000000011061563606025671 5ustar essawireessawireelracodelangela/components/com_newsfeeds/views/categories/tmpl/default.xml0000755000176700017710000000246011061563446030046 0ustar essawireessawire Newsfeed category List Layout NEWSFEED CATEGORY LIST LAYOUT DESC elracodelangela/components/com_newsfeeds/views/categories/tmpl/index.html0000755000176700017710000000005411061563446027672 0ustar essawireessawireelracodelangela/components/com_newsfeeds/views/categories/tmpl/default.php0000755000176700017710000000255111061563446030036 0ustar essawireessawire params->get( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>
          params->get('image') != -1) || $this->params->get('show_comp_description') ) : ?>
          image) ) : echo $this->image; endif; echo $this->params->get('comp_description'); ?>
            categories as $category ) : ?>
          • title;?> params->get( 'show_cat_items' ) ) : ?>   (numlinks;?>) params->get( 'show_cat_description' ) && $category->description ) : ?>
            description; ?>
          elracodelangela/components/com_newsfeeds/views/categories/view.html.php0000755000176700017710000000445211061563446027355 0ustar essawireessawiregetParams(); $categories =& $this->get('data'); for($i = 0; $i < count($categories); $i++) { $category =& $categories[$i]; $category->link = JRoute::_('index.php?view=category&id='. $category->slug ); // Prepare category description $category->description = JHTML::_('content.prepare', $category->description); } // Define image tag attributes if ($params->get('image') != -1) { $attribs['align'] = $params->get('image_align'); $attribs['hspace'] = 6; // Use the static HTML library to build the image tag $image = JHTML::_('image', 'images/stories/'.$params->get('image'), JText::_('NEWS_FEEDS'), $attribs); } $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'Newsfeeds' )); } } else { $params->set('page_title', JText::_( 'Newsfeeds' )); } $document = &JFactory::getDocument(); $document->setTitle( $params->get( 'page_title' ) ); $this->assignRef('image', $image); $this->assignRef('params', $params); $this->assignRef('categories', $categories); parent::display($tpl); } } ?> elracodelangela/components/com_newsfeeds/newsfeeds.php0000755000176700017710000000172411061563446024140 0ustar essawireessawireexecute(''); // Redirect if set by the controller $controller->redirect(); ?>elracodelangela/components/com_newsfeeds/controller.php0000755000176700017710000000217111061563445024334 0ustar essawireessawire elracodelangela/components/com_banners/0000755000176700017710000000000011061563606021100 5ustar essawireessawireelracodelangela/components/com_banners/router.php0000755000176700017710000000273711061563451023143 0ustar essawireessawiregetDBO(); $ordering = @$filters['ordering']; $tagSearch = @$filters['tag_search']; $randomise = ($ordering == 'random'); $wheres = array(); $wheres[] = 'showBanner = 1'; $wheres[] = '(imptotal = 0 OR impmade < imptotal)'; if (@$filters['cid']) { $wheres[] = 'cid = ' . (int) $filters['cid']; } if (@$filters['catid']) { $wheres[] = 'catid = ' . (int) $filters['catid']; } if (is_array( $tagSearch )) { $temp = array(); $n = count( $tagSearch ); if ($n == 0) { // if tagsearch is an array, and empty, fail the query $result = array(); return $result; } for ($i = 0; $i < $n; $i++) { $temp[] = "tags REGEXP '[[:<:]]".$db->getEscaped( $tagSearch[$i] ) . "[[:>:]]'"; } if ($n) { $wheres[] = '(' . implode( ' OR ', $temp). ')'; } } $query = "SELECT *" . ($randomise ? ', RAND() AS ordering' : '') . ' FROM #__banner' . ' WHERE ' . implode( ' AND ', $wheres ) . ' ORDER BY sticky DESC, ordering '; $db->setQuery( $query, 0, $filters['limit'] ); $result = $db->loadObjectList(); // if($db->getErrorNum()) { // JError::raiseError( 500, $db->stderr()); // } return $result; } /** * Makes impressions on a list of banners */ function impress( $list ) { $config =& JComponentHelper::getParams( 'com_banners' ); $db = &$this->getDBO(); $n = count( $list ); $trackImpressions = $config->get( 'track_impressions' ); $date =& JFactory::getDate(); $trackDate = $date->toFormat( '%Y-%m-%d' ); // TODO: Change loop single sql with where bid = x OR bid = y format for ($i = 0; $i < $n; $i++) { $item = &$list[$i]; $item->impmade++; $expire = ($item->impmade >= $item->imptotal) && ($item->imptotal != 0); $query = 'UPDATE #__banner' . ' SET impmade = impmade + 1' . ($expire ? ', showBanner=0' : '') . ' WHERE bid = '.(int) $item->bid ; $db->setQuery( $query ); if(!$db->query()) { JError::raiseError( 500, $db->stderror()); } if ($trackImpressions) { // TODO: Add impression tracking /* $query = 'UPDATE #__bannertrack SET' . ' track_type = 1,' . ' banner_id = ' . $item->bid; */ $query = 'INSERT INTO #__bannertrack ( track_type, banner_id, track_date )' . ' VALUES ( 1, '.(int) $item->bid.', '.$db->Quote($trackDate).' )' ; $db->setQuery( $query ); if(!$db->query()) { JError::raiseError( 500, $db->stderror() ); } } } } /** * Clicks the URL, incrementing the counter */ function click( $id = 0 ) { $config =& JComponentHelper::getParams( 'com_banners' ); $db = &$this->getDBO(); $trackClicks = $config->get( 'track_clicks' ); $date =& JFactory::getDate(); $trackDate = $date->toFormat( '%Y-%m-%d' ); // update click count $query = 'UPDATE #__banner' . ' SET clicks = ( clicks + 1 )' . ' WHERE bid = ' . (int)$id; $db->setQuery( $query ); if(!$db->query()) { JError::raiseError( 500, $db->stderror()); } if ($trackClicks) { $query = 'INSERT INTO #__bannertrack ( track_type, banner_id, track_date )' . ' VALUES ( 2, '.(int)$id.', '.$db->Quote($trackDate).' )' ; $db->setQuery( $query ); if(!$db->query()) { JError::raiseError( 500, $db->stderror() ); } } } /** * Get the URL for a */ function getUrl( $id = 0 ) { global $mainframe; $db = &$this->getDBO(); // redirect to banner url $query = 'SELECT clickurl FROM #__banner' . ' WHERE bid = ' . (int) $id; $db->setQuery( $query ); if(!$db->query()) { JError::raiseError( 500, $db->stderr()); } $url = $db->loadResult(); // check for links if (!preg_match( '#http[s]?://|index[2]?\.php#', $url )) { $url = "http://$url"; } return $url; } } elracodelangela/components/com_banners/models/index.html0000755000176700017710000000005411061563451024360 0ustar essawireessawireelracodelangela/components/com_banners/index.html0000755000176700017710000000005411061563451023075 0ustar essawireessawireelracodelangela/components/com_banners/banners.php0000755000176700017710000000174211061563451023246 0ustar essawireessawire 'click') ); // Perform the Request task $controller->execute(JRequest::getVar('task', null, 'default', 'cmd')); // Redirect if set by the controller $controller->redirect();elracodelangela/components/com_banners/controller.php0000755000176700017710000000205611061563451024000 0ustar essawireessawiregetModel( 'Banner' ); $model->click( $bid ); $this->setRedirect( $model->getUrl( $bid ) ); } } }elracodelangela/components/com_jce/0000755000176700017710000000000011074451460020207 5ustar essawireessawireelracodelangela/components/com_jce/js/0000755000176700017710000000000011074451460020623 5ustar essawireessawireelracodelangela/components/com_jce/js/popup.js0000644000176700017710000000264111074451460022327 0ustar essawireessawire// JCE Popup Javascript var jcePopupWindow = { init : function(width, height, click){ this.width = width; this.height = height; this.resizeToInnerSize(); this.centerWindow(); if(click){ this.noClick(); } }, // Based on a similar TinyMCE function : http://tinymce.moxiecode.com resizeToInnerSize : function(){ var n, d = document, b = d.body, dw, dh, x, oh = 0; var vw = window.innerWidth || d.documentElement.clientWidth || b.clientWidth || 0; var vh = window.innerHeight || d.documentElement.clientHeight || b.clientHeight || 0; // Add a little if title var divs = d.getElementsByTagName('div'); for(x=0;x elracodelangela/components/com_jce/css/0000755000176700017710000000000011074451460020777 5ustar essawireessawireelracodelangela/components/com_jce/css/index.html0000644000176700017710000000005711074451460022776 0ustar essawireessawire elracodelangela/components/com_jce/css/popup.css0000644000176700017710000000064011074451460022654 0ustar essawireessawire/* CSS Document */ body{ margin:0; padding:0; } div#jce_popup { margin:0; padding:0; display: block; } div#jce_popup div { margin:0; padding:0; float:left; display: block; } div#jce_popup div.contentheading{ width: 95%; } div#jce_popup div.buttonheading{ float:right; } div#jce_popup div img { margin:0; padding:0; cursor: pointer; border: 0; vertical-align: middle; } elracodelangela/components/com_jce/index.html0000644000176700017710000000005711074451460022206 0ustar essawireessawire elracodelangela/components/com_jce/popup.php0000644000176700017710000000441011074451460022062 0ustar essawireessawire
          <?php echo JText::_('Print');?>
          <?php echo $title;?>
          elracodelangela/components/com_jce/jce.php0000644000176700017710000000165311074451460021466 0ustar essawireessawire elracodelangela/components/index.html0000755000176700017710000000005711061563440020610 0ustar essawireessawire elracodelangela/components/com_search/0000755000176700017710000000000011061563604020713 5ustar essawireessawireelracodelangela/components/com_search/router.php0000755000176700017710000000204311061563442022746 0ustar essawireessawireelracodelangela/components/com_search/models/search.php0000755000176700017710000001115111061563443024157 0ustar essawireessawiresetState('limit', $mainframe->getUserStateFromRequest('com_search.limit', 'limit', $config->getValue('config.list_limit'), 'int')); $this->setState('limitstart', JRequest::getVar('limitstart', 0, '', 'int')); // Set the search parameters $keyword = urldecode(JRequest::getString('searchword')); $match = JRequest::getWord('searchphrase', 'all'); $ordering = JRequest::getWord('ordering', 'newest'); $this->setSearch($keyword, $match, $ordering); //Set the search areas $areas = JRequest::getVar('areas'); $this->setAreas($areas); } /** * Method to set the search parameters * * @access public * @param string search string * @param string mathcing option, exact|any|all * @param string ordering option, newest|oldest|popular|alpha|category */ function setSearch($keyword, $match = 'all', $ordering = 'newest') { if(isset($keyword)) { $this->setState('keyword', $keyword); } if(isset($match)) { $this->setState('match', $match); } if(isset($ordering)) { $this->setState('ordering', $ordering); } } /** * Method to set the search areas * * @access public * @param array Active areas * @param array Search areas */ function setAreas($active = array(), $search = array()) { $this->_areas['active'] = $active; $this->_areas['search'] = $search; } /** * Method to get weblink item data for the category * * @access public * @return array */ function getData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $areas = $this->getAreas(); JPluginHelper::importPlugin( 'search'); $dispatcher =& JDispatcher::getInstance(); $results = $dispatcher->trigger( 'onSearch', array( $this->getState('keyword'), $this->getState('match'), $this->getState('ordering'), $areas['active']) ); $rows = array(); foreach($results AS $result) { $rows = array_merge( (array) $rows, (array) $result); } $this->_total = count($rows); if($this->getState('limit') > 0) { $this->_data = array_splice($rows, $this->getState('limitstart'), $this->getState('limit')); } else { $this->_data = $rows; } } return $this->_data; } /** * Method to get the total number of weblink items for the category * * @access public * @return integer */ function getTotal() { return $this->_total; } /** * Method to get a pagination object of the weblink items for the category * * @access public * @return integer */ function getPagination() { // Lets load the content if it doesn't already exist if (empty($this->_pagination)) { jimport('joomla.html.pagination'); $this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') ); } return $this->_pagination; } /** * Method to get the search areas * * @since 1.5 */ function getAreas() { global $mainframe; // Load the Category data if (empty($this->_areas['search'])) { $areas = array(); JPluginHelper::importPlugin( 'search'); $dispatcher =& JDispatcher::getInstance(); $searchareas = $dispatcher->trigger( 'onSearchAreas' ); foreach ($searchareas as $area) { $areas = array_merge( $areas, $area ); } $this->_areas['search'] = $areas; } return $this->_areas; } } elracodelangela/components/com_search/index.html0000755000176700017710000000005411061563442022712 0ustar essawireessawireelracodelangela/components/com_search/views/0000755000176700017710000000000011061563604022050 5ustar essawireessawireelracodelangela/components/com_search/views/index.html0000755000176700017710000000005411061563442024047 0ustar essawireessawireelracodelangela/components/com_search/views/search/0000755000176700017710000000000011061563604023315 5ustar essawireessawireelracodelangela/components/com_search/views/search/metadata.xml0000755000176700017710000000022211061563442025616 0ustar essawireessawire elracodelangela/components/com_search/views/search/index.html0000755000176700017710000000005411061563442025314 0ustar essawireessawireelracodelangela/components/com_search/views/search/tmpl/0000755000176700017710000000000011061563604024271 5ustar essawireessawireelracodelangela/components/com_search/views/search/tmpl/default_results.php0000755000176700017710000000265511061563443030223 0ustar essawireessawire
          results as $result ) : ?>
          pagination->limitstart + $result->count.'. ';?> href ) : if ($result->browsernav == 1 ) : ?> escape($result->title); if ( $result->href ) : ?> section ) : ?>
          (escape($result->section); ?>)
          text; ?>
          params->get( 'show_date' )) : ?>
          created; ?>
          pagination->getPagesLinks( ); ?>
          elracodelangela/components/com_search/views/search/tmpl/default_error.php0000755000176700017710000000035011061563442027640 0ustar essawireessawire
          escape($this->error); ?>
          elracodelangela/components/com_search/views/search/tmpl/default.xml0000755000176700017710000000127611061563442026450 0ustar essawireessawire Search STANDARD SEARCH LAYOUT DESC elracodelangela/components/com_search/views/search/tmpl/index.html0000755000176700017710000000005411061563442026270 0ustar essawireessawireelracodelangela/components/com_search/views/search/tmpl/default.php0000755000176700017710000000072111061563442026431 0ustar essawireessawire params->get( 'show_page_title', 1 ) ) : ?>
          params->get( 'page_title' ); ?>
          loadTemplate('form'); ?> error && count($this->results) > 0) : echo $this->loadTemplate('results'); else : echo $this->loadTemplate('error'); endif; ?> elracodelangela/components/com_search/views/search/tmpl/default_form.php0000755000176700017710000000435211061563443027461 0ustar essawireessawire
          lists['searchphrase']; ?>
          lists['ordering'];?>
          params->get( 'search_areas', 1 )) : ?> : searchareas['search'] as $val => $txt) : $checked = is_array( $this->searchareas['active'] ) && in_array( $val, $this->searchareas['active'] ) ? 'checked="checked"' : ''; ?> />

          '. $this->escape($this->searchword) .''; ?>

          result; ?>

          total > 0) : ?>
          pagination->getLimitBox( ); ?>
          pagination->getPagesCounter(); ?>
          elracodelangela/components/com_search/views/search/view.html.php0000755000176700017710000001243011061563442025746 0ustar essawireessawiregetPathway(); $uri =& JFactory::getURI(); $error = ''; $rows = null; $total = 0; // Get some data from the model $areas = &$this->get('areas'); $state = &$this->get('state'); $searchword = $state->get('keyword'); $params = &$mainframe->getParams(); $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'Search' )); } } else { $params->set('page_title', JText::_( 'Search' )); } $document = &JFactory::getDocument(); $document->setTitle( $params->get( 'page_title' ) ); // Get the parameters of the active menu item $params = &$mainframe->getParams(); // built select lists $orders = array(); $orders[] = JHTML::_('select.option', 'newest', JText::_( 'Newest first' ) ); $orders[] = JHTML::_('select.option', 'oldest', JText::_( 'Oldest first' ) ); $orders[] = JHTML::_('select.option', 'popular', JText::_( 'Most popular' ) ); $orders[] = JHTML::_('select.option', 'alpha', JText::_( 'Alphabetical' ) ); $orders[] = JHTML::_('select.option', 'category', JText::_( 'Section/Category' ) ); $lists = array(); $lists['ordering'] = JHTML::_('select.genericlist', $orders, 'ordering', 'class="inputbox"', 'value', 'text', $state->get('ordering') ); $searchphrases = array(); $searchphrases[] = JHTML::_('select.option', 'all', JText::_( 'All words' ) ); $searchphrases[] = JHTML::_('select.option', 'any', JText::_( 'Any words' ) ); $searchphrases[] = JHTML::_('select.option', 'exact', JText::_( 'Exact phrase' ) ); $lists['searchphrase' ]= JHTML::_('select.radiolist', $searchphrases, 'searchphrase', '', 'value', 'text', $state->get('match') ); // log the search SearchHelper::logSearch( $searchword); //limit searchword if(SearchHelper::limitSearchWord($searchword)) { $error = JText::_( 'SEARCH_MESSAGE' ); } //sanatise searchword if(SearchHelper::santiseSearchWord($searchword, $state->get('match'))) { $error = JText::_( 'IGNOREKEYWORD' ); } if (!$searchword && count( JRequest::get('post') ) ) { //$error = JText::_( 'Enter a search keyword' ); } // put the filtered results back into the model // for next release, the checks should be done in the model perhaps... $state->set('keyword', $searchword); if(!$error) { $results = &$this->get('data' ); $total = &$this->get('total'); $pagination = &$this->get('pagination'); require_once (JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php'); for ($i=0; $i < count($results); $i++) { $row = &$results[$i]->text; if ($state->get('match') == 'exact') { $searchwords = array($searchword); $needle = $searchword; } else { $searchwords = preg_split("/\s+/", $searchword); $needle = $searchwords[0]; } $row = SearchHelper::prepareSearchContent( $row, 200, $needle ); $searchwords = array_unique( $searchwords ); $searchRegex = '#('; $x = 0; foreach ($searchwords as $k => $hlword) { $searchRegex .= ($x == 0 ? '' : '|'); $searchRegex .= preg_quote($hlword, '#'); $x++; } $searchRegex .= ')#iu'; $row = preg_replace($searchRegex, '\0', $row ); $result =& $results[$i]; if ($result->created) { $created = JHTML::Date ( $result->created ); } else { $created = ''; } $result->created = $created; $result->count = $i + 1; } } $this->result = JText::sprintf( 'TOTALRESULTSFOUND', $total ); $this->assignRef('pagination', $pagination); $this->assignRef('results', $results); $this->assignRef('lists', $lists); $this->assignRef('params', $params); $this->assign('ordering', $state->get('ordering')); $this->assign('searchword', $searchword); $this->assign('searchphrase', $state->get('match')); $this->assign('searchareas', $areas); $this->assign('total', $total); $this->assign('error', $error); $this->assign('action', $uri->toString()); parent::display($tpl); } } elracodelangela/components/com_search/search.php0000755000176700017710000000165211061563442022700 0ustar essawireessawireexecute(JRequest::getCmd('task')); // Redirect if set by the controller $controller->redirect();elracodelangela/components/com_search/controller.php0000755000176700017710000000401111061563442023606 0ustar essawireessawiregetItems('link', 'index.php?option=com_search&view=search'); if(isset($items[0])) { $post['Itemid'] = $items[0]->id; } unset($post['task']); unset($post['submit']); $uri = JURI::getInstance(); $uri->setQuery($post); $uri->setVar('option', 'com_search'); $this->setRedirect(JRoute::_('index.php'.$uri->toString(array('query', 'fragment')), false)); } } elracodelangela/components/com_media/0000755000176700017710000000000011061563606020527 5ustar essawireessawireelracodelangela/components/com_media/media.php0000755000176700017710000000506411061563450022324 0ustar essawireessawireauthorize( 'com_media', 'popup' )) { $mainframe->redirect('index.php', JText::_('ALERTNOTAUTH')); } // Get the media component configuration settings $params =& JComponentHelper::getParams('com_media'); // Set the path definitions define('COM_MEDIA_BASE', JPATH_ROOT.DS.$params->get('image_path', 'images'.DS.'stories')); define('COM_MEDIA_BASEURL', JURI::root(true).'/'.$params->get('image_path', 'images/stories')); // Load the admin HTML view require_once( JPATH_COMPONENT_ADMINISTRATOR.DS.'helpers'.DS.'media.php' ); // Require the base controller require_once (JPATH_COMPONENT.DS.'controller.php'); $cmd = JRequest::getCmd('task', null); if (strpos($cmd, '.') != false) { // We have a defined controller/task pair -- lets split them out list($controllerName, $task) = explode('.', $cmd); // Define the controller name and path $controllerName = strtolower($controllerName); $controllerPath = JPATH_COMPONENT_ADMINISTRATOR.DS.'controllers'.DS.$controllerName.'.php'; // If the controller file path exists, include it ... else lets die with a 500 error if (file_exists($controllerPath)) { require_once($controllerPath); } else { JError::raiseError(500, 'Invalid Controller'); } } else { // Base controller, just set the task :) $controllerName = null; $task = $cmd; } // Set the name for the controller and instantiate it $controllerClass = 'MediaController'.ucfirst($controllerName); if (class_exists($controllerClass)) { $controller = new $controllerClass(); } else { JError::raiseError(500, 'Invalid Controller Class'); } // Set the model and view paths to the administrator folders $controller->addViewPath(JPATH_COMPONENT_ADMINISTRATOR.DS.'views'); $controller->addModelPath(JPATH_COMPONENT_ADMINISTRATOR.DS.'models'); // Perform the Request task $controller->execute($task); // Redirect if set by the controller $controller->redirect(); elracodelangela/components/com_media/helpers/0000755000176700017710000000000011061563606022171 5ustar essawireessawireelracodelangela/components/com_media/helpers/media.php0000755000176700017710000000633311061563450023766 0ustar essawireessawireget( 'upload_extensions' )); if (!in_array($format, $allowable)) { $err = 'This file type is not supported'; return false; } $maxSize = (int) $params->get( 'upload_maxsize', 0 ); if ($maxSize > 0 && (int) $file['size'] > $maxSize) { $err = 'This file is too large to upload'; return false; } return true; } function parseSize($size) { if ($size < 1024) { return $size . ' bytes'; } else { if ($size >= 1024 && $size < 1024 * 1024) { return sprintf('%01.2f', $size / 1024.0) . ' Kb'; } else { return sprintf('%01.2f', $size / (1024.0 * 1024)) . ' Mb'; } } } function imageResize($width, $height, $target) { //takes the larger size of the width and height and applies the //formula accordingly...this is so this script will work //dynamically with any size image if ($width > $height) { $percentage = ($target / $width); } else { $percentage = ($target / $height); } //gets the new value and applies the percentage, then rounds the value $width = round($width * $percentage); $height = round($height * $percentage); //returns the new sizes in html image tag format...this is so you //can plug this function inside an image tag and just get the return "width=\"$width\" height=\"$height\""; } function countFiles( $dir ) { $total_file = 0; $total_dir = 0; if (is_dir($dir)) { $d = dir($dir); while (false !== ($entry = $d->read())) { if (substr($entry, 0, 1) != '.' && is_file($dir . DIRECTORY_SEPARATOR . $entry) && strpos($entry, '.html') === false && strpos($entry, '.php') === false) { $total_file++; } if (substr($entry, 0, 1) != '.' && is_dir($dir . DIRECTORY_SEPARATOR . $entry)) { $total_dir++; } } $d->close(); } return array ( $total_file, $total_dir ); } } ?>elracodelangela/components/com_media/helpers/index.html0000755000176700017710000000005711061563451024171 0ustar essawireessawire elracodelangela/components/com_media/images/0000755000176700017710000000000011061563606021774 5ustar essawireessawireelracodelangela/components/com_media/images/folder.gif0000755000176700017710000000241511061563450023740 0ustar essawireessawireGIF89aPPm4aqqq٪fcY̙߿SוhؿrߪxlEҍtѫ9f߹Ч+yIՂٳA篯ݷܼ] ͝o恡by$ٱ:ѲSlfRK{u֬1̉棣Ô}ߨp]ӣ9|||Tٳ+޵Rݞs'rҡŞ9#ҥܶGDpgJϝֹdZ~]0٫)Tvfffl~s1Hӭ;x!~,PP~?@YnE؏@c&*%XDB6٤E+%Òe\rRGoaChIOH Hix' ™Jrj衆jQ¤Vj饖*:G C*j 7Y 葂꫰z*뮼jjf0ő)`B&¡jApG,J*9hp_( 0B\ Y+YZ(@0P@4a* 7jA {F{> A~/.' gk1Th164@(#` K! DrOWmXg\w`-dmhv ;elracodelangela/components/com_media/index.html0000755000176700017710000000005711061563450022526 0ustar essawireessawire elracodelangela/components/com_media/controller.php0000755000176700017710000000355111061563450023427 0ustar essawireessawiregetType(); // Get/Create the view $view = &$this->getView( $vName, $vType); $view->addTemplatePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'views'.DS.strtolower($vName).DS.'tmpl'); // Get/Create the model if ($model = &$this->getModel($mName)) { // Push the model into the view (as default) $view->setModel($model, true); } // Set the layout $view->setLayout($vLayout); // Display the view $view->display(); } function ftpValidate() { // Set FTP credentials, if given jimport('joomla.client.helper'); JClientHelper::setCredentialsFromRequest('ftp'); } } elracodelangela/components/com_media/assets/0000755000176700017710000000000011061563606022031 5ustar essawireessawireelracodelangela/components/com_media/assets/popup-imagemanager.js0000755000176700017710000001365511061563450026157 0ustar essawireessawire/** * @version $Id: popup-imagemanager.js 8656 2007-08-30 22:40:39Z louis $ * @package Joomla * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * JImageManager behavior for media component * * @package Joomla.Extensions * @subpackage Media * @since 1.5 */ var ImageManager = { initialize: function() { o = this._getUriObject(window.self.location.href); //console.log(o); q = $H(this._getQueryObject(o.query)); this.editor = decodeURIComponent(q.get('e_name')); // Setup image manager fields object this.fields = new Object(); this.fields.url = $("f_url"); this.fields.alt = $("f_alt"); this.fields.align = $("f_align"); this.fields.title = $("f_title"); this.fields.caption = $("f_caption"); // Setup image listing objects this.folderlist = $('folderlist'); this.frame = window.frames['imageframe']; this.frameurl = this.frame.location.href; // Setup imave listing frame this.imageframe = $('imageframe'); this.imageframe.manager = this; this.imageframe.addEvent('load', function(){ ImageManager.onloadimageview(); }); // Setup folder up button this.upbutton = $('upbutton'); this.upbutton.removeEvents('click'); this.upbutton.addEvent('click', function(){ ImageManager.upFolder(); }); }, onloadimageview: function() { // Update the frame url this.frameurl = this.frame.location.href; var folder = this.getImageFolder(); for(var i = 0; i < this.folderlist.length; i++) { if(folder == this.folderlist.options[i].value) { this.folderlist.selectedIndex = i; break; } } a = this._getUriObject($('uploadForm').getProperty('action')); //console.log(a); q = $H(this._getQueryObject(a.query)); q.set('folder', folder); var query = []; q.each(function(v, k){ if ($chk(v)) { this.push(k+'='+v); } }, query); a.query = query.join('&'); $('uploadForm').setProperty('action', a.scheme+'://'+a.domain+a.path+'?'+a.query); }, getImageFolder: function() { var url = this.frame.location.search.substring(1); var args = this.parseQuery(url); return args['folder']; }, onok: function() { extra = ''; // Get the image tag field information var url = this.fields.url.getValue(); var alt = this.fields.alt.getValue(); var align = this.fields.align.getValue(); var title = this.fields.title.getValue(); var caption = this.fields.caption.getValue(); if (url != '') { // Set alt attribute if (alt != '') { extra = extra + 'alt="'+alt+'" '; } else { extra = extra + 'alt="" '; } // Set align attribute if (align != '') { extra = extra + 'align="'+align+'" '; } // Set align attribute if (title != '') { extra = extra + 'title="'+title+'" '; } // Set align attribute if (caption != '') { extra = extra + 'class="caption" '; } var tag = ""; } window.parent.jInsertEditorText(tag, this.editor); return false; }, setFolder: function(folder) { //this.showMessage('Loading'); for(var i = 0; i < this.folderlist.length; i++) { if(folder == this.folderlist.options[i].value) { this.folderlist.selectedIndex = i; break; } } this.frame.location.href='index.php?option=com_media&view=imagesList&tmpl=component&folder=' + folder; }, getFolder: function() { return this.folderlist.getValue(); }, upFolder: function() { var currentFolder = this.getFolder(); if(currentFolder.length < 2) { return false; } var folders = currentFolder.split('/'); var search = ''; for(var i = 0; i < folders.length - 1; i++) { search += folders[i]; search += '/'; } // remove the trailing slash search = search.substring(0, search.length - 1); for(var i = 0; i < this.folderlist.length; i++) { var thisFolder = this.folderlist.options[i].value; if(thisFolder == search) { this.folderlist.selectedIndex = i; var newFolder = this.folderlist.options[i].value; this.setFolder(newFolder); break; } } }, populateFields: function(file) { $("f_url").value = image_base_path+file; }, showMessage: function(text) { var message = $('message'); var messages = $('messages'); if(message.firstChild) message.removeChild(message.firstChild); message.appendChild(document.createTextNode(text)); messages.style.display = "block"; }, parseQuery: function(query) { var params = new Object(); if (!query) { return params; } var pairs = query.split(/[;&]/); for ( var i = 0; i < pairs.length; i++ ) { var KeyVal = pairs[i].split('='); if ( ! KeyVal || KeyVal.length != 2 ) { continue; } var key = unescape( KeyVal[0] ); var val = unescape( KeyVal[1] ).replace(/\+ /g, ' '); params[key] = val; } return params; }, refreshFrame: function() { this._setFrameUrl(); }, _setFrameUrl: function(url) { if ($chk(url)) { this.frameurl = url; } this.frame.location.href = this.frameurl; }, _getQueryObject: function(q) { var vars = q.split(/[&;]/); var rs = {}; if (vars.length) vars.each(function(val) { var keys = val.split('='); if (keys.length && keys.length == 2) rs[encodeURIComponent(keys[0])] = encodeURIComponent(keys[1]); }); return rs; }, _getUriObject: function(u){ var bits = u.match(/^(?:([^:\/?#.]+):)?(?:\/\/)?(([^:\/?#]*)(?::(\d*))?)((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[\?#]|$)))*\/?)?([^?#\/]*))?(?:\?([^#]*))?(?:#(.*))?/); return (bits) ? bits.associate(['uri', 'scheme', 'authority', 'domain', 'port', 'path', 'directory', 'file', 'query', 'fragment']) : null; } }; window.addEvent('domready', function(){ ImageManager.initialize(); }); elracodelangela/components/com_media/assets/arrow-down.png0000755000176700017710000000053511061563450024641 0ustar essawireessawirePNG  IHDR ?sBITOHPLTE[ȒZR؋egewfUc~Rgk·iSctRNSVs pHYs  ~tEXtCreation Time02/08/06{tEXtSoftwareMacromedia Fireworks 8hx;IDATcLN!vnn66a>!.0*`dSfaIENDB`elracodelangela/components/com_media/assets/index.html0000755000176700017710000000005711061563450024030 0ustar essawireessawire elracodelangela/components/com_media/assets/popup-imagemanager.css0000755000176700017710000000444011061563450026323 0ustar essawireessawire/** * @version $Id: popup-imagemanager.css 6668 2007-02-18 19:13:36Z hackwar $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * ImageManager javascript behavior styling * * @author Johan Janssens * @package Joomla * @since 1.5 * @version 1.0 */ html, body { background-color: #F0F0F0; color: ButtonText; font: 11px Tahoma, Verdana, sans-serif; margin: 0; padding: 0; } img { border: 0 none; } form { padding: 0px; margin: 0 auto; width: 550px; padding-top: 5px; } fieldset { margin-top: 0.5em; border: 1px solid #CCCCCC; padding-top: 10px; } button { padding: 3px; border: 1px solid #CCCCCC; font-weight: bold; color: #0B55C4; background-color: white; } button:hover { border: 1px solid #0B55C4; } select,input,button { font: 11px Tahoma, Verdana, sans-serif; } iframe { width: 100%; overflow-x: false; border: 0 none; margin: 0; padding: 0; margin-top: 0.5em;} iframe#imageframe { height: 175px; } iframe#uploadview { height: 40px; } a { padding: 5px; border: 1px solid ButtonFace; } a:hover { border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; } .buttons { width: 70px; text-align: center; } #f_alt, #f_url, #f_title { width: 22em; } #messages { position: relative; left: 175px; top: 115px; background-color: white; width: 200px; float: left; margin-top: -52px; border: 1px solid #ccc; text-align: center; padding: 15px; } #message { font-size: 15px; font-weight: bold; color: #69c; } #uploadpanel { border: 1px solid #ccc; margin: 5px 2px 0 2px;} #uploadpanel .title { padding: 4px; margin: 0; cursor: pointer;} #uploadpane { } #uploadpanel .toggler span { background: transparent url(arrow.png) 0 50% no-repeat; padding-left: 20px;} #uploadpanel .toggler-down span { background: transparent url(arrow-down.png) 0 50% no-repeat; padding-left: 20px;} #uploadpanel .toggler-down { border-bottom: 1px solid #ccc; }elracodelangela/components/com_media/assets/arrow.png0000755000176700017710000000054211061563450023672 0ustar essawireessawirePNG  IHDR ?sBITOEPLTE[ܶuVْt~Sw_wThQޖuvTOtRNS 5 pHYs  ~tEXtCreation Time02/08/06{tEXtSoftwareMacromedia Fireworks 8hxDIDATcge~^.8Ga0Eln&03ExxY! xa Am"ЕIENDB`elracodelangela/components/com_media/assets/popup-imagelist.css0000755000176700017710000000244411061563450025666 0ustar essawireessawire/** * @version $Id: popup-imagelist.css 3997 2006-06-12 03:59:51Z spacemonkey $ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ /** * JImageManager imagelist styling * * @author Johan Janssens * @package Joomla * @since 1.5 * @version 1.0 */ html, body { margin: 0; padding: 0; font: 10px Tahoma, Verdana, sans-serif; } .item { float: left; border: 1px solid #ccc; margin: 3px; position: relative; } .item a { display: table-cell; _display: block; width: 80px; height: 80px; vertical-align:middle; text-align: center; text-decoration: none; color: black; } .item a:hover { background-color: white; } .item img { border: 0 none; margin-top: expression(( 80 - this.height ) / 2); } .item span { display: block; width: 76px; position: absolute; bottom: 0; padding: 2px; background-color: #ddd; filter:alpha(opacity=70); -moz-opacity: 0.70; opacity: 0.70; } elracodelangela/components/com_content/0000755000176700017710000000000011061563604021120 5ustar essawireessawireelracodelangela/components/com_content/router.php0000755000176700017710000001052411061563443023157 0ustar essawireessawiregetActive(); } else { $menuItem = &$menu->getItem($query['Itemid']); } $mView = (empty($menuItem->query['view'])) ? null : $menuItem->query['view']; $mCatid = (empty($menuItem->query['catid'])) ? null : $menuItem->query['catid']; $mId = (empty($menuItem->query['id'])) ? null : $menuItem->query['id']; if(isset($query['view'])) { $view = $query['view']; if(empty($query['Itemid'])) { $segments[] = $query['view']; } unset($query['view']); }; // are we dealing with an article that is attached to a menu item? if (($mView == 'article') and (isset($query['id'])) and ($mId == intval($query['id']))) { unset($query['view']); unset($query['catid']); unset($query['id']); } if (isset($view) and ($view == 'section' && !empty($query['Itemid']))) { if (($mView != 'section') or ($mView == 'section' and $mId != intval($query['id']))) { $segments[] = 'section'; unset($query['Itemid']); } } if (isset($view) and $view == 'category') { if ($mId != intval($query['id']) || $mView != $view) { $segments[] = $query['id']; } unset($query['id']); } if (isset($query['catid'])) { // if we are routing an article or category where the category id matches the menu catid, don't include the category segment if ((($view == 'article') and ($mView != 'category') and ($mView != 'article') and ($mCatid != intval($query['catid'])))) { $segments[] = $query['catid']; } unset($query['catid']); }; if(isset($query['id'])) { if (empty($query['Itemid'])) { $segments[] = $query['id']; } else { if (isset($menuItem->query['id'])) { if($query['id'] != $mId) { $segments[] = $query['id']; } } else { $segments[] = $query['id']; } } unset($query['id']); }; if(isset($query['year'])) { if(!empty($query['Itemid'])) { $segments[] = $query['year']; unset($query['year']); } }; if(isset($query['month'])) { if(!empty($query['Itemid'])) { $segments[] = $query['month']; unset($query['month']); } }; if(isset($query['layout'])) { if(!empty($query['Itemid']) && isset($menuItem->query['layout'])) { if ($query['layout'] == $menuItem->query['layout']) { unset($query['layout']); } } else { if($query['layout'] == 'default') { unset($query['layout']); } } }; return $segments; } function ContentParseRoute($segments) { $vars = array(); //Get the active menu item $menu =& JSite::getMenu(); $item =& $menu->getActive(); // Count route segments $count = count($segments); //Standard routing for articles if(!isset($item)) { $vars['view'] = $segments[0]; $vars['id'] = $segments[$count - 1]; return $vars; } //Handle View and Identifier switch($item->query['view']) { case 'section' : { if($count == 1) { $vars['view'] = 'category'; if(isset($item->query['layout']) && $item->query['layout'] == 'blog') { $vars['layout'] = 'blog'; } } if($count == 2) { $vars['view'] = 'article'; $vars['catid'] = $segments[$count-2]; } $vars['id'] = $segments[$count-1]; } break; case 'category' : { $vars['id'] = $segments[$count-1]; $vars['view'] = 'article'; } break; case 'frontpage' : { $vars['id'] = $segments[$count-1]; $vars['view'] = 'article'; } break; case 'article' : { $vars['id'] = $segments[$count-1]; $vars['view'] = 'article'; } break; case 'archive' : { if($count != 1) { $vars['year'] = $count >= 2 ? $segments[$count-2] : null; $vars['month'] = $segments[$count-1]; $vars['view'] = 'archive'; } else { $vars['id'] = $segments[$count-1]; $vars['view'] = 'article'; } } } return $vars; } elracodelangela/components/com_content/models/0000755000176700017710000000000011061563605022404 5ustar essawireessawireelracodelangela/components/com_content/models/index.html0000755000176700017710000000005411061563444024404 0ustar essawireessawireelracodelangela/components/com_content/models/frontpage.php0000755000176700017710000001332311061563444025110 0ustar essawireessawire_loadData()) { // Initialize some variables $user =& JFactory::getUser(); // raise errors } return $this->_data; } /** * Method to get the total number of content items for the frontpage * * @access public * @return integer */ function getTotal() { // Lets load the content if it doesn't already exist if (empty($this->_total)) { $query = $this->_buildQuery(); $this->_total = $this->_getListCount($query); } return $this->_total; } /** * Method to load content item data for items in the frontpage * exist. * * @access private * @return boolean True on success */ function _loadData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { // Get the pagination request variables $limit = JRequest::getVar('limit', 0, '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); $query = $this->_buildQuery(); $Arows = $this->_getList($query, $limitstart, $limit); // special handling required as Uncategorized content does not have a section / category id linkage $i = $limitstart; $rows = array(); foreach ($Arows as $row) { // check to determine if section or category has proper access rights $rows[$i] = $row; $i ++; } $this->_data = $rows; } return true; } function _buildQuery() { global $mainframe; // Get the page/component configuration $params = &$mainframe->getParams(); // Voting is turned on, get voting data as well for the content items $voting = ContentHelperQuery::buildVotingQuery($params); // Get the WHERE and ORDER BY clauses for the query $where = $this->_buildContentWhere(); $orderby = $this->_buildContentOrderBy(); $query = ' SELECT a.id, a.title, a.title_alias, a.introtext, a.fulltext, a.sectionid, a.state, a.catid, a.created, a.created_by, a.created_by_alias, a.modified, a.modified_by,' . ' a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.images, a.attribs, a.urls, a.metakey, a.metadesc, a.access,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,'. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug,'. ' CHAR_LENGTH( a.`fulltext` ) AS readmore,' . ' u.name AS author, u.usertype, g.name AS groups, cc.title AS category, s.title AS section, s.ordering AS s_ordering, cc.ordering AS cc_ordering, a.ordering AS a_ordering, f.ordering AS f_ordering'. $voting['select'] . ' FROM #__content AS a' . ' INNER JOIN #__content_frontpage AS f ON f.content_id = a.id' . ' LEFT JOIN #__categories AS cc ON cc.id = a.catid'. ' LEFT JOIN #__sections AS s ON s.id = a.sectionid'. ' LEFT JOIN #__users AS u ON u.id = a.created_by' . ' LEFT JOIN #__groups AS g ON a.access = g.id'. $voting['join']. $where .$orderby ; return $query; } function _buildContentOrderBy() { global $mainframe; // Get the page/component configuration $params = &$mainframe->getParams(); if (!is_object($params)) { $params = &JComponentHelper::getParams('com_content'); } $orderby_sec = $params->def('orderby_sec', ''); $orderby_pri = $params->def('orderby_pri', ''); $secondary = ContentHelperQuery::orderbySecondary($orderby_sec); $primary = ContentHelperQuery::orderbyPrimary($orderby_pri); $orderby = ' ORDER BY '.$primary.' '.$secondary; return $orderby; } function _buildContentWhere() { global $mainframe; $user =& JFactory::getUser(); $gid = $user->get('aid', 0); // TODO: Should we be using requestTime here? or is JDate ok? // $now = $mainframe->get('requestTime'); $jnow =& JFactory::getDate(); $now = $jnow->toMySQL(); // Get the page/component configuration $params = &$mainframe->getParams(); $noauth = !$params->get('show_noauth'); $nullDate = $this->_db->getNullDate(); //First thing we need to do is assert that the articles are in the current category $where = ' WHERE 1'; // Does the user have access to view the items? if ($noauth) { $where .= ' AND a.access <= '.(int) $gid; } if ($user->authorize('com_content', 'edit', 'content', 'all')) { $where .= ' AND a.state >= 0'; } else { $where .= ' AND a.state = 1'. ' AND (( cc.published = 1'. ' AND s.published = 1 )'. ' OR ( a.catid = 0 AND a.sectionid = 0 ) )'; $where .= ' AND ( a.publish_up = '.$this->_db->Quote($nullDate).' OR a.publish_up <= '.$this->_db->Quote($now).' )' . ' AND ( a.publish_down = '.$this->_db->Quote($nullDate).' OR a.publish_down >= '.$this->_db->Quote($now).' )'; } return $where; } } elracodelangela/components/com_content/models/article.php0000755000176700017710000003701311061563444024550 0ustar essawireessawiresetId((int)$id); } /** * Method to set the article id * * @access public * @param int Article ID number */ function setId($id) { // Set new article ID and wipe data $this->_id = $id; $this->_article = null; } /** * Overridden set method to pass properties on to the article * * @access public * @param string $property The name of the property * @param mixed $value The value of the property to set * @return boolean True on success * @since 1.5 */ function set( $property, $value=null ) { if ($this->_loadArticle()) { $this->_article->$property = $value; return true; } else { return false; } } /** * Overridden get method to get properties from the article * * @access public * @param string $property The name of the property * @param mixed $value The value of the property to set * @return mixed The value of the property * @since 1.5 */ function get($property, $default=null) { if ($this->_loadArticle()) { if(isset($this->_article->$property)) { return $this->_article->$property; } } return $default; } /** * Method to get content article data for the frontpage * * @since 1.5 */ function &getArticle() { // Load the Category data if ($this->_loadArticle()) { $user = & JFactory::getUser(); // Is the category published? if (!$this->_article->cat_pub && $this->_article->catid) { JError::raiseError( 404, JText::_("Article category not published") ); } // Is the section published? if ($this->_article->sectionid) { if ($this->_article->sec_pub === null) { // probably a new item // check the sectionid probably passed in the request $db =& $this->getDBO(); $query = 'SELECT published' . ' FROM #__sections' . ' WHERE id = ' . (int) $this->_article->sectionid; $db->setQuery( $query ); $this->_article->sec_pub = $db->loadResult(); } if (!$this->_article->sec_pub) { JError::raiseError( 404, JText::_("Article section not published") ); } } // Do we have access to the category? if (($this->_article->cat_access > $user->get('aid', 0)) && $this->_article->catid) { JError::raiseError( 403, JText::_("ALERTNOTAUTH") ); } // Do we have access to the section? if (($this->_article->sec_access > $user->get('aid', 0)) && $this->_article->sectionid) { JError::raiseError( 403, JText::_("ALERTNOTAUTH") ); } $this->_loadArticleParams(); /* * Record the hit on the article if necessary */ $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); if (!$this->_article->parameters->get('intro_only') && ($limitstart == 0)) { $this->hit(); } } else { $user =& JFactory::getUser(); $article =& JTable::getInstance('content'); $article->state = 1; $article->cat_pub = null; $article->sec_pub = null; $article->cat_access = null; $article->sec_access = null; $article->author = null; $article->created_by = $user->get('id'); $article->parameters = new JParameter( '' ); $article->text = ''; $this->_article = $article; } return $this->_article; } /** * Method to increment the hit counter for the article * * @access public * @return boolean True on success * @since 1.5 */ function hit() { global $mainframe; if ($this->_id) { $article = & JTable::getInstance('content'); $article->hit($this->_id); return true; } return false; } /** * Tests if article is checked out * * @access public * @param int A user id * @return boolean True if checked out * @since 1.5 */ function isCheckedOut( $uid=0 ) { if ($this->_loadArticle()) { if ($uid) { return ($this->_article->checked_out && $this->_article->checked_out != $uid); } else { return $this->_article->checked_out; } } elseif ($this->_id < 1) { return false; } else { JError::raiseWarning( 0, 'Unable to Load Data'); return false; } } /** * Method to checkin/unlock the article * * @access public * @return boolean True on success * @since 1.5 */ function checkin() { if ($this->_id) { $article = & JTable::getInstance('content'); return $article->checkin($this->_id); } return false; } /** * Method to checkout/lock the article * * @access public * @param int $uid User ID of the user checking the article out * @return boolean True on success * @since 1.5 */ function checkout($uid = null) { if ($this->_id) { // Make sure we have a user id to checkout the article with if (is_null($uid)) { $user =& JFactory::getUser(); $uid = $user->get('id'); } // Lets get to it and checkout the thing... $article = & JTable::getInstance('content'); return $article->checkout($uid, $this->_id); } return false; } /** * Method to store the article * * @access public * @return boolean True on success * @since 1.5 */ function store($data) { global $mainframe; $article =& JTable::getInstance('content'); $user =& JFactory::getUser(); $dispatcher =& JDispatcher::getInstance(); JPluginHelper::importPlugin('content'); // Bind the form fields to the web link table if (!$article->bind($data, "published")) { $this->setError($this->_db->getErrorMsg()); return false; } // sanitise id field $article->id = (int) $article->id; $isNew = ($article->id < 1); if ($isNew) { $article->created = gmdate('Y-m-d H:i:s'); $article->created_by = $user->get('id'); } else { $article->modified = gmdate('Y-m-d H:i:s'); $article->modified_by = $user->get('id'); } // Append time if not added to publish date if (strlen(trim($article->publish_up)) <= 10) { $article->publish_up .= ' 00:00:00'; } $date =& JFactory::getDate($article->publish_up, $mainframe->getCfg('offset')); $article->publish_up = $date->toMySQL(); // Handle never unpublish date if (trim($article->publish_down) == JText::_('Never') || trim( $article->publish_down ) == '') { $article->publish_down = $this->_db->getNullDate();; } else { if (strlen(trim( $article->publish_down )) <= 10) { $article->publish_down .= ' 00:00:00'; } $date =& JFactory::getDate($article->publish_down, $mainframe->getCfg('offset')); $article->publish_down = $date->toMySQL(); } $article->title = trim( $article->title ); // Publishing state hardening for Authors if (!$user->authorize('com_content', 'publish', 'content', 'all')) { if ($isNew) { // For new items - author is not allowed to publish - prevent them from doing so $article->state = 0; } else { // For existing items keep existing state - author is not allowed to change status $query = 'SELECT state' . ' FROM #__content' . ' WHERE id = '.(int) $article->id; $this->_db->setQuery($query); $state = $this->_db->loadResult(); if ($state) { $article->state = 1; } else { $article->state = 0; } } } // Search for the {readmore} tag and split the text up accordingly. $text = str_replace('
          ', '
          ', $data['text']); $pattern = '##i'; $tagPos = preg_match($pattern, $text); if ($tagPos == 0) { $article->introtext = $text; } else { list($article->introtext, $article->fulltext) = preg_split($pattern, $text, 2); } // Filter settings jimport( 'joomla.application.component.helper' ); $config = JComponentHelper::getParams( 'com_content' ); $user = &JFactory::getUser(); $gid = $user->get( 'gid' ); $filterGroups = (array) $config->get( 'filter_groups' ); if (in_array( $gid, $filterGroups )) { $filterType = $config->get( 'filter_type' ); $filterTags = preg_split( '#[,\s]+#', trim( $config->get( 'filter_tags' ) ) ); $filterAttrs = preg_split( '#[,\s]+#', trim( $config->get( 'filter_attritbutes' ) ) ); switch ($filterType) { case 'NH': $filter = new JFilterInput(); break; case 'WL': $filter = new JFilterInput( $filterTags, $filterAttrs, 0, 0 ); break; case 'BL': default: $filter = new JFilterInput( $filterTags, $filterAttrs, 1, 1 ); break; } $article->introtext = $filter->clean( $article->introtext ); $article->fulltext = $filter->clean( $article->fulltext ); } // Make sure the article table is valid if (!$article->check()) { $this->setError($article->getError()); return false; } $article->version++; //Trigger OnBeforeContentSave $result = $dispatcher->trigger('onBeforeContentSave', array(&$article, $isNew)); if(in_array(false, $result, true)) { $this->setError($article->getError()); return false; } // Store the article table to the database if (!$article->store()) { $this->setError($this->_db->getErrorMsg()); return false; } if ($isNew) { $this->_id = $article->_db->insertId(); } $article->reorder("catid = " . (int) $data['catid']); //Trigger OnAfterContentSave $dispatcher->trigger('onAfterContentSave', array(&$article, $isNew)); $this->_article =& $article; return true; } /** * Method to store a user rating for a content article * * @access public * @param int $rating Article rating [ 1 - 5 ] * @return boolean True on success * @since 1.5 */ function storeVote($rate) { if ( $rate >= 1 && $rate <= 5) { $userIP = $_SERVER['REMOTE_ADDR']; $query = 'SELECT *' . ' FROM #__content_rating' . ' WHERE content_id = '.(int) $this->_id; $this->_db->setQuery($query); $rating = $this->_db->loadObject(); if (!$rating) { // There are no ratings yet, so lets insert our rating $query = 'INSERT INTO #__content_rating ( content_id, lastip, rating_sum, rating_count )' . ' VALUES ( '.(int) $this->_id.', '.$this->_db->Quote($userIP).', '.(int) $rate.', 1 )'; $this->_db->setQuery($query); if (!$this->_db->query()) { JError::raiseError( 500, $this->_db->stderr()); } } else { if ($userIP != ($rating->lastip)) { // We weren't the last voter so lets add our vote to the ratings totals for the article $query = 'UPDATE #__content_rating' . ' SET rating_count = rating_count + 1, rating_sum = rating_sum + '.(int) $rate.', lastip = '.$this->_db->Quote($userIP) . ' WHERE content_id = '.(int) $this->_id; $this->_db->setQuery($query); if (!$this->_db->query()) { JError::raiseError( 500, $this->_db->stderr()); } } else { return false; } } return true; } JError::raiseWarning( 'SOME_ERROR_CODE', 'Article Rating:: Invalid Rating:' .$rate, "JModelArticle::storeVote($rate)"); return false; } /** * Method to load content article data * * @access private * @return boolean True on success * @since 1.5 */ function _loadArticle() { global $mainframe; if($this->_id == '0') { return false; } // Load the content if it doesn't already exist if (empty($this->_article)) { // Get the page/component configuration $params = &$mainframe->getParams(); // If voting is turned on, get voting data as well for the article $voting = ContentHelperQuery::buildVotingQuery($params); // Get the WHERE clause $where = $this->_buildContentWhere(); $query = 'SELECT a.*, u.name AS author, u.usertype, cc.title AS category, s.title AS section,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug,'. ' g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access '.$voting['select']. ' FROM #__content AS a' . ' LEFT JOIN #__categories AS cc ON cc.id = a.catid' . ' LEFT JOIN #__sections AS s ON s.id = cc.section AND s.scope = "content"' . ' LEFT JOIN #__users AS u ON u.id = a.created_by' . ' LEFT JOIN #__groups AS g ON a.access = g.id'. $voting['join']. $where; $this->_db->setQuery($query); $this->_article = $this->_db->loadObject(); if ( ! $this->_article ) { return false; } if($this->_article->publish_down == $this->_db->getNullDate()) { $this->_article->publish_down = JText::_('Never'); } // These attributes need to be defined in order for the voting plugin to work if ( count($voting) && ! isset($this->_article->rating_count) ) { $this->_article->rating_count = 0; $this->_article->rating = 0; } return true; } return true; } /** * Method to load content article parameters * * @access private * @return void * @since 1.5 */ function _loadArticleParams() { global $mainframe; // Get the page/component configuration $params = clone($mainframe->getParams('com_content')); // Merge article parameters into the page configuration $aparams = new JParameter($this->_article->attribs); $params->merge($aparams); // Set the popup configuration option based on the request $pop = JRequest::getVar('pop', 0, '', 'int'); $params->set('popup', $pop); // Are we showing introtext with the article if (!$params->get('show_intro') && !empty($this->_article->fulltext)) { $this->_article->text = $this->_article->fulltext; } else { $this->_article->text = $this->_article->introtext . chr(13).chr(13) . $this->_article->fulltext; } // Set the article object's parameters $this->_article->parameters = & $params; } /** * Method to build the WHERE clause of the query to select a content article * * @access private * @return string WHERE clause * @since 1.5 */ function _buildContentWhere() { global $mainframe; $user =& JFactory::getUser(); $aid = (int) $user->get('aid', 0); $jnow =& JFactory::getDate(); $now = $jnow->toMySQL(); $nullDate = $this->_db->getNullDate(); /* * First thing we need to do is assert that the content article is the one * we are looking for and we have access to it. */ $where = ' WHERE a.id = '. (int) $this->_id; // $where .= ' AND a.access <= '. (int) $aid; if (!$user->authorize('com_content', 'edit', 'content', 'all')) { $where .= ' AND ( '; $where .= ' ( a.created_by = ' . (int) $user->id . ' ) '; $where .= ' OR '; $where .= ' ( a.state = 1' . ' AND ( a.publish_up = '.$this->_db->Quote($nullDate).' OR a.publish_up <= '.$this->_db->Quote($now).' )' . ' AND ( a.publish_down = '.$this->_db->Quote($nullDate).' OR a.publish_down >= '.$this->_db->Quote($now).' )'; $where .= ' ) '; $where .= ' OR '; $where .= ' ( a.state = -1 ) '; $where .= ' ) '; } return $where; } } elracodelangela/components/com_content/models/archive.php0000755000176700017710000001342611061563444024550 0ustar essawireessawire_data)) { // Get the page/component configuration $params = &$mainframe->getParams(); // Get the pagination request variables $limit = JRequest::getVar('limit', $params->get('display_num', 20), '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); $query = $this->_buildQuery(); $this->_data = $this->_getList($query, $limitstart, $limit); } return $this->_data; } /** * Method to get the total number of content items for the frontpage * * @access public * @return integer */ function getTotal() { // Lets load the content if it doesn't already exist if (empty($this->_total)) { $query = $this->_buildQuery(); $this->_total = $this->_getListCount($query); } return $this->_total; } // JModel override to add alternating value for $odd function &_getList( $query, $limitstart=0, $limit=0 ) { $result =& parent::_getList($query, $limitstart, $limit); $odd = 1; foreach ($result as $k => $row) { $result[$k]->odd = $odd; $odd = 1 - $odd; } return $result; } function _buildQuery() { global $mainframe; // Get the page/component configuration $params = &$mainframe->getParams(); // If voting is turned on, get voting data as well for the content items $voting = ContentHelperQuery::buildVotingQuery($params); // Get the WHERE and ORDER BY clauses for the query $where = $this->_buildContentWhere(); $orderby = $this->_buildContentOrderBy(); $query = 'SELECT a.id, a.title, a.title_alias, a.introtext, a.sectionid, a.state, a.catid, a.created, a.created_by, a.created_by_alias, a.modified, a.modified_by,'. ' a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.attribs, a.hits, a.images, a.urls, a.ordering, a.metakey, a.metadesc, a.access, cc.title AS category, s.title AS section,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,'. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug,'. ' CHAR_LENGTH( a.`fulltext` ) AS readmore, u.name AS author, u.usertype, g.name AS groups'.$voting['select'] . ' FROM #__content AS a' . ' INNER JOIN #__categories AS cc ON cc.id = a.catid' . ' LEFT JOIN #__sections AS s ON s.id = a.sectionid' . ' LEFT JOIN #__users AS u ON u.id = a.created_by' . ' LEFT JOIN #__groups AS g ON a.access = g.id'. $voting['join']. $where. $orderby; return $query; } function _buildContentOrderBy() { $filter_order = JRequest::getCmd('filter_order'); $filter_order_Dir = JRequest::getWord('filter_order_Dir'); $orderby = ' ORDER BY '; if ($filter_order && $filter_order_Dir) { $orderby .= $filter_order.' '.$filter_order_Dir.', '; } // Get the page/component configuration $params = $this->getState('parameters.menu'); if (!is_object($params)) { $params = &JComponentHelper::getParams('com_content'); } // Special ordering for archive articles $orderby_sec = $params->def('orderby', 'rdate'); $primary = ContentHelperQuery::orderbySecondary($orderby_sec); $orderby .= $primary; return $orderby; } function _buildContentWhere() { global $mainframe; // Initialize some variables $user =& JFactory::getUser(); $db =& JFactory::getDBO(); $aid = (int) $user->get('aid', 0); // First thing we need to do is build the access section of the clause $where = ' WHERE a.access <= '.$aid; $where .= ' AND s.access <= '.$aid; $where .= ' AND cc.access <= '.$aid; $where .= ' AND s.published = 1'; $where .= ' AND cc.published = 1'; $where .= ' AND a.state = \'-1\''; $year = JRequest::getInt( 'year' ); if ($year) { $where .= ' AND YEAR( a.created ) = \''.$year.'\''; } $month = JRequest::getInt( 'month' ); if ($month) { $where .= ' AND MONTH( a.created ) = \''.$month.'\''; } /* * If we have a filter... lets tack the AND clause * for the filter onto the WHERE clause of the archive query. */ $filter = JRequest::getString('filter', '', 'post'); if ($filter) { // clean filter variable $filter = JString::strtolower($filter); $filter = $db->Quote( '%'.$db->getEscaped( $filter, true ).'%', false ); // Get the page/component configuration $params = &$mainframe->getParams(); switch ($params->get('filter_type', 'title')) { case 'title' : $where .= ' AND LOWER( a.title ) LIKE '.$filter; break; case 'author' : $where .= ' AND ( ( LOWER( u.name ) LIKE '.$filter.' ) OR ( LOWER( a.created_by_alias ) LIKE '.$filter.' ) )'; break; case 'hits' : $where .= ' AND a.hits LIKE '.$filter; break; } } return $where; } } elracodelangela/components/com_content/models/category.php0000755000176700017710000003170011061563444024737 0ustar essawireessawiresetId((int)$id); // here we initialize defaults for category model $params = &$mainframe->getParams(); $params->def('filter', 1); $params->def('filter_type', 'title'); } /** * Method to set the category id * * @access public * @param int Category ID number */ function setId($id) { // Set category ID and wipe data $this->_id = $id; $this->_category = null; $this->_siblings = null; $this->_data = array(); $this->_total = null; } /** * Method to get content item data for the current category * * @param int $state The content state to pull from for the current * category * @since 1.5 */ function getData($state = 1) { // Load the Category data if ($this->_loadCategory() && $this->_loadData($state)) { // Initialize some variables $user =& JFactory::getUser(); // Make sure the category is published if (!$this->_category->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // check whether category access level allows access if ($this->_category->access > $user->get('aid', 0)) { JError::raiseError(403, JText::_("ALERTNOTAUTH")); return false; } } return $this->_data[$state]; } /** * Method to get the total number of content items for the frontpage * * @access public * @return integer */ function getTotal($state = 1) { // Lets load the content if it doesn't already exist if (empty($this->_total)) { $query = $this->_buildQuery($state); $this->_total[$state] = $this->_getListCount($query); } return $this->_total[$state]; } /** * Method to get category data for the current category * * @since 1.5 */ function getCategory() { // Load the Category data if ($this->_loadCategory()) { // Initialize some variables $user = &JFactory::getUser(); // Make sure the category is published if (!$this->_category->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // check whether category access level allows access if ($this->_category->access > $user->get('aid', 0)) { JError::raiseError(403, JText::_("ALERTNOTAUTH")); return false; } } return $this->_category; } /** * Method to get sibling category data for the current category * * @since 1.5 */ function getSiblings() { // Initialize some variables $user =& JFactory::getUser(); // Load the Category data if ($this->_loadCategory() && $this->_loadSiblings()) { // Make sure the category is published if (!$this->_category->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // check whether category access level allows access if ($this->_category->access > $user->get('aid', 0)) { JError::raiseError(403, JText::_("ALERTNOTAUTH")); return false; } } return $this->_siblings; } /** * Method to get archived article data for the current category * * @param int $state The content state to pull from for the current section * @since 1.5 */ function getArchives($state = -1) { return $this->getContent(-1); } /** * Method to load category data if it doesn't exist. * * @access private * @return boolean True on success */ function _loadCategory() { if (empty($this->_category)) { // Lets get the information for the current category $query = 'SELECT c.*, s.id as sectionid, s.title as sectiontitle,' . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as slug'. ' FROM #__categories AS c' . ' INNER JOIN #__sections AS s ON s.id = c.section' . ' WHERE c.id = '. (int) $this->_id; $this->_db->setQuery($query, 0, 1); $this->_category = $this->_db->loadObject(); } return true; } /** * Method to load sibling category data if it doesn't exist. * * @access private * @return boolean True on success */ function _loadSiblings() { global $mainframe; if (empty($this->_category)) { return false; // TODO: set error -- can't get siblings when we don't know the category } // Lets load the siblings if they don't already exist if (empty($this->_siblings)) { $user =& JFactory::getUser(); // Get the page/component configuration $params = &$mainframe->getParams(); $noauth = !$params->get('show_noauth'); $gid = (int) $user->get('aid', 0); $now = $mainframe->get('requestTime'); $nullDate = $this->_db->getNullDate(); $section = $this->_category->section; // Get the parameters of the active menu item $menu =& JSite::getMenu(); $item = $menu->getActive(); $params =& $menu->getParams($item->id); if ($user->authorize('com_content', 'edit', 'content', 'all')) { $xwhere = ''; $xwhere2 = ' AND b.state >= 0'; } else { $xwhere = ' AND c.published = 1'; $xwhere2 = ' AND b.state = 1' . ' AND ( publish_up = '.$this->_db->Quote($nullDate).' OR publish_up <= '.$this->_db->Quote($now).' )' . ' AND ( publish_down = '.$this->_db->Quote($nullDate).' OR publish_down >= '.$this->_db->Quote($now).' )'; } // show/hide empty categories $empty = null; if (!$params->get('empty_cat')) { $empty = ' HAVING COUNT( b.id ) > 0'; } // Get the list of sibling categories [categories with the same parent] $query = 'SELECT c.*, COUNT( b.id ) AS numitems' . ' FROM #__categories AS c' . ' LEFT JOIN #__content AS b ON b.catid = c.id '. $xwhere2. ($noauth ? ' AND b.access <= '. (int) $gid : '') . ' WHERE c.section = '. $this->_db->Quote($section). $xwhere. ($noauth ? ' AND c.access <= '. (int) $gid : ''). ' GROUP BY c.id'.$empty. ' ORDER BY c.ordering'; $this->_db->setQuery($query); $this->_siblings = $this->_db->loadObjectList(); } return true; } /** * Method to load content item data for items in the category if they don't * exist. * * @access private * @return boolean True on success */ function _loadData($state = 1) { if (empty($this->_category)) { return false; // TODO: set error -- can't get siblings when we don't know the category } // Lets load the siblings if they don't already exist if (empty($this->_content[$state])) { // Get the pagination request variables $limit = JRequest::getVar('limit', 0, '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); $query = $this->_buildQuery(); $Arows = $this->_getList($query, $limitstart, $limit); // special handling required as Uncategorized content does not have a section / category id linkage $i = $limitstart; $rows = array(); foreach ($Arows as $row) { // check to determine if section or category has proper access rights $rows[$i] = $row; $i ++; } $this->_data[$state] = $rows; } return true; } function _buildQuery($state = 1) { global $mainframe; // Get the page/component configuration $params = &$mainframe->getParams(); // If voting is turned on, get voting data as well for the content items $voting = ContentHelperQuery::buildVotingQuery($params); // Get the WHERE and ORDER BY clauses for the query $where = $this->_buildContentWhere($state); $orderby = $this->_buildContentOrderBy($state); $query = 'SELECT cc.title AS category, a.id, a.title, a.title_alias, a.introtext, a.fulltext, a.sectionid, a.state, a.catid, a.created, a.created_by, a.created_by_alias, a.modified, a.modified_by,' . ' a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.attribs, a.hits, a.images, a.urls, a.ordering, a.metakey, a.metadesc, a.access,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug,'. ' CHAR_LENGTH( a.`fulltext` ) AS readmore, u.name AS author, u.usertype, g.name AS groups'.$voting['select'] . ' FROM #__content AS a' . ' LEFT JOIN #__categories AS cc ON a.catid = cc.id' . ' LEFT JOIN #__users AS u ON u.id = a.created_by' . ' LEFT JOIN #__groups AS g ON a.access = g.id'. $voting['join']. $where. $orderby; return $query; } function _buildContentOrderBy($state = 1) { global $mainframe; // Get the page/component configuration $params = &$mainframe->getParams(); $filter_order = JRequest::getCmd('filter_order'); $filter_order_Dir = JRequest::getWord('filter_order_Dir'); $orderby = ' ORDER BY '; if ($filter_order && $filter_order_Dir) { $orderby .= $filter_order .' '. $filter_order_Dir.', '; } if ($filter_order == 'author') { $orderby .= 'created_by_alias '. $filter_order_Dir.', '; } switch ($state) { case -1: // Special ordering for archive articles $orderby_sec = $params->def('orderby', 'rdate'); $secondary = ContentHelperQuery::orderbySecondary($orderby_sec).', '; $primary = ''; break; case 1: default: $orderby_sec = $params->def('orderby_sec', 'rdate'); $orderby_sec = ($orderby_sec == 'front') ? '' : $orderby_sec; $orderby_pri = $params->def('orderby_pri', ''); $secondary = ContentHelperQuery::orderbySecondary($orderby_sec).', '; $primary = ContentHelperQuery::orderbyPrimary($orderby_pri); break; } $orderby .= $primary .' '. $secondary .' a.created DESC'; return $orderby; } function _buildContentWhere($state = 1) { global $mainframe; $user =& JFactory::getUser(); $gid = $user->get('aid', 0); $jnow =& JFactory::getDate(); $now = $jnow->toMySQL(); // Get the page/component configuration $params = &$mainframe->getParams(); $noauth = !$params->get('show_noauth'); $nullDate = $this->_db->getNullDate(); $where = ' WHERE 1'; // Does the user have access to view the items? if ($noauth) { $where .= ' AND a.access <= '.(int) $gid; } // First thing we need to do is assert that the articles are in the current category if ($this->_id) { $where .= ' AND a.catid = '.(int) $this->_id; } // Regular Published Content switch ($state) { case 1: if ($user->authorize('com_content', 'edit', 'content', 'all')) { $where .= ' AND a.state >= 0'; } else { $where .= ' AND a.state = 1' . ' AND ( publish_up = '.$this->_db->Quote($nullDate).' OR publish_up <= '.$this->_db->Quote($now).' )' . ' AND ( publish_down = '.$this->_db->Quote($nullDate).' OR publish_down >= '.$this->_db->Quote($now).' )'; } break; // Archive Content case -1: // Get some request vars specific to this state $year = JRequest::getInt( 'year', date('Y') ); $month = JRequest::getInt( 'month', date('m') ); $where .= ' AND a.state = -1'; $where .= ' AND YEAR( a.created ) = '.(int) $year; $where .= ' AND MONTH( a.created ) = '.(int) $month; break; default: $where .= ' AND a.state = '.(int) $state; break; } /* * If we have a filter, and this is enabled... lets tack the AND clause * for the filter onto the WHERE clause of the content item query. */ if ($params->get('filter')) { $filter = JRequest::getString('filter', '', 'request'); if ($filter) { // clean filter variable $filter = JString::strtolower($filter); $filter = $this->_db->Quote( '%'.$this->_db->getEscaped( $filter, true ).'%', false ); switch ($params->get('filter_type')) { case 'title' : $where .= ' AND LOWER( a.title ) LIKE '.$filter; break; case 'author' : $where .= ' AND ( ( LOWER( u.name ) LIKE '.$filter.' ) OR ( LOWER( a.created_by_alias ) LIKE '.$filter.' ) )'; break; case 'hits' : $where .= ' AND a.hits LIKE '.$filter; break; } } } return $where; } } elracodelangela/components/com_content/models/section.php0000755000176700017710000003446411061563444024600 0ustar essawireessawiresetId((int)$id); } /** * Method to set the section id * * @access public * @param int Section ID number */ function setId($id) { // Set new ID and wipe data $this->_id = $id; $this->_data = array(); $this->_total = null; $this->_section = null; $this->_categories = null; } /** * Method to get content item data for the section * * @param int $state The content state to pull from for the current * section * @since 1.5 */ function getData($state = 1) { // Load the Category data if ($this->_loadSection() && $this->_loadData($state)) { // Initialize some variables $user =& JFactory::getUser(); // Make sure the category is published if (!$this->_section->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // check whether category access level allows access if ($this->_section->access > $user->get('aid', 0)) { JError::raiseError(403, JText::_("ALERTNOTAUTH")); return false; } } return $this->_data[$state]; } /** * Method to get the total number of content items for the section * * @access public * @return integer */ function getTotal($state = 1) { // Lets load the content if it doesn't already exist if (empty($this->_total)) { $query = $this->_buildQuery($state); $this->_total[$state] = $this->_getListCount($query); } return $this->_total[$state]; } /** * Method to get section data for the current section * * @since 1.5 */ function getSection() { // Initialize some variables $user =& JFactory::getUser(); // Load the Category data if ($this->_loadSection()) { // Make sure the category is published if (!$this->_section->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // check whether category access level allows access if ($this->_section->access > $user->get('aid', 0)) { JError::raiseError(403, JText::_("ALERTNOTAUTH")); return false; } } return $this->_section; } /** * Method to get sibling category data for the current category * * @since 1.5 */ function getCategories() { // Initialize some variables $user =& JFactory::getUser(); // Load the Category data if ($this->_loadSection() && $this->_loadCategories()) { // Make sure the category is published if (!$this->_section->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // check whether category access level allows access if ($this->_section->access > $user->get('aid', 0)) { JError::raiseError(403, JText::_("ALERTNOTAUTH")); return false; } } return $this->_categories; } /** * Method to get archived article data for the current section * * @param int $state The content state to pull from for the current section * @since 1.5 */ function getArchives($state = -1) { return $this->getData(-1); } /** * Method to get archived article data for the current section * * @param int $state The content state to pull from for the current section * @since 1.5 */ function getTree() { return $this->_loadTree(); } /** * Method to load section data if it doesn't exist. * * @access private * @return boolean True on success */ function _loadSection() { if (empty($this->_section)) { // Lets get the information for the current section if ($this->_id) { $where = ' WHERE id = '. (int) $this->_id; } else { $where = null; } $query = 'SELECT *' . ' FROM #__sections' . $where; $this->_db->setQuery($query, 0, 1); $this->_section = $this->_db->loadObject(); } return true; } /** * Method to load sibling category data if it doesn't exist. * * @access private * @return boolean True on success */ function _loadCategories() { global $mainframe; // Lets load the siblings if they don't already exist if (empty($this->_categories)) { $user =& JFactory::getUser(); // Get the page/component configuration $params = &$mainframe->getParams(); $noauth = !$params->get('show_noauth'); $gid = $user->get('aid', 0); $now = $mainframe->get('requestTime'); $nullDate = $this->_db->getNullDate(); // Ordering control $orderby = $params->get('orderby', ''); $orderby = ContentHelperQuery::orderbySecondary($orderby); // Handle the access permissions part of the main database query if ($user->authorize('com_content', 'edit', 'content', 'all')) { $xwhere = ''; $xwhere2 = ' AND b.state >= 0'; } else { $xwhere = ' AND a.published = 1'; $xwhere2 = ' AND b.state = 1' . ' AND ( b.publish_up = '.$this->_db->Quote($nullDate).' OR b.publish_up <= '.$this->_db->Quote($now).' )' . ' AND ( b.publish_down = '.$this->_db->Quote($nullDate).' OR b.publish_down >= '.$this->_db->Quote($now).' )'; if ($noauth) { $xwhere2 .= ' AND b.access <= '.(int) $gid; } } // Determine whether to show/hide the empty categories and sections $empty = null; $empty_sec = null; // show/hide empty categories in section if (!$params->get('show_empty_categories')) { $empty_sec = ' HAVING numitems > 0'; } // Handle the access permissions $access_check = null; if ($noauth) { $access_check = ' AND a.access <= '.(int) $gid; //$access_check .= ' AND b.access <= '.(int) $gid; } // Query of categories within section $query = 'SELECT a.*, COUNT( b.id ) AS numitems,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug'. ' FROM #__categories AS a' . ' LEFT JOIN #__content AS b ON b.catid = a.id'. $xwhere2 . ' WHERE a.section = '.(int) $this->_id. $xwhere. $access_check . ' GROUP BY a.id'.$empty.$empty_sec . ' ORDER BY '. $orderby; $this->_db->setQuery($query); $this->_categories = $this->_db->loadObjectList(); } return true; } /** * Method to load content item data for items in the category if they don't * exist. * * @access private * @return boolean True on success */ function _loadData($state = 1) { if (empty($this->_section)) { return false; // TODO: set error -- can't get siblings when we don't know the category } // Lets load the content if it doesn't already exist if (empty($this->_data[$state])) { // Get the pagination request variables $limit = JRequest::getVar('limit', 0, '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); $query = $this->_buildQuery(); $Arows = $this->_getList($query, $limitstart, $limit); // special handling required as Uncategorized content does not have a section / category id linkage $i = $limitstart; $rows = array(); foreach ($Arows as $row) { // check to determine if section or category has proper access rights $rows[$i] = $row; $i ++; } $this->_data[$state] = $rows; } return true; } /** * Method to load content item data for items in the category if they don't * exist. * * @access private * @return boolean True on success */ function _loadTree() { global $mainframe; // Lets load the content if it doesn't already exist if (empty($this->_tree)) { $user =& JFactory::getUser(); $aid = $user->get('aid', 0); $now = $mainframe->get('requestTime'); $nullDate = $this->_db->getNullDate(); // Get the information for the current section if ($this->_id) { $and = ' AND a.section = '.(int) $this->_id; } else { $and = null; } // Query of categories within section $query = 'SELECT a.name AS catname, a.title AS cattitle, b.* ' . ' FROM #__categories AS a' . ' INNER JOIN #__content AS b ON b.catid = a.id' . ' AND b.state = 1' . ' AND ( b.publish_up = '.$this->_db->Quote($nullDate).' OR b.publish_up <= '.$this->_db->Quote($now).' )' . ' AND ( b.publish_down = '.$this->_db->Quote($nullDate).' OR b.publish_down >= '.$this->_db->Quote($now).' )'; ' WHERE a.published = 1' . $and . ' AND a.access <= '.(int) $aid . ' ORDER BY a.catid, a.ordering, b.ordering'; $this->_db->setQuery($query); $this->_tree = $this->_db->loadObjectList(); } return true; } function _buildQuery($state = 1) { global $mainframe; // Get the page/component configuration $params = &$mainframe->getParams(); // If voting is turned on, get voting data as well for the content items $voting = ContentHelperQuery::buildVotingQuery($params); // Get the WHERE and ORDER BY clauses for the query $where = $this->_buildContentWhere($state); $orderby = $this->_buildContentOrderBy($state); $query = 'SELECT a.id, a.title, a.title_alias, a.introtext, a.fulltext, a.sectionid, a.state, a.catid, a.created, a.created_by, a.created_by_alias, a.modified, a.modified_by,' . ' a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.attribs, a.hits, a.images, a.urls, a.ordering, a.metakey, a.metadesc, a.access,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,'. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug,'. ' CHAR_LENGTH( a.`fulltext` ) AS readmore, u.name AS author, u.usertype, cc.title AS category, g.name AS groups'.$voting['select'] . ' FROM #__content AS a' . ' INNER JOIN #__categories AS cc ON cc.id = a.catid' . ' LEFT JOIN #__sections AS s ON s.id = a.sectionid' . ' LEFT JOIN #__users AS u ON u.id = a.created_by' . ' LEFT JOIN #__groups AS g ON a.access = g.id'. $voting['join']. $where. $orderby; return $query; } function _buildContentOrderBy($state = 1) { $filter_order = JRequest::getCmd('filter_order'); $filter_order_Dir = JRequest::getWord('filter_order_Dir'); $orderby = ' ORDER BY '; if ($filter_order && $filter_order_Dir) { $orderby .= $filter_order .' '. $filter_order_Dir.', '; } // Get the page/component configuration $app =& JFactory::getApplication(); $params =& $app->getParams(); switch ($state) { case -1: // Special ordering for archive articles $orderby_sec = $params->def('orderby', 'rdate'); $secondary = ContentHelperQuery::orderbySecondary($orderby_sec); $primary = ''; break; case 1: default: $orderby_sec = $params->def('orderby_sec', 'rdate'); $orderby_sec = ($orderby_sec == 'front') ? '' : $orderby_sec; $orderby_pri = $params->def('orderby_pri', ''); $secondary = ContentHelperQuery::orderbySecondary($orderby_sec); $primary = ContentHelperQuery::orderbyPrimary($orderby_pri); break; } $orderby .= "$primary $secondary"; return $orderby; } function _buildContentWhere($state = 1) { global $mainframe; $user =& JFactory::getUser(); $aid = $user->get('aid', 0); $jnow =& JFactory::getDate(); $now = $jnow->toMySQL(); // Get the page/component configuration $params = &$mainframe->getParams(); $noauth = !$params->get('show_noauth'); $nullDate = $this->_db->getNullDate(); // First thing we need to do is assert that the articles are in the current category if ($noauth) { $where = ' WHERE a.access <= '.(int) $aid; } else { $where = ' WHERE 1'; } if ($this->_id) { $where .= ' AND s.id = '.(int)$this->_id; } $where .= ' AND s.access <= '.(int) $aid; $where .= ' AND cc.access <= '.(int) $aid; $where .= ' AND s.published = 1'; $where .= ' AND cc.published = 1'; // Regular Published Content switch ($state) { case 1: if ($user->authorize('com_content', 'edit', 'content', 'all')) { $where .= ' AND a.state >= 0'; } else { $where .= ' AND a.state = 1' . ' AND ( publish_up = '.$this->_db->Quote($nullDate).' OR publish_up <= '.$this->_db->Quote($now).' )' . ' AND ( publish_down = '.$this->_db->Quote($nullDate).' OR publish_down >= '.$this->_db->Quote($now).' )'; } break; // Archive Content case -1: // Get some request vars specific to this state $year = JRequest::getInt( 'year', date('Y') ); $month = JRequest::getInt( 'month', date('m') ); $where .= ' AND a.state = -1'; $where .= ' AND YEAR( a.created ) = '.(int) $year; $where .= ' AND MONTH( a.created ) = '.(int) $month; break; default: $where .= ' AND a.state = '.(int) $state; break; } /* * If we have a filter, and this is enabled... lets tack the AND clause * for the filter onto the WHERE clause of the content item query. */ if ($params->get('filter')) { $filter = JRequest::getString('filter', '', 'request'); if ($filter) { // clean filter variable $filter = JString::strtolower($filter); $filter = $this->_db->Quote( '%'.$this->_db->getEscaped( $filter, true ).'%', false ); switch ($params->get('filter_type')) { case 'title' : $where .= ' AND LOWER( a.title ) LIKE '.$filter; break; case 'author' : $where .= ' AND ( ( LOWER( u.name ) LIKE '.$filter.' ) OR ( LOWER( a.created_by_alias ) LIKE '.$filter.' ) )'; break; case 'hits' : $where .= ' AND a.hits LIKE '.$filter; break; } } } return $where; } } ?> elracodelangela/components/com_content/metadata.xml0000755000176700017710000000007711061563444023433 0ustar essawireessawire elracodelangela/components/com_content/helpers/0000755000176700017710000000000011061563605022563 5ustar essawireessawireelracodelangela/components/com_content/helpers/route.php0000755000176700017710000000556111061563444024445 0ustar essawireessawire (int) $id, 'category' => (int) $catid, 'section' => (int) $sectionid, ); //Create the link $link = 'index.php?option=com_content&view=article&id='. $id; if($catid) { $link .= '&catid='.$catid; } if($item = ContentHelperRoute::_findItem($needles)) { $link .= '&Itemid='.$item->id; }; return $link; } function getSectionRoute($sectionid) { $needles = array( 'section' => (int) $sectionid ); //Create the link $link = 'index.php?option=com_content&view=section&id='.$sectionid; if($item = ContentHelperRoute::_findItem($needles)) { if(isset($item->query['layout'])) { $link .= '&layout='.$item->query['layout']; } $link .= '&Itemid='.$item->id; }; return $link; } function getCategoryRoute($catid, $sectionid) { $needles = array( 'category' => (int) $catid, 'section' => (int) $sectionid ); //Create the link $link = 'index.php?option=com_content&view=category&id='.$catid; if($item = ContentHelperRoute::_findItem($needles)) { if(isset($item->query['layout'])) { $link .= '&layout='.$item->query['layout']; } $link .= '&Itemid='.$item->id; }; return $link; } function _findItem($needles) { $component =& JComponentHelper::getComponent('com_content'); $menus = &JApplication::getMenu('site', array()); $items = $menus->getItems('componentid', $component->id); $active = $menus->getActive(); if($active) { foreach($needles as $needle => $id) { if ((@$active->query['view'] == $needle) && (@$active->query['id'] == $id) && (@$active->query['option'] == 'com_content')) { return $active; } } } $match = null; foreach($needles as $needle => $id) { foreach($items as $item) { if ((@$item->query['view'] == $needle) && (@$item->query['id'] == $id)) { $match = $item; break; } } if(isset($match)) { break; } } return $match; } } ?> elracodelangela/components/com_content/helpers/index.html0000755000176700017710000000005411061563444024563 0ustar essawireessawireelracodelangela/components/com_content/helpers/query.php0000755000176700017710000000450411061563444024450 0ustar essawireessawireget('show_vote'); if ($voting) { // calculate voting count $select = ' , ROUND( v.rating_sum / v.rating_count ) AS rating, v.rating_count'; $join = ' LEFT JOIN #__content_rating AS v ON a.id = v.content_id'; } else { $select = ''; $join = ''; } $results = array ('select' => $select, 'join' => $join); return $results; } } elracodelangela/components/com_content/helpers/icon.php0000755000176700017710000001315211061563444024232 0ustar essawireessawiretoString(); $url = 'index.php?task=new&ret='.base64_encode($ret).'&id=0§ionid='.$article->sectionid; if ($params->get('show_icons')) { $text = JHTML::_('image.site', 'new.png', '/images/M_images/', NULL, NULL, JText::_('New') ); } else { $text = JText::_('New').' '; } $attribs = array( 'title' => JText::_( 'New' )); return JHTML::_('link', JRoute::_($url), $text, $attribs); } function pdf($article, $params, $access, $attribs = array()) { $url = 'index.php?view=article'; $url .= @$article->catslug ? '&catid='.$article->catslug : ''; $url .= '&id='.$article->slug.'&format=pdf'; $status = 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no'; // checks template image directory for image, if non found default are loaded if ($params->get('show_icons')) { $text = JHTML::_('image.site', 'pdf_button.png', '/images/M_images/', NULL, NULL, JText::_('PDF')); } else { $text = JText::_('PDF').' '; } $attribs['title'] = JText::_( 'PDF' ); $attribs['onclick'] = "window.open(this.href,'win2','".$status."'); return false;"; $attribs['rel'] = 'nofollow'; return JHTML::_('link', JRoute::_($url), $text, $attribs); } function email($article, $params, $access, $attribs = array()) { $uri =& JURI::getInstance(); $base = $uri->toString( array('scheme', 'host', 'port')); $link = $base.JRoute::_( ContentHelperRoute::getArticleRoute($article->slug, $article->catslug, $article->sectionid) , false ); $url = 'index.php?option=com_mailto&tmpl=component&link='.base64_encode( $link ); $status = 'width=400,height=300,menubar=yes,resizable=yes'; if ($params->get('show_icons')) { $text = JHTML::_('image.site', 'emailButton.png', '/images/M_images/', NULL, NULL, JText::_('Email')); } else { $text = ' '.JText::_('Email'); } $attribs['title'] = JText::_( 'Email' ); $attribs['onclick'] = "window.open(this.href,'win2','".$status."'); return false;"; $output = JHTML::_('link', JRoute::_($url), $text, $attribs); return $output; } function edit($article, $params, $access, $attribs = array()) { $user =& JFactory::getUser(); $uri =& JFactory::getURI(); $ret = $uri->toString(); if ($params->get('popup')) { return; } if ($article->state < 0) { return; } if (!$access->canEdit && !($access->canEditOwn && $article->created_by == $user->get('id'))) { return; } JHTML::_('behavior.tooltip'); $url = 'index.php?view=article&id='.$article->slug.'&task=edit&ret='.base64_encode($ret); $icon = $article->state ? 'edit.png' : 'edit_unpublished.png'; $text = JHTML::_('image.site', $icon, '/images/M_images/', NULL, NULL, JText::_('Edit')); if ($article->state == 0) { $overlib = JText::_('Unpublished'); } else { $overlib = JText::_('Published'); } $date = JHTML::_('date', $article->created); $author = $article->created_by_alias ? $article->created_by_alias : $article->author; $overlib .= '<br />'; $overlib .= JText::_($article->groups); $overlib .= '<br />'; $overlib .= $date; $overlib .= '<br />'; $overlib .= $author; $button = JHTML::_('link', JRoute::_($url), $text); $output = ''.$button.''; return $output; } function print_popup($article, $params, $access, $attribs = array()) { $url = 'index.php?view=article'; $url .= @$article->catslug ? '&catid='.$article->catslug : ''; $url .= '&id='.$article->slug.'&tmpl=component&print=1&page='.@ $request->limitstart; $status = 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no'; // checks template image directory for image, if non found default are loaded if ( $params->get( 'show_icons' ) ) { $text = JHTML::_('image.site', 'printButton.png', '/images/M_images/', NULL, NULL, JText::_( 'Print' ) ); } else { $text = JText::_( 'ICON_SEP' ) .' '. JText::_( 'Print' ) .' '. JText::_( 'ICON_SEP' ); } $attribs['title'] = JText::_( 'Print' ); $attribs['onclick'] = "window.open(this.href,'win2','".$status."'); return false;"; $attribs['rel'] = 'nofollow'; return JHTML::_('link', JRoute::_($url), $text, $attribs); } function print_screen($article, $params, $access, $attribs = array()) { // checks template image directory for image, if non found default are loaded if ( $params->get( 'show_icons' ) ) { $text = JHTML::_('image.site', 'printButton.png', '/images/M_images/', NULL, NULL, JText::_( 'Print' ) ); } else { $text = JText::_( 'ICON_SEP' ) .' '. JText::_( 'Print' ) .' '. JText::_( 'ICON_SEP' ); } return ''.$text.''; } } elracodelangela/components/com_content/index.html0000755000176700017710000000005411061563443023120 0ustar essawireessawireelracodelangela/components/com_content/views/0000755000176700017710000000000011061563604022255 5ustar essawireessawireelracodelangela/components/com_content/views/article/0000755000176700017710000000000011061563605023701 5ustar essawireessawireelracodelangela/components/com_content/views/article/metadata.xml0000755000176700017710000000022511061563443026205 0ustar essawireessawire elracodelangela/components/com_content/views/article/view.pdf.php0000755000176700017710000000526511061563443026147 0ustar essawireessawireget( 'Article' ); $params = & $article->parameters; // process the new plugins JPluginHelper::importPlugin('content', 'image'); $dispatcher->trigger('onPrepareContent', array (& $article, & $params, 0)); $document = &JFactory::getDocument(); // set document information $document->setTitle($article->title); $document->setName($article->alias); $document->setDescription($article->metadesc); $document->setMetaData('keywords', $article->metakey); // prepare header lines $document->setHeader($this->_getHeaderText($article, $params)); echo $article->text; } function _getHeaderText(& $article, & $params) { // Initialize some variables $text = ''; // Display Author name if ($params->get('show_author')) { // Display Author name $text .= "\n"; $text .= JText::sprintf( 'Written by', ($article->created_by_alias ? $article->created_by_alias : $article->author) ); } if ($params->get('show_create_date') && $params->get('show_author')) { // Display Separator $text .= "\n"; } if ($params->get('show_create_date')) { // Display Created Date if (intval($article->created)) { $create_date = JHTML::_('date', $article->created, JText::_('DATE_FORMAT_LC2')); $text .= $create_date; } } if ($params->get('show_modify_date') && ($params->get('show_author') || $params->get('show_create_date'))) { // Display Separator $text .= " - "; } if ($params->get('show_modify_date')) { // Display Modified Date if (intval($article->modified)) { $mod_date = JHTML::_('date', $article->modified, JText::_('DATE_FORMAT_LC2')); $text .= JText::_('Last Updated').' '.$mod_date; } } return $text; } } ?>elracodelangela/components/com_content/views/article/index.html0000755000176700017710000000005411061563443025700 0ustar essawireessawireelracodelangela/components/com_content/views/article/tmpl/0000755000176700017710000000000011061563605024655 5ustar essawireessawireelracodelangela/components/com_content/views/article/tmpl/form.php0000755000176700017710000001360711061563443026343 0ustar essawireessawire params->get('show_page_title', 1)) : ?>
          escape($this->params->get('page_title')); ?>
          editor->display('text', $this->article->text, '100%', '400', '70', '15'); ?>
          user->authorize('com_content', 'publish', 'content', 'all')) : ?>
          lists['sectionid']; ?>
          lists['catid']; ?>
          lists['state']; ?>
          lists['frontpage']; ?>
          article->publish_up, 'publish_up', 'publish_up', '%Y-%m-%d %H:%M:%S', array('class'=>'inputbox', 'size'=>'25', 'maxlength'=>'19')); ?>
          article->publish_down, 'publish_down', 'publish_down', '%Y-%m-%d %H:%M:%S', array('class'=>'inputbox', 'size'=>'25', 'maxlength'=>'19')); ?>
          lists['access']; ?>
          lists['ordering']; ?>
          elracodelangela/components/com_content/views/article/tmpl/form.xml0000755000176700017710000000052611061563443026350 0ustar essawireessawire Article Submission Layout ARTICLE SUBMISSION LAYOUT DESC elracodelangela/components/com_content/views/article/tmpl/default.xml0000755000176700017710000000077211061563443027034 0ustar essawireessawire Standard Article Layout STANDARD ARTICLE LAYOUT DESC elracodelangela/components/com_content/views/article/tmpl/index.html0000755000176700017710000000005411061563443026654 0ustar essawireessawireelracodelangela/components/com_content/views/article/tmpl/pagebreak.php0000755000176700017710000000253711061563443027321 0ustar essawireessawire
          elracodelangela/components/com_content/views/article/tmpl/pagebreak.xml0000755000176700017710000000013211061563443027317 0ustar essawireessawire elracodelangela/components/com_content/views/article/tmpl/default.php0000755000176700017710000001225511061563443027022 0ustar essawireessawireuser->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')); ?> params->get('show_page_title', 1) && $this->params->get('page_title') != $this->article->title) : ?>
          escape($this->params->get('page_title')); ?>
          params->get('show_title') || $this->params->get('show_pdf_icon') || $this->params->get('show_print_icon') || $this->params->get('show_email_icon')) : ?> params->get('show_title')) : ?> print) : ?> params->get('show_pdf_icon')) : ?> params->get( 'show_print_icon' )) : ?> params->get('show_email_icon')) : ?>
          params->get('link_titles') && $this->article->readmore_link != '') : ?> escape($this->article->title); ?> escape($this->article->title); ?> article, $this->params, $this->access); ?> article, $this->params, $this->access); ?> article, $this->params, $this->access); ?> article, $this->params, $this->access); ?> article, $this->params, $this->access); ?>
          params->get('show_intro')) : echo $this->article->event->afterDisplayTitle; endif; ?> article->event->beforeDisplayContent; ?> params->get('show_section') && $this->article->sectionid) || ($this->params->get('show_category') && $this->article->catid)) : ?> params->get('show_author')) && ($this->article->author != "")) : ?> params->get('show_create_date')) : ?> params->get('show_url') && $this->article->urls) : ?> article->modified) !=0 && $this->params->get('show_modify_date')) : ?>
          params->get('show_section') && $this->article->sectionid && isset($this->article->section)) : ?> params->get('link_section')) : ?> article->sectionid)).'">'; ?> article->section; ?> params->get('link_section')) : ?> '; ?> params->get('show_category')) : ?> params->get('show_category') && $this->article->catid) : ?> params->get('link_category')) : ?> article->catslug, $this->article->sectionid)).'">'; ?> article->category; ?> params->get('link_category')) : ?> '; ?>
          article->created_by_alias ? $this->article->created_by_alias : $this->article->author) ); ?>   
          article->created, JText::_('DATE_FORMAT_LC2')) ?>
          article->urls; ?>
          article->toc)) : ?> article->toc; ?> article->text; ?>
          ( article->modified, JText::_('DATE_FORMAT_LC2')); ?> )
            article->event->afterDisplayContent; ?> elracodelangela/components/com_content/views/article/view.html.php0000755000176700017710000002766311061563443026350 0ustar essawireessawiregetPathway(); $params =& $mainframe->getParams('com_content'); // Initialize variables $article =& $this->get('Article'); $aparams =& $article->parameters; $params->merge($aparams); if($this->getLayout() == 'pagebreak') { $this->_displayPagebreak($tpl); return; } if($this->getLayout() == 'form') { $this->_displayForm($tpl); return; } if (($article->id == 0)) { $id = JRequest::getVar( 'id', '', 'default', 'int' ); return JError::raiseError( 404, JText::sprintf( 'Article # not found', $id ) ); } $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); // Create a user access object for the current user $access = new stdClass(); $access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all'); $access->canEditOwn = $user->authorize('com_content', 'edit', 'content', 'own'); $access->canPublish = $user->authorize('com_content', 'publish', 'content', 'all'); // Check to see if the user has access to view the full article $aid = $user->get('aid'); if ($article->access <= $aid) { $article->readmore_link = JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catslug, $article->sectionid));; } else { if ( ! $aid ) { // Redirect to login $uri = JFactory::getURI(); $return = $uri->toString(); $url = 'index.php?option=com_user&view=login'; $url .= '&return='.base64_encode($return);; //$url = JRoute::_($url, false); $mainframe->redirect($url, JText::_('You must login first') ); } else{ JError::raiseWarning( 403, JText::_('ALERTNOTAUTH') ); return; } } /* * Process the prepare content plugins */ JPluginHelper::importPlugin('content'); $results = $dispatcher->trigger('onPrepareContent', array (& $article, & $params, $limitstart)); /* * Handle the metadata */ // because the application sets a default page title, we need to get it // right from the menu item itself // Get the menu item object $menus = &JSite::getMenu(); $menu = $menus->getActive(); if (is_object( $menu ) && isset($menu->query['view']) && $menu->query['view'] == 'article' && isset($menu->query['id']) && $menu->query['id'] == $article->id) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', $article->title); } } else { $params->set('page_title', $article->title); } $document->setTitle( $params->get( 'page_title' ) ); if ($article->metadesc) { $document->setDescription( $article->metadesc ); } if ($article->metakey) { $document->setMetadata('keywords', $article->metakey); } if ($mainframe->getCfg('MetaTitle') == '1') { $mainframe->addMetaTag('title', $article->title); } if ($mainframe->getCfg('MetaAuthor') == '1') { $mainframe->addMetaTag('author', $article->author); } $mdata = new JParameter($article->metadata); $mdata = $mdata->toArray(); foreach ($mdata as $k => $v) { if ($v) { $document->setMetadata($k, $v); } } // If there is a pagebreak heading or title, add it to the page title if (!empty($article->page_title)) { $article->title = $article->title .' - '. $article->page_title; $document->setTitle($article->page_title.' - '.JText::sprintf('Page %s', $limitstart + 1)); } /* * Handle the breadcrumbs */ if($menu && $menu->query['view'] != 'article') { switch ($menu->query['view']) { case 'section': $pathway->addItem($article->category, 'index.php?view=category&id='.$article->catslug); $pathway->addItem($article->title, ''); break; case 'category': $pathway->addItem($article->title, ''); break; } } /* * Handle display events */ $article->event = new stdClass(); $results = $dispatcher->trigger('onAfterDisplayTitle', array ($article, &$params, $limitstart)); $article->event->afterDisplayTitle = trim(implode("\n", $results)); $results = $dispatcher->trigger('onBeforeDisplayContent', array (& $article, & $params, $limitstart)); $article->event->beforeDisplayContent = trim(implode("\n", $results)); $results = $dispatcher->trigger('onAfterDisplayContent', array (& $article, & $params, $limitstart)); $article->event->afterDisplayContent = trim(implode("\n", $results)); $print = JRequest::getBool('print'); if ($print) { $document->setMetaData('robots', 'noindex, nofollow'); } $this->assignRef('article', $article); $this->assignRef('params' , $params); $this->assignRef('user' , $user); $this->assignRef('access' , $access); $this->assignRef('print', $print); parent::display($tpl); } function _displayForm($tpl) { global $mainframe; // Initialize variables $document =& JFactory::getDocument(); $user =& JFactory::getUser(); $uri =& JFactory::getURI(); $params =& $mainframe->getParams('com_content'); // Make sure you are logged in and have the necessary access rights if ($user->get('gid') < 19) { JResponse::setHeader('HTTP/1.0 403',true); JError::raiseWarning( 403, JText::_('ALERTNOTAUTH') ); return; } // Initialize variables $article =& $this->get('Article'); $aparams =& $article->parameters; $isNew = ($article->id < 1); $params->merge($aparams); // At some point in the future this will come from a request object $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); // Add the Calendar includes to the document section JHTML::_('behavior.calendar'); if ($isNew) { // TODO: Do we allow non-sectioned articles from the frontend?? $article->sectionid = JRequest::getVar('sectionid', 0, '', 'int'); $db = JFactory::getDBO(); $db->setQuery('SELECT title FROM #__sections WHERE id = '.(int) $article->sectionid); $article->section = $db->loadResult(); } // Get the lists $lists = $this->_buildEditLists(); // Load the JEditor object $editor =& JFactory::getEditor(); // Build the page title string $title = $article->id ? JText::_('Edit') : JText::_('New'); // Set page title // because the application sets a default page title, we need to get it // right from the menu item itself // Get the menu item object $menus = &JSite::getMenu(); $menu = $menus->getActive(); $params->set( 'page_title', $params->get( 'page_title' ) ); if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'Submit an Article' )); } } else { $params->set('page_title', JText::_( 'Submit an Article' )); } $document->setTitle( $params->get( 'page_title' ) ); // get pathway $pathway =& $mainframe->getPathWay(); $pathway->addItem($title, ''); // Unify the introtext and fulltext fields and separated the fields by the {readmore} tag if (JString::strlen($article->fulltext) > 1) { $article->text = $article->introtext."
          ".$article->fulltext; } else { $article->text = $article->introtext; } $this->assign('action', $uri->toString()); $this->assignRef('article', $article); $this->assignRef('params', $params); $this->assignRef('lists', $lists); $this->assignRef('editor', $editor); $this->assignRef('user', $user); parent::display($tpl); } function _buildEditLists() { // Get the article and database connector from the model $article = & $this->get('Article'); $db = & JFactory::getDBO(); $javascript = "onchange=\"changeDynaList( 'catid', sectioncategories, document.adminForm.sectionid.options[document.adminForm.sectionid.selectedIndex].value, 0, 0);\""; $query = 'SELECT s.id, s.title' . ' FROM #__sections AS s' . ' ORDER BY s.ordering'; $db->setQuery($query); $sections[] = JHTML::_('select.option', '-1', '- '.JText::_('Select Section').' -', 'id', 'title'); $sections[] = JHTML::_('select.option', '0', JText::_('Uncategorized'), 'id', 'title'); $sections = array_merge($sections, $db->loadObjectList()); $lists['sectionid'] = JHTML::_('select.genericlist', $sections, 'sectionid', 'class="inputbox" size="1" '.$javascript, 'id', 'title', intval($article->sectionid)); foreach ($sections as $section) { $section_list[] = (int) $section->id; // get the type name - which is a special category if ($article->sectionid) { if ($section->id == $article->sectionid) { $contentSection = $section->title; } } else { if ($section->id == $article->sectionid) { $contentSection = $section->title; } } } $sectioncategories = array (); $sectioncategories[-1] = array (); $sectioncategories[-1][] = JHTML::_('select.option', '-1', JText::_( 'Select Category' ), 'id', 'title'); $section_list = implode('\', \'', $section_list); $query = 'SELECT id, title, section' . ' FROM #__categories' . ' WHERE section IN ( \''.$section_list.'\' )' . ' ORDER BY ordering'; $db->setQuery($query); $cat_list = $db->loadObjectList(); // Uncategorized category mapped to uncategorized section $uncat = new stdClass(); $uncat->id = 0; $uncat->title = JText::_('Uncategorized'); $uncat->section = 0; $cat_list[] = $uncat; foreach ($sections as $section) { $sectioncategories[$section->id] = array (); $rows2 = array (); foreach ($cat_list as $cat) { if ($cat->section == $section->id) { $rows2[] = $cat; } } foreach ($rows2 as $row2) { $sectioncategories[$section->id][] = JHTML::_('select.option', $row2->id, $row2->title, 'id', 'title'); } } $categories = array(); foreach ($cat_list as $cat) { if($cat->section == $article->sectionid) $categories[] = $cat; } $categories[] = JHTML::_('select.option', '-1', JText::_( 'Select Category' ), 'id', 'title'); $lists['sectioncategories'] = $sectioncategories; $lists['catid'] = JHTML::_('select.genericlist', $categories, 'catid', 'class="inputbox" size="1"', 'id', 'title', intval($article->catid)); // Select List: Category Ordering $query = 'SELECT ordering AS value, title AS text FROM #__content WHERE catid = '.(int) $article->catid.' AND state > ' .(int) "-1" . ' ORDER BY ordering'; $lists['ordering'] = JHTML::_('list.specificordering', $article, $article->id, $query, 1); // Radio Buttons: Should the article be published $lists['state'] = JHTML::_('select.booleanlist', 'state', '', $article->state); // Radio Buttons: Should the article be added to the frontpage if($article->id) { $query = 'SELECT content_id FROM #__content_frontpage WHERE content_id = '. (int) $article->id; $db->setQuery($query); $article->frontpage = $db->loadResult(); } else { $article->frontpage = 0; } $lists['frontpage'] = JHTML::_('select.booleanlist', 'frontpage', '', (boolean) $article->frontpage); // Select List: Group Access $lists['access'] = JHTML::_('list.accesslevel', $article); return $lists; } function _displayPagebreak($tpl) { $document =& JFactory::getDocument(); $document->setTitle(JText::_('PGB ARTICLE PAGEBRK')); parent::display($tpl); } } ?> elracodelangela/components/com_content/views/category/0000755000176700017710000000000011061563604024072 5ustar essawireessawireelracodelangela/components/com_content/views/category/metadata.xml0000755000176700017710000000022111061563443026373 0ustar essawireessawire elracodelangela/components/com_content/views/category/index.html0000755000176700017710000000005411061563443026072 0ustar essawireessawireelracodelangela/components/com_content/views/category/view.feed.php0000755000176700017710000000417611061563443026473 0ustar essawireessawiregetParams(); // Get some data from the model JRequest::setVar('limit', $mainframe->getCfg('feed_limit')); $category = & $this->get( 'Category' ); $rows = & $this->get( 'Data' ); $doc->link = JRoute::_(ContentHelperRoute::getCategoryRoute($category->id, $cagtegory->sectionid)); foreach ( $rows as $row ) { // strip html from feed item title $title = $this->escape( $row->title ); $title = html_entity_decode( $title ); // url link to article // & used instead of & as this is converted by feed creator $link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid)); // strip html from feed item description text $description = ($params->get('feed_summary', 0) ? $row->introtext.$row->fulltext : $row->introtext); $author = $row->created_by_alias ? $row->created_by_alias : $row->author; // load individual item creator class $item = new JFeedItem(); $item->title = $title; $item->link = $link; $item->description = $description; $item->date = $row->created; $item->category = $row->category; // loads item info into rss array $doc->addItem( $item ); } } } elracodelangela/components/com_content/views/category/tmpl/0000755000176700017710000000000011061563604025046 5ustar essawireessawireelracodelangela/components/com_content/views/category/tmpl/blog.xml0000755000176700017710000000647211061563443026530 0ustar essawireessawire Category Blog Layout CATEGORY BLOG LAYOUT DESC elracodelangela/components/com_content/views/category/tmpl/default.xml0000755000176700017710000000637211061563443027230 0ustar essawireessawire Standard Category Layout STANDARD CATEGORY LAYOUT DESC elracodelangela/components/com_content/views/category/tmpl/blog.php0000755000176700017710000001053411061563443026511 0ustar essawireessawire params->get('show_page_title', 1)) : ?>
          escape($this->params->get('page_title')); ?>
          params->def('show_description', 1) || $this->params->def('show_description_image', 1)) :?> params->get('num_leading_articles')) : ?> pagination->limitstart; endif; ?> pagination->limitstart + $this->params->get('num_leading_articles'); $numIntroArticles = $startIntroArticles + $this->params->get('num_intro_articles'); if (($numIntroArticles != $startIntroArticles) && ($i < $this->total)) : ?> params->get('num_links') && ($i < $this->total)) : ?> params->get('show_pagination')) : ?> params->get('show_pagination_results')) : ?>
          params->get('show_description_image') && $this->category->image) : ?> params->get('show_description') && $this->category->description) : ?> category->description; ?>

          pagination->limitstart; $i < ($this->pagination->limitstart + $this->params->get('num_leading_articles')); $i++) : ?> = $this->total) : break; endif; ?>
          item =& $this->getItem($i, $this->params); echo $this->loadTemplate('item'); ?>
          params->get('multi_column_order')) : // order across, like front page for ($z = 0; $z < $this->params->def('num_columns', 2); $z ++) : if ($z > 0) : $divider = " column_separator"; endif; ?> params->get('num_intro_articles', 4) / $this->params->get('num_columns')); $cols = ($this->params->get('num_intro_articles', 4) % $this->params->get('num_columns')); ?> params->get('num_intro_articles') ; else : // otherwise, order down, same as before (default behaviour) for ($z = 0; $z < $this->params->get('num_columns'); $z ++) : if ($z > 0) : $divider = " column_separator"; endif; ?>
          params->get('num_columns')) + $z; if ($target < $this->total && $target < ($numIntroArticles)) : $this->item =& $this->getItem($target, $this->params); echo $this->loadTemplate('item'); endif; endfor; ?> params->get('num_intro_articles') / $this->params->get('num_columns')); $y ++) : if ($i < $this->total && $i < ($numIntroArticles)) : $this->item =& $this->getItem($i, $this->params); echo $this->loadTemplate('item'); $i ++; endif; endfor; ?>
          links = array_splice($this->items, $i - $this->pagination->limitstart); echo $this->loadTemplate('links'); ?>
          pagination->getPagesLinks(); ?>

          pagination->getPagesCounter(); ?>
          elracodelangela/components/com_content/views/category/tmpl/default_items.php0000755000176700017710000001111511061563443030407 0ustar essawireessawire
          params->get('filter') || $this->params->get('show_pagination_limit')) : ?> params->get('show_headings')) : ?> params->get('show_title')) : ?> params->get('show_date')) : ?> params->get('show_author')) : ?> params->get('show_hits')) : ?> items as $item) : ?> params->get('show_title')) : ?> access <= $this->user->get('aid', 0)) : ?> params->get('show_date')) : ?> params->get('show_author')) : ?> params->get('show_hits')) : ?> params->get('show_pagination')) : ?>
          params->get('filter')) : ?> params->get('show_pagination_limit')) : ?>
          pagination->getLimitBox(); ?>
          lists['order_Dir'], $this->lists['order'] ); ?> lists['order_Dir'], $this->lists['order'] ); ?> lists['order_Dir'], $this->lists['order'] ); ?> lists['order_Dir'], $this->lists['order'] ); ?>
          pagination->getRowOffset( $item->count ); ?> title; ?> item = $item; echo JHTML::_('icon.edit', $item, $this->params, $this->access) ?> escape($item->title).' : '; $link = JRoute::_('index.php?option=com_user&view=login'); ?> created; ?> created_by_alias ? $item->created_by_alias : $item->author; ?> hits ? $item->hits : '-'; ?>
           
          pagination->getPagesLinks(); ?>
          pagination->getPagesCounter(); ?>
          elracodelangela/components/com_content/views/category/tmpl/blog_item.php0000755000176700017710000001273211061563443027531 0ustar essawireessawire user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')); ?> item->state == 0) : ?>
          item->params->get('show_title') || $this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) : ?> item->params->get('show_title')) : ?> item->params->get('show_pdf_icon')) : ?> item->params->get( 'show_print_icon' )) : ?> item->params->get('show_email_icon')) : ?>
          item->params->get('link_titles') && $this->item->readmore_link != '') : ?> escape($this->item->title); ?> escape($this->item->title); ?> item, $this->item->params, $this->access); ?> item, $this->item->params, $this->access); ?> item, $this->item->params, $this->access); ?> item, $this->item->params, $this->access); ?>
          item->params->get('show_intro')) : echo $this->item->event->afterDisplayTitle; endif; ?> item->event->beforeDisplayContent; ?> item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?> item->params->get('show_author')) && ($this->item->author != "")) : ?> item->params->get('show_create_date')) : ?> item->params->get('show_url') && $this->item->urls) : ?> item->modified) != 0 && $this->item->params->get('show_modify_date')) : ?> item->params->get('show_readmore') && $this->item->readmore) : ?>
          item->params->get('show_section') && $this->item->sectionid && isset($this->item->section)) : ?> item->params->get('link_section')) : ?> item->sectionid)).'">'; ?> item->section; ?> item->params->get('link_section')) : ?> '; ?> item->params->get('show_category')) : ?> item->params->get('show_category') && $this->item->catid) : ?> item->params->get('link_category')) : ?> item->catslug, $this->item->sectionid)).'">'; ?> item->category; ?> item->params->get('link_category')) : ?> '; ?>
          item->created_by_alias ? $this->item->created_by_alias : $this->item->author) ); ?>   
          item->created, JText::_('DATE_FORMAT_LC2')); ?>
          item->urls; ?>
          item->toc)) : ?> item->toc; ?> item->text; ?>
          ( item->modified, JText::_('DATE_FORMAT_LC2')); ?> )
          item->readmore_register) : echo JText::_('Register to read more...'); elseif ($readmore = $this->item->params->get('readmore')) : echo $readmore; else : echo JText::sprintf('Read more...'); endif; ?>
          item->state == 0) : ?>
            item->event->afterDisplayContent; ?> elracodelangela/components/com_content/views/category/tmpl/index.html0000755000176700017710000000005411061563443027046 0ustar essawireessawireelracodelangela/components/com_content/views/category/tmpl/default.php0000755000176700017710000000233311061563443027210 0ustar essawireessawire params->get('show_page_title', 1)) : ?>
          escape($this->params->get('page_title')); ?>
          category->image) : ?> <?php echo $this->category->image;?> category->description; ?>
          items =& $this->getItems(); echo $this->loadTemplate('items'); ?> access->canEdit || $this->access->canEditOwn) : echo JHTML::_('icon.create', $this->category , $this->params, $this->access); endif; ?>
          elracodelangela/components/com_content/views/category/tmpl/blog_links.php0000755000176700017710000000064311061563443027711 0ustar essawireessawire
          elracodelangela/components/com_content/views/category/view.html.php0000755000176700017710000002060711061563443026531 0ustar essawireessawiregetPathway(); // Get the menu item object $menus = &JSite::getMenu(); $menu = $menus->getActive(); // Get the page/component configuration $params = clone($mainframe->getParams('com_content')); // Request variables $layout = JRequest::getCmd('layout'); $task = JRequest::getCmd('task'); // Parameters $params->def('num_leading_articles', 1); $params->def('num_intro_articles', 4); $params->def('num_columns', 2); $params->def('num_links', 4); $params->def('show_headings', 1); $params->def('show_pagination', 2); $params->def('show_pagination_results', 1); $params->def('show_pagination_limit', 1); $params->def('filter', 1); $intro = $params->get('num_intro_articles'); $leading = $params->get('num_leading_articles'); $links = $params->get('num_links'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); if ($layout == 'blog') { $default_limit = $intro + $leading + $links; } else { $params->def('display_num', $mainframe->getCfg('list_limit')); $default_limit = $params->get('display_num'); } $limit = $mainframe->getUserStateFromRequest('com_content.'.$this->getLayout().'.limit', 'limit', $default_limit, 'int'); JRequest::setVar('limit', (int) $limit); $contentConfig = &JComponentHelper::getParams('com_content'); $params->def('show_page_title', $contentConfig->get('show_title')); // Get some data from the model $items = & $this->get( 'Data' ); $total = & $this->get( 'Total' ); $category = & $this->get( 'Category' ); //add alternate feed link if($params->get('show_feed_link', 1) == 1) { $link = '&format=feed&limitstart='; $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0'); $document->addHeadLink(JRoute::_($link.'&type=rss'), 'alternate', 'rel', $attribs); $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0'); $document->addHeadLink(JRoute::_($link.'&type=atom'), 'alternate', 'rel', $attribs); } // Create a user access object for the user $access = new stdClass(); $access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all'); $access->canEditOwn = $user->authorize('com_content', 'edit', 'content', 'own'); $access->canPublish = $user->authorize('com_content', 'publish', 'content', 'all'); // Set page title per category // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', $category->title); } } else { $params->set('page_title', $category->title); } $document->setTitle( $params->get( 'page_title' ) ); //set breadcrumbs if(is_object($menu) && $menu->query['view'] != 'category') { $pathway->addItem($category->title, ''); } // Prepare category description $category->description = JHTML::_('content.prepare', $category->description); $params->def('date_format', JText::_('DATE_FORMAT_LC1')); // Keep a copy for safe keeping this is soooooo dirty -- must deal with in a later version // @todo -- oh my god we need to find this reference issue in 1.6 :) $this->_params = $params->toArray(); jimport('joomla.html.pagination'); //In case we are in a blog view set the limit if ($layout == 'blog') { $pagination = new JPagination($total, $limitstart, $limit - $links); } else { $pagination = new JPagination($total, $limitstart, $limit); } $this->assign('total', $total); $this->assign('action', $uri->toString()); $this->assignRef('items', $items); $this->assignRef('params', $params); $this->assignRef('category', $category); $this->assignRef('user', $user); $this->assignRef('access', $access); $this->assignRef('pagination', $pagination); parent::display($tpl); } function &getItems() { global $mainframe; //create select lists $user = &JFactory::getUser(); $lists = $this->_buildSortLists(); if (!count( $this->items ) ) { $this->assign('lists', $lists); $return = array(); return $return; } //create paginatiion if ($lists['filter']) { $this->data->link .= '&filter='.$lists['filter']; } $k = 0; $i = 0; foreach($this->items as $key => $item) { // checks if the item is a public or registered/special item if ($item->access <= $user->get('aid', 0)) { $item->link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid)); $item->readmore_register = false; } else { $item->link = JRoute::_('index.php?option=com_user&task=register'); $item->readmore_register = true; } $item->created = JHTML::_('date', $item->created, $this->params->get('date_format')); $item->odd = $k; $item->count = $i; $this->items[$key] = $item; $k = 1 - $k; $i++; } $this->assign('lists', $lists); return $this->items; } function &getItem($index = 0, &$params) { global $mainframe; // Initialize some variables $user =& JFactory::getUser(); $dispatcher =& JDispatcher::getInstance(); $SiteName = $mainframe->getCfg('sitename'); $item =& $this->items[$index]; $item->text = $item->introtext; $category = & $this->get( 'Category' ); $item->category = $category->title; $item->section = $category->sectiontitle; // Get the page/component configuration and article parameters $item->params = clone($params); $aparams = new JParameter($item->attribs); // Merge article parameters into the page configuration $item->params->merge($aparams); // Process the content preparation plugins JPluginHelper::importPlugin('content'); $results = $dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0)); // Build the link and text of the readmore button if (($item->params->get('show_readmore') && @ $item->readmore) || $item->params->get('link_titles')) { // checks if the item is a public or registered/special item if ($item->access <= $user->get('aid', 0)) { //$item->readmore_link = JRoute::_('index.php?view=article&catid='.$this->category->slug.'&id='.$item->slug); $item->readmore_link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid)); $item->readmore_register = false; } else { $item->readmore_link = JRoute::_('index.php?option=com_user&view=login'); $item->readmore_register = true; } } $item->event = new stdClass(); $results = $dispatcher->trigger('onAfterDisplayTitle', array (& $item, & $item->params,0)); $item->event->afterDisplayTitle = trim(implode("\n", $results)); $results = $dispatcher->trigger('onBeforeDisplayContent', array (& $item, & $item->params, 0)); $item->event->beforeDisplayContent = trim(implode("\n", $results)); $results = $dispatcher->trigger('onAfterDisplayContent', array (& $item, & $item->params, 0)); $item->event->afterDisplayContent = trim(implode("\n", $results)); return $item; } function _buildSortLists() { // Table ordering values $filter = JRequest::getString('filter'); $filter_order = JRequest::getCmd('filter_order'); $filter_order_Dir = JRequest::getCmd('filter_order_Dir'); $lists['task'] = 'category'; $lists['filter'] = $filter; $lists['order'] = $filter_order; $lists['order_Dir'] = $filter_order_Dir; return $lists; } } ?> elracodelangela/components/com_content/views/archive/0000755000176700017710000000000011061563605023677 5ustar essawireessawireelracodelangela/components/com_content/views/archive/metadata.xml0000755000176700017710000000021711061563443026204 0ustar essawireessawire elracodelangela/components/com_content/views/archive/index.html0000755000176700017710000000005411061563443025676 0ustar essawireessawireelracodelangela/components/com_content/views/archive/tmpl/0000755000176700017710000000000011061563605024653 5ustar essawireessawireelracodelangela/components/com_content/views/archive/tmpl/default.xml0000755000176700017710000000172611061563443027032 0ustar essawireessawire Archived Article List Layout ARCHIVED ARTICLE LIST LAYOUT DESC elracodelangela/components/com_content/views/archive/tmpl/default_items.php0000755000176700017710000000436411061563443030223 0ustar essawireessawire
            items as $item) : ?>
          • escape($item->title); ?>

            params->get('show_section') && $item->sectionid) || ($this->params->get('show_category') && $item->catid)) : ?>
            params->get('show_section') && $item->sectionid && isset($item->section)) : ?> params->get('link_section')) : ?> sectionid)).'">'; ?> section; ?> params->get('link_section')) : ?> '; ?> params->get('show_category')) : ?> params->get('show_category') && $item->catid) : ?> params->get('link_category')) : ?> catslug, $item->sectionid)).'">'; ?> category; ?> params->get('link_category')) : ?> '; ?>
            introtext), 0, 255); ?>...
          elracodelangela/components/com_content/views/archive/tmpl/index.html0000755000176700017710000000005411061563443026652 0ustar essawireessawireelracodelangela/components/com_content/views/archive/tmpl/default.php0000755000176700017710000000175311061563443027021 0ustar essawireessawire
          params->get('show_page_title', 1)) : ?>
          escape($this->params->get('page_title')); ?>

          params->get('filter')) : ?> form->monthField; ?> form->yearField; ?> form->limitField; ?>

          loadTemplate('items'); ?>
          elracodelangela/components/com_content/views/archive/view.html.php0000755000176700017710000001021211061563443026324 0ustar essawireessawiregetPathway(); $document =& JFactory::getDocument(); // Get the page/component configuration $params = &$mainframe->getParams('com_content'); // Request variables $task = JRequest::getCmd('task'); $limit = JRequest::getVar('limit', $params->get('display_num', 20), '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); $month = JRequest::getInt( 'month' ); $year = JRequest::getInt( 'year' ); $filter = JRequest::getString( 'filter' ); // Get some data from the model $state = & $this->get( 'state' ); $items = & $this->get( 'data' ); $total = & $this->get( 'total' ); // Add item to pathway $pathway->addItem(JText::_('Archive'), ''); $params->def('filter', 1); $params->def('filter_type', 'title'); jimport('joomla.html.pagination'); $pagination = new JPagination($total, $limitstart, $limit); $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'Archives' )); } } else { $params->set('page_title', JText::_( 'Archives' )); } $document->setTitle( $params->get( 'page_title' ) ); $form = new stdClass(); // Month Field $months = array( JHTML::_('select.option', null, JText::_( 'Month' ) ), JHTML::_('select.option', '01', JText::_( 'JANUARY_SHORT' ) ), JHTML::_('select.option', '02', JText::_( 'FEBRUARY_SHORT' ) ), JHTML::_('select.option', '03', JText::_( 'MARCH_SHORT' ) ), JHTML::_('select.option', '04', JText::_( 'APRIL_SHORT' ) ), JHTML::_('select.option', '05', JText::_( 'MAY_SHORT' ) ), JHTML::_('select.option', '06', JText::_( 'JUNE_SHORT' ) ), JHTML::_('select.option', '07', JText::_( 'JULY_SHORT' ) ), JHTML::_('select.option', '08', JText::_( 'AUGUST_SHORT' ) ), JHTML::_('select.option', '09', JText::_( 'SEPTEMBER_SHORT' ) ), JHTML::_('select.option', '10', JText::_( 'OCTOBER_SHORT' ) ), JHTML::_('select.option', '11', JText::_( 'NOVEMBER_SHORT' ) ), JHTML::_('select.option', '12', JText::_( 'DECEMBER_SHORT' ) ) ); $form->monthField = JHTML::_('select.genericlist', $months, 'month', 'size="1" class="inputbox"', 'value', 'text', $month ); // Year Field $years = array(); $years[] = JHTML::_('select.option', null, JText::_( 'Year' ) ); for ($i=2000; $i <= 2010; $i++) { $years[] = JHTML::_('select.option', $i, $i ); } $form->yearField = JHTML::_('select.genericlist', $years, 'year', 'size="1" class="inputbox"', 'value', 'text', $year ); $form->limitField = $pagination->getLimitBox(); $this->assign('filter' , $filter); $this->assign('year' , $year); $this->assign('month' , $month); $this->assignRef('form', $form); $this->assignRef('items', $items); $this->assignRef('params', $params); $this->assignRef('user', $user); $this->assignRef('pagination', $pagination); parent::display($tpl); } } ?> elracodelangela/components/com_content/views/index.html0000755000176700017710000000005411061563443024255 0ustar essawireessawireelracodelangela/components/com_content/views/section/0000755000176700017710000000000011061563605023722 5ustar essawireessawireelracodelangela/components/com_content/views/section/metadata.xml0000755000176700017710000000021711061563443026227 0ustar essawireessawire elracodelangela/components/com_content/views/section/index.html0000755000176700017710000000005411061563443025721 0ustar essawireessawireelracodelangela/components/com_content/views/section/view.feed.php0000755000176700017710000000421711061563443026316 0ustar essawireessawiregetParams(); // Get some data from the model JRequest::setVar('limit', $mainframe->getCfg('feed_limit')); // Lets get our data from the model $rows = &$this->get( 'Data' ); $section = &$this->get( 'Section' ); $doc->link = JRoute::_(ContentHelperRoute::getSectionRoute($section->id));; foreach ( $rows as $row ) { // strip html from feed item title $title = $this->escape( $row->title ); $title = html_entity_decode( $title ); // url link to article // & used instead of & as this is converted by feed creator $link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid));; // strip html from feed item description text $description = ($params->get('feed_summary', 0) ? $row->introtext.$row->fulltext : $row->introtext); $author = $row->created_by_alias ? $row->created_by_alias : $row->author; // load individual item creator class $item = new JFeedItem(); $item->title = $title; $item->link = $link; $item->description = $description; $item->date = $row->created; $item->category = $row->category; // loads item info into rss array $doc->addItem( $item ); } } } elracodelangela/components/com_content/views/section/tmpl/0000755000176700017710000000000011061563605024676 5ustar essawireessawireelracodelangela/components/com_content/views/section/tmpl/blog.xml0000755000176700017710000000642611061563444026357 0ustar essawireessawire Section Blog Layout SECTION BLOG LAYOUT DESC elracodelangela/components/com_content/views/section/tmpl/default.xml0000755000176700017710000000570211061563444027054 0ustar essawireessawire Standard Section Layout STANDARD SECTION LAYOUT DESC elracodelangela/components/com_content/views/section/tmpl/blog.php0000755000176700017710000001052011061563444026334 0ustar essawireessawire params->get('show_page_title')) : ?>
          escape($this->params->get('page_title')); ?>
          params->def('show_description', 1) || $this->params->def('show_description_image', 1)) :?> params->def('num_leading_articles', 1)) : ?> pagination->limitstart; endif; ?> pagination->limitstart + $this->params->get('num_leading_articles'); $numIntroArticles = $startIntroArticles + $this->params->get('num_intro_articles', 4); if (($numIntroArticles != $startIntroArticles) && ($i < $this->total)) : ?> params->def('num_links', 4) && ($i < $this->total)) : ?> params->def('show_pagination', 2)) : ?> params->def('show_pagination_results', 1)) : ?>
          params->get('show_description_image') && $this->section->image) : ?> params->get('show_description') && $this->section->description) : ?> section->description; ?>

          pagination->limitstart; $i < ($this->pagination->limitstart + $this->params->get('num_leading_articles')); $i++) : ?> = $this->total) : break; endif; ?>
          item =& $this->getItem($i, $this->params); echo $this->loadTemplate('item'); ?>
          params->get('multi_column_order')) : // order across, like front page for ($z = 0; $z < $this->params->def('num_columns', 2); $z ++) : if ($z > 0) : $divider = " column_separator"; endif; ?> params->get('num_intro_articles', 4) / $this->params->get('num_columns')); $cols = ($this->params->get('num_intro_articles', 4) % $this->params->get('num_columns')); ?> params->get('num_intro_articles', 4) ; else : // otherwise, order down, same as before (default behaviour) for ($z = 0; $z < $this->params->get('num_columns'); $z ++) : if ($z > 0) : $divider = " column_separator"; endif; ?>
          params->get('num_columns')) + $z; if ($target < $this->total && $target < ($numIntroArticles)) : $this->item =& $this->getItem($target, $this->params); echo $this->loadTemplate('item'); endif; endfor; ?> params->get('num_intro_articles', 4) / $this->params->get('num_columns')); $y ++) : if ($i < $this->total && $i < ($numIntroArticles)) : $this->item =& $this->getItem($i, $this->params); echo $this->loadTemplate('item'); $i ++; endif; endfor; ?>
          links = array_splice($this->items, $i - $this->pagination->limitstart); echo $this->loadTemplate('links'); ?>
          pagination->getPagesLinks(); ?>

          pagination->getPagesCounter(); ?>
          elracodelangela/components/com_content/views/section/tmpl/blog_item.php0000755000176700017710000001272011061563444027356 0ustar essawireessawire user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')) : ?>
          item, $this->item->params, $this->access); ?>
          item->state == 0) : ?>
          item->params->get('show_title') || $this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) : ?> item->params->get('show_title')) : ?> item->params->get('show_pdf_icon')) : ?> item->params->get( 'show_print_icon' )) : ?> item->params->get('show_email_icon')) : ?>
          item->params->get('link_titles') && $this->item->readmore_link != '') : ?> escape($this->item->title); ?> escape($this->item->title); ?> item, $this->item->params, $this->access); ?> item, $this->item->params, $this->access); ?> item, $this->item->params, $this->access); ?>
          item->params->get('show_intro')) : echo $this->item->event->afterDisplayTitle; endif; ?> item->event->beforeDisplayContent; ?> item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?> item->params->get('show_author')) && ($this->item->author != "")) : ?> item->params->get('show_create_date')) : ?> item->params->get('show_url') && $this->item->urls) : ?> item->modified) != 0 && $this->item->params->get('show_modify_date')) : ?> item->params->get('show_readmore') && $this->item->readmore) : ?>
          item->params->get('show_section') && $this->item->sectionid && isset($this->item->section)) : ?> item->params->get('link_section')) : ?> item->sectionid)).'">'; ?> item->section; ?> item->params->get('link_section')) : ?> '; ?> item->params->get('show_category')) : ?> item->params->get('show_category') && $this->item->catid) : ?> item->params->get('link_category')) : ?> item->catslug, $this->item->sectionid)).'">'; ?> item->category; ?> item->params->get('link_section')) : ?> '; ?>
          item->created_by_alias ? $this->item->created_by_alias : $this->item->author) ); ?>   
          item->created, JText::_('DATE_FORMAT_LC2')); ?>
          item->urls; ?>
          item->toc)) : ?> item->toc; ?> item->text; ?>
          ( item->modified, JText::_('DATE_FORMAT_LC2')); ?> )
          item->readmore_register) : echo JText::_('Register to read more...'); elseif ($readmore = $this->item->params->get('readmore')) : echo $readmore; else : echo JText::sprintf('Read more...'); endif; ?>
          item->state == 0) : ?>
            item->event->afterDisplayContent; ?> elracodelangela/components/com_content/views/section/tmpl/index.html0000755000176700017710000000005411061563444026676 0ustar essawireessawireelracodelangela/components/com_content/views/section/tmpl/default.php0000755000176700017710000000354711061563444027050 0ustar essawireessawire params->get('show_page_title', 1)) : ?>
          escape($this->params->get('page_title')); ?>
          params->get('show_description_image') && $this->section->image) : ?> <?php echo $this->section->image;?> params->get('show_description') && $this->section->description) : ?> section->description; ?>
          params->get('show_categories', 1)) : ?>
            categories as $category) : ?> params->get('show_empty_categories') && !$category->numitems) continue; ?>
          • title;?> params->get('show_cat_num_articles')) : ?>   ( numitems ." ". JText::_( 'items' );?> ) params->def('show_category_description', 1) && $category->description) : ?>
            description; ?>
          elracodelangela/components/com_content/views/section/tmpl/blog_links.php0000755000176700017710000000061711061563444027542 0ustar essawireessawire
          elracodelangela/components/com_content/views/section/view.html.php0000755000176700017710000001353111061563443026356 0ustar essawireessawiregetParams(); // Request variables $limit = JRequest::getVar('limit', $params->get('display_num'), '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); //parameters $intro = $params->def('num_intro_articles', 4); $leading = $params->def('num_leading_articles', 1); $links = $params->def('num_links', 4); $limit = $intro + $leading + $links; JRequest::setVar('limit', (int) $limit); // Get some data from the model $items = & $this->get( 'Data'); $total = & $this->get( 'Total'); $categories = & $this->get( 'Categories' ); $section = & $this->get( 'Section' ); // Create a user access object for the user $access = new stdClass(); $access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all'); $access->canEditOwn = $user->authorize('com_content', 'edit', 'content', 'own'); $access->canPublish = $user->authorize('com_content', 'publish', 'content', 'all'); //add alternate feed link if($params->get('show_feed_link', 1) == 1) { $link = '&format=feed&limitstart='; $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0'); $document->addHeadLink(JRoute::_($link.'&type=rss'), 'alternate', 'rel', $attribs); $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0'); $document->addHeadLink(JRoute::_($link.'&type=atom'), 'alternate', 'rel', $attribs); } $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', $section->title); } } else { $params->set('page_title', $section->title); } $document->setTitle( $params->get( 'page_title' ) ); // Prepare section description $section->description = JHTML::_('content.prepare', $section->description); for($i = 0; $i < count($categories); $i++) { $category =& $categories[$i]; $category->link = JRoute::_(ContentHelperRoute::getCategoryRoute($category->slug, $category->section).'&layout=default'); // Prepare category description $category->description = JHTML::_('content.prepare', $category->description); } if ($total == 0) { $params->set('show_categories', false); } jimport('joomla.html.pagination'); $pagination = new JPagination($total, $limitstart, $limit - $links); $this->assign('total', $total); $this->assignRef('items', $items); $this->assignRef('section', $section); $this->assignRef('categories', $categories); $this->assignRef('params', $params); $this->assignRef('user', $user); $this->assignRef('access', $access); $this->assignRef('pagination', $pagination); parent::display($tpl); } function &getItem( $index = 0, &$params) { global $mainframe; // Initialize some variables $user =& JFactory::getUser(); $dispatcher =& JDispatcher::getInstance(); $SiteName = $mainframe->getCfg('sitename'); $task = JRequest::getCmd('task'); $linkOn = null; $linkText = null; $item =& $this->items[$index]; $item->text = $item->introtext; // Get the page/component configuration and article parameters $item->params = clone($params); $aparams = new JParameter($item->attribs); // Merge article parameters into the page configuration $item->params->merge($aparams); // Process the content preparation plugins JPluginHelper::importPlugin('content'); $results = $dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0)); // Build the link and text of the readmore button if (($item->params->get('show_readmore') && @ $item->readmore) || $item->params->get('link_titles')) { // checks if the item is a public or registered/special item if ($item->access <= $user->get('aid', 0)) { //$item->readmore_link = JRoute::_("index.php?view=article&id=".$item->slug); $item->readmore_link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid)); $item->readmore_register = false; } else { $item->readmore_link = JRoute::_("index.php?option=com_user&view=login"); $item->readmore_register = true; } } $item->event = new stdClass(); $results = $dispatcher->trigger('onAfterDisplayTitle', array (& $item, & $item->params,0)); $item->event->afterDisplayTitle = trim(implode("\n", $results)); $results = $dispatcher->trigger('onBeforeDisplayContent', array (& $item, & $item->params, 0)); $item->event->beforeDisplayContent = trim(implode("\n", $results)); $results = $dispatcher->trigger('onAfterDisplayContent', array (& $item, & $item->params, 0)); $item->event->afterDisplayContent = trim(implode("\n", $results)); return $item; } } elracodelangela/components/com_content/views/frontpage/0000755000176700017710000000000011061563605024243 5ustar essawireessawireelracodelangela/components/com_content/views/frontpage/metadata.xml0000755000176700017710000000022211061563444026545 0ustar essawireessawire elracodelangela/components/com_content/views/frontpage/index.html0000755000176700017710000000005411061563444026243 0ustar essawireessawireelracodelangela/components/com_content/views/frontpage/view.feed.php0000755000176700017710000000406411061563444026640 0ustar essawireessawiregetParams(); $document->link = JRoute::_('index.php?option=com_content&view=frontpage'); // Get some data from the model JRequest::setVar('limit', $mainframe->getCfg('feed_limit')); $rows = & $this->get( 'Data' ); foreach ( $rows as $row ) { // strip html from feed item title $title = $this->escape( $row->title ); $title = html_entity_decode( $title ); // url link to article $link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid)); // strip html from feed item description text $description = ($params->get('feed_summary', 0) ? $row->introtext.$row->fulltext : $row->introtext); $author = $row->created_by_alias ? $row->created_by_alias : $row->author; // load individual item creator class $item = new JFeedItem(); $item->title = $title; $item->link = $link; $item->description = $description; $item->date = $row->created; $item->category = 'frontpage'; // loads item info into rss array $document->addItem( $item ); } } } ?> elracodelangela/components/com_content/views/frontpage/tmpl/0000755000176700017710000000000011061563605025217 5ustar essawireessawireelracodelangela/components/com_content/views/frontpage/tmpl/default.xml0000755000176700017710000000526311061563444027377 0ustar essawireessawire Frontpage Blog Layout FRONTPAGE BLOG LAYOUT DESC elracodelangela/components/com_content/views/frontpage/tmpl/index.html0000755000176700017710000000005411061563444027217 0ustar essawireessawireelracodelangela/components/com_content/views/frontpage/tmpl/default_item.php0000755000176700017710000001261611061563444030404 0ustar essawireessawireuser->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')); ?> item->state == 0) : ?>
          item->params->get('show_title') || $this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) : ?> item->params->get('show_title')) : ?> item->params->get('show_pdf_icon')) : ?> item->params->get( 'show_print_icon' )) : ?> item->params->get('show_email_icon')) : ?>
          item->params->get('link_titles') && $this->item->readmore_link != '') : ?> item->title; ?> escape($this->item->title); ?> item, $this->item->params, $this->access); ?> item, $this->item->params, $this->access); ?> item, $this->item->params, $this->access); ?> item, $this->item->params, $this->access); ?>
          item->params->get('show_intro')) : echo $this->item->event->afterDisplayTitle; endif; ?> item->event->beforeDisplayContent; ?> item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?> item->params->get('show_author')) && ($this->item->author != "")) : ?> item->params->get('show_create_date')) : ?> item->params->get('show_url') && $this->item->urls) : ?> item->modified) != 0 && $this->item->params->get('show_modify_date')) : ?> item->params->get('show_readmore') && $this->item->readmore) : ?>
          item->params->get('show_section') && $this->item->sectionid && isset($this->item->section)) : ?> item->params->get('link_section')) : ?> item->sectionid)).'">'; ?> item->section; ?> item->params->get('link_section')) : ?> '; ?> item->params->get('show_category')) : ?> item->params->get('show_category') && $this->item->catid) : ?> item->params->get('link_category')) : ?> item->catslug, $this->item->sectionid)).'">'; ?> item->category; ?> item->params->get('link_category')) : ?> '; ?>
          item->created_by_alias ? $this->item->created_by_alias : $this->item->author) ); ?>   
          item->created, JText::_('DATE_FORMAT_LC2')); ?>
          item->urls; ?>
          item->toc)) : ?> item->toc; ?> item->text; ?>
          ( item->modified, JText::_('DATE_FORMAT_LC2')); ?> )
          item->readmore_register) : echo JText::_('Register to read more...'); elseif ($readmore = $this->item->params->get('readmore')) : echo $readmore; else : echo JText::sprintf('Read more...'); endif; ?>
          item->state == 0) : ?>
            item->event->afterDisplayContent; ?>elracodelangela/components/com_content/views/frontpage/tmpl/default.php0000755000176700017710000000750711061563444027371 0ustar essawireessawire params->get('show_page_title', 1)) : ?>
          escape($this->params->get('page_title')); ?>
          params->def('num_leading_articles', 1)) : ?> pagination->limitstart; endif; ?> pagination->limitstart + $this->params->get('num_leading_articles'); $numIntroArticles = $startIntroArticles + $this->params->get('num_intro_articles', 4); if (($numIntroArticles != $startIntroArticles) && ($i < $this->total)) : ?> params->def('num_links', 4) && ($i < $this->total)) : ?> params->def('show_pagination', 2) == 1 || ($this->params->get('show_pagination') == 2 && $this->pagination->get('pages.total') > 1)) : ?> params->def('show_pagination_results', 1)) : ?>
          pagination->limitstart; $i < ($this->pagination->limitstart + $this->params->get('num_leading_articles')); $i++) : ?> = $this->total) : break; endif; ?>
          item =& $this->getItem($i, $this->params); echo $this->loadTemplate('item'); ?>
          params->get('multi_column_order')) : // order across as before for ($z = 0; $z < $this->params->def('num_columns', 2); $z ++) : if ($z > 0) : $divider = " column_separator"; endif; ?> params->get('num_intro_articles', 4) / $this->params->get('num_columns')); $cols = ($this->params->get('num_intro_articles', 4) % $this->params->get('num_columns')); ?> params->get('num_intro_articles') ; else : // otherwise, order down columns, like old category blog for ($z = 0; $z < $this->params->get('num_columns'); $z ++) : if ($z > 0) : $divider = " column_separator"; endif; ?> params->get('num_intro_articles') ; ?>
          params->get('num_columns')) + $z; if ($target < $this->total && $target < ($numIntroArticles)) : $this->item =& $this->getItem($target, $this->params); echo $this->loadTemplate('item'); endif; endfor; ?> params->get('num_intro_articles') / $this->params->get('num_columns')); $y ++) : if ($i < $this->total && $i < ($numIntroArticles)) : $this->item =& $this->getItem($i, $this->params); echo $this->loadTemplate('item'); $i ++; endif; endfor; ?>
          links = array_splice($this->items, $i - $this->pagination->limitstart); echo $this->loadTemplate('links'); ?>
          pagination->getPagesLinks(); ?>

          pagination->getPagesCounter(); ?>
          elracodelangela/components/com_content/views/frontpage/tmpl/default_links.php0000755000176700017710000000064111061563444030561 0ustar essawireessawire
          elracodelangela/components/com_content/views/frontpage/view.html.php0000755000176700017710000001240511061563444026677 0ustar essawireessawiregetParams(); // parameters $intro = $params->def('num_intro_articles', 4); $leading = $params->def('num_leading_articles', 1); $links = $params->def('num_links', 4); $descrip = $params->def('show_description', 1); $descrip_image = $params->def('show_description_image',1); $params->set('show_intro', 1); $limit = $intro + $leading + $links; JRequest::setVar('limit', (int) $limit); //set data model $items =& $this->get('data' ); $total =& $this->get('total'); // Create a user access object for the user $access = new stdClass(); $access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all'); $access->canEditOwn = $user->authorize('com_content', 'edit', 'content', 'own'); $access->canPublish = $user->authorize('com_content', 'publish', 'content', 'all'); //add alternate feed link if($params->get('show_feed_link', 1) == 1) { $link = '&format=feed&limitstart='; $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0'); $document->addHeadLink(JRoute::_($link.'&type=rss'), 'alternate', 'rel', $attribs); $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0'); $document->addHeadLink(JRoute::_($link.'&type=atom'), 'alternate', 'rel', $attribs); } $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', htmlspecialchars_decode($mainframe->getCfg('sitename' ))); } } else { $params->set('page_title', htmlspecialchars_decode($mainframe->getCfg('sitename' ))); } $document->setTitle( $params->get( 'page_title' ) ); jimport('joomla.html.pagination'); $this->pagination = new JPagination($total, $limitstart, $limit - $links); $this->assign('total', $total); $this->assignRef('user', $user); $this->assignRef('access', $access); $this->assignRef('params', $params); $this->assignRef('items', $items); parent::display($tpl); } function &getItem($index = 0, &$params) { global $mainframe; // Initialize some variables $user =& JFactory::getUser(); $dispatcher =& JDispatcher::getInstance(); $SiteName = $mainframe->getCfg('sitename'); $task = JRequest::getCmd('task'); $linkOn = null; $linkText = null; $item =& $this->items[$index]; $item->text = $item->introtext; // Get the page/component configuration and article parameters $item->params = clone($params); $aparams = new JParameter($item->attribs); // Merge article parameters into the page configuration $item->params->merge($aparams); // Process the content preparation plugins JPluginHelper::importPlugin('content'); $results = $dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0)); // Build the link and text of the readmore button if (($item->params->get('show_readmore') && @ $item->readmore) || $item->params->get('link_titles')) { // checks if the item is a public or registered/special item if ($item->access <= $user->get('aid', 0)) { $item->readmore_link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid)); $item->readmore_register = false; } else { $item->readmore_link = JRoute::_("index.php?option=com_user&view=login"); $item->readmore_register = true; } } $item->event = new stdClass(); $results = $dispatcher->trigger('onAfterDisplayTitle', array (& $item, & $item->params,0)); $item->event->afterDisplayTitle = trim(implode("\n", $results)); $results = $dispatcher->trigger('onBeforeDisplayContent', array (& $item, & $item->params, 0)); $item->event->beforeDisplayContent = trim(implode("\n", $results)); $results = $dispatcher->trigger('onAfterDisplayContent', array (& $item, & $item->params, 0)); $item->event->afterDisplayContent = trim(implode("\n", $results)); return $item; } } elracodelangela/components/com_content/content.php0000755000176700017710000000237611061563443023317 0ustar essawireessawireregisterTask( 'new' , 'edit' ); $controller->registerTask( 'apply', 'save' ); $controller->registerTask( 'apply_new', 'save' ); // Perform the Request task $controller->execute(JRequest::getVar('task', null, 'default', 'cmd')); $controller->redirect(); elracodelangela/components/com_content/controller.php0000755000176700017710000002253011061563443024022 0ustar essawireessawireget('id')) { parent::display(false); } else { parent::display(true); } } /** * Edits an article * * @access public * @since 1.5 */ function edit() { $user =& JFactory::getUser(); // Create a user access object for the user $access = new stdClass(); $access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all'); $access->canEditOwn = $user->authorize('com_content', 'edit', 'content', 'own'); $access->canPublish = $user->authorize('com_content', 'publish', 'content', 'all'); // Create the view $view = & $this->getView('article', 'html'); // Get/Create the model $model = & $this->getModel('Article'); // new record if (!($access->canEdit || $access->canEditOwn)) { JError::raiseError( 403, JText::_("ALERTNOTAUTH") ); } if( $model->get('id') > 1 && $user->get('gid') <= 19 && $model->get('created_by') != $user->id ) { JError::raiseError( 403, JText::_("ALERTNOTAUTH") ); } if ( $model->isCheckedOut($user->get('id'))) { $msg = JText::sprintf('DESCBEINGEDITTED', JText::_('The item'), $model->get('title')); $this->setRedirect(JRoute::_('index.php?view=article&id='.$model->get('id'), false), $msg); return; } //Checkout the article $model->checkout(); // Push the model into the view (as default) $view->setModel($model, true); // Set the layout $view->setLayout('form'); // Display the view $view->display(); } /** * Saves the content item an edit form submit * * @todo */ function save() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $user = & JFactory::getUser(); $task = JRequest::getVar('task', null, 'default', 'cmd'); // Make sure you are logged in and have the necessary access rights if ($user->get('gid') < 19) { JError::raiseError( 403, JText::_('ALERTNOTAUTH') ); return; } // Create a user access object for the user $access = new stdClass(); $access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all'); $access->canEditOwn = $user->authorize('com_content', 'edit', 'content', 'own'); $access->canPublish = $user->authorize('com_content', 'publish', 'content', 'all'); if (!($access->canEdit || $access->canEditOwn)) { JError::raiseError( 403, JText::_("ALERTNOTAUTH") ); } //get data from the request $model = $this->getModel('article'); //get data from request $post = JRequest::get('post'); $post['text'] = JRequest::getVar('text', '', 'post', 'string', JREQUEST_ALLOWRAW); //preform access checks $isNew = ((int) $post['id'] < 1); if ($model->store($post)) { $msg = JText::_( 'Article Saved' ); if($isNew) { $post['id'] = (int) $model->get('id'); } } else { $msg = JText::_( 'Error Saving Article' ); JError::raiseError( 500, $model->getError() ); } // manage frontpage items //TODO : Move this into a frontpage model require_once (JPATH_ADMINISTRATOR.DS.'components'.DS.'com_frontpage'.DS.'tables'.DS.'frontpage.php'); $fp = new TableFrontPage($db); if (JRequest::getVar('frontpage', false, '', 'boolean')) { // toggles go to first place if (!$fp->load($post['id'])) { // new entry $query = 'INSERT INTO #__content_frontpage' . ' VALUES ( '.(int) $post['id'].', 1 )'; $db->setQuery($query); if (!$db->query()) { JError::raiseError( 500, $db->stderr()); } $fp->ordering = 1; } } else { // no frontpage mask if (!$fp->delete($post['id'])) { $msg .= $fp->stderr(); } $fp->ordering = 0; } $fp->reorder(); $model->checkin(); // gets section name of item $query = 'SELECT s.title' . ' FROM #__sections AS s' . ' WHERE s.scope = "content"' . ' AND s.id = ' . (int) $post['sectionid']; $db->setQuery($query); // gets category name of item $section = $db->loadResult(); $query = 'SELECT c.title' . ' FROM #__categories AS c' . ' WHERE c.id = ' . (int) $post['catid']; $db->setQuery($query); $category = $db->loadResult(); if ($isNew) { // messaging for new items require_once (JPATH_ADMINISTRATOR.DS.'components'.DS.'com_messages'.DS.'tables'.DS.'message.php'); // load language for messaging $lang =& JFactory::getLanguage(); $lang->load('com_messages'); $query = 'SELECT id' . ' FROM #__users' . ' WHERE sendEmail = 1'; $db->setQuery($query); $users = $db->loadResultArray(); foreach ($users as $user_id) { $msg = new TableMessage($db); $msg->send($user->get('id'), $user_id, JText::_('New Item'), JText::sprintf('ON_NEW_CONTENT', $user->get('username'), $post['title'], $section, $category)); } } else { // If the article isn't new, then we need to clean the cache so that our changes appear realtime :) $cache = &JFactory::getCache('com_content'); $cache->clean(); } if ($access->canPublish) { // Publishers, admins, etc just get the stock msg $msg = JText::_('Item successfully saved.'); } else { $msg = $isNew ? JText::_('THANK_SUB') : JText::_('Item successfully saved.'); } $referer = JRequest::getString('ret', base64_encode(JURI::base()), 'get'); $referer = base64_decode($referer); if (!JURI::isInternal($referer)) { $referer = ''; } $this->setRedirect($referer, $msg); } /** * Cancels an edit article operation * * @access public * @since 1.5 */ function cancel() { // Initialize some variables $db = & JFactory::getDBO(); $user = & JFactory::getUser(); // Get an article table object and bind post variabes to it [We don't need a full model here] $article = & JTable::getInstance('content'); $article->bind(JRequest::get('post')); if ($user->authorize('com_content', 'edit', 'content', 'all') || ($user->authorize('com_content', 'edit', 'content', 'own') && $article->created_by == $user->get('id'))) { $article->checkin(); } // If the task was edit or cancel, we go back to the content item $referer = JRequest::getString('ret', base64_encode(JURI::base()), 'get'); $referer = base64_decode($referer); if (!JURI::isInternal($referer)) { $referer = ''; } $this->setRedirect($referer); } /** * Rates an article * * @access public * @since 1.5 */ function vote() { $url = JRequest::getVar('url', '', 'default', 'string'); $rating = JRequest::getVar('user_rating', 0, '', 'int'); $id = JRequest::getVar('cid', 0, '', 'int'); // Get/Create the model $model = & $this->getModel('Article' ); $model->setId($id); if(!JURI::isInternal($url)) { $url = JRoute::_('index.php?option=com_content&view=article&id='.$id); } if ($model->storeVote($rating)) { $this->setRedirect($url, JText::_('Thanks for rating!')); } else { $this->setRedirect($url, JText::_('You already rated this article today!')); } } /** * Searches for an item by a key parameter * * @access public * @since 1.5 */ function findkey() { // Initialize variables $db = & JFactory::getDBO(); $keyref = JRequest::getVar('keyref', null, 'default', 'cmd'); JRequest::setVar('keyref', $keyref); // If no keyref left, throw 404 if( empty($keyref) === true ) { JError::raiseError( 404, JText::_("Key Not Found") ); } $keyref = $db->Quote( '%keyref='.$db->getEscaped( $keyref, true ).'%', false ); $query = 'SELECT id' . ' FROM #__content' . ' WHERE attribs LIKE '.$keyref; $db->setQuery($query); $id = (int) $db->loadResult(); if ($id > 0) { // Create the view $view =& $this->getView('article', 'html'); // Get/Create the model $model =& $this->getModel('Article' ); // Set the id of the article to display $model->setId($id); // Push the model into the view (as default) $view->setModel($model, true); // Display the view $view->display(); } else { JError::raiseError( 404, JText::_( 'Key Not Found' ) ); } } /** * Output the pagebreak dialog * * @access public * @since 1.5 */ function ins_pagebreak() { // Create the view $view = & $this->getView('article', 'html'); // Set the layout $view->setLayout('pagebreak'); // Display the view $view->display(); } } elracodelangela/components/com_content/view.php0000755000176700017710000000047611061563444022617 0ustar essawireessawire elracodelangela/components/com_wrapper/wrapper.php0000755000176700017710000000373311061563445023333 0ustar essawireessawiregetActive(); // Get the page/component configuration $params = &$mainframe->getParams(); //set page title $document->setTitle($menu->name); $url = $params->def( 'url', '' ); $row = new stdClass(); if ( $params->def( 'add_scheme', 1 ) ) { // adds 'http://' if none is set if ( substr( $url, 0, 1 ) == '/' ) { // relative url in component. use server http_host. $row->url = 'http://'. $_SERVER['HTTP_HOST'] . $url; } elseif ( !strstr( $url, 'http' ) && !strstr( $url, 'https' ) ) { $row->url = 'http://'. $url; } else { $row->url = $url; } } else { $row->url = $url; } require_once (JPATH_COMPONENT.DS.'views'.DS.'wrapper'.DS.'view.php'); $view = new WrapperViewWrapper(); $view->assignRef('params' , $params); $view->assignRef('wrapper' , $row); $view->display(); } } ?>elracodelangela/components/com_wrapper/index.html0000755000176700017710000000005411061563444023127 0ustar essawireessawireelracodelangela/components/com_wrapper/views/0000755000176700017710000000000011061563605022264 5ustar essawireessawireelracodelangela/components/com_wrapper/views/wrapper/0000755000176700017710000000000011061563605023744 5ustar essawireessawireelracodelangela/components/com_wrapper/views/wrapper/metadata.xml0000755000176700017710000000022411061563445026251 0ustar essawireessawire elracodelangela/components/com_wrapper/views/wrapper/index.html0000755000176700017710000000005411061563445025745 0ustar essawireessawireelracodelangela/components/com_wrapper/views/wrapper/tmpl/0000755000176700017710000000000011061563605024720 5ustar essawireessawireelracodelangela/components/com_wrapper/views/wrapper/tmpl/default.xml0000755000176700017710000000254411061563445027100 0ustar essawireessawire Wrapper WRAPPER DESC elracodelangela/components/com_wrapper/views/wrapper/tmpl/index.html0000755000176700017710000000005411061563445026721 0ustar essawireessawireelracodelangela/components/com_wrapper/views/wrapper/tmpl/default.php0000755000176700017710000000233511061563445027065 0ustar essawireessawire
          params->get( 'show_page_title', 1 ) ) : ?>
          params->get( 'page_title' ); ?>
          elracodelangela/components/com_wrapper/views/wrapper/view.php0000755000176700017710000000267211061563445025443 0ustar essawireessawireparams->def( 'height_auto' ) ) { $this->wrapper->load = 'onload="iFrameHeight()"'; } else { $this->wrapper->load = ''; } // Get the page/component configuration $params = &$mainframe->getParams(); $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself $document->setTitle( $params->get( 'page_title' ) ); $this->assignRef('params', $params); parent::display($tpl); } } elracodelangela/components/com_wrapper/views/index.html0000755000176700017710000000005411061563445024265 0ustar essawireessawireelracodelangela/components/com_wrapper/wrapper.xml0000755000176700017710000000076711061563445023350 0ustar essawireessawire Wrapper Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 Wrapper elracodelangela/components/com_user/0000755000176700017710000000000011061563603020423 5ustar essawireessawireelracodelangela/components/com_user/user.php0000755000176700017710000000161411061563441022117 0ustar essawireessawireexecute( JRequest::getCmd('task')); // Redirect if set by the controller $controller->redirect(); elracodelangela/components/com_user/router.php0000755000176700017710000000224411061563441022461 0ustar essawireessawiregetItem( $query['Itemid'] ); if(!isset($menuItem->query['view']) || $menuItem->query['view'] != $query['view']) { $segments[] = $query['view']; } } unset($query['view']); } return $segments; } function UserParseRoute($segments) { $vars = array(); $count = count($segments); if(!empty($count)) { $vars['view'] = $segments[0]; } if($count > 1) { $vars['id'] = $segments[$count - 1]; } return $vars; } elracodelangela/components/com_user/models/0000755000176700017710000000000011061563604021707 5ustar essawireessawireelracodelangela/components/com_user/models/reset.php0000755000176700017710000001441311061563442023550 0ustar essawireessawiresetError(JText::_('INVALID_EMAIL_ADDRESS')); return false; } // Build a query to find the user $query = 'SELECT id FROM #__users' . ' WHERE email = '.$db->Quote($email) . ' AND block = 0'; $db->setQuery($query); // Check the results if (!($id = $db->loadResult())) { $this->setError(JText::_('COULD_NOT_FIND_USER')); return false; } // Generate a new token $token = JUtility::getHash(JUserHelper::genRandomPassword()); $query = 'UPDATE #__users' . ' SET activation = '.$db->Quote($token) . ' WHERE id = '.(int) $id . ' AND block = 0'; $db->setQuery($query); // Save the token if (!$db->query()) { $this->setError(JText::_('DATABASE_ERROR')); return false; } // Send the token to the user via e-mail if (!$this->_sendConfirmationMail($email, $token)) { return false; } return true; } /** * Checks a user supplied token for validity * If the token is valid, it pushes the token * and user id into the session for security checks. * * @since 1.5 * @param token An md5 hashed randomly generated string * @return bool True on success/false on failure */ function confirmReset($token) { global $mainframe; if(strlen($token) != 32) { $this->setError(JText::_('INVALID_TOKEN')); return false; } $db = &JFactory::getDBO(); $db->setQuery('SELECT id FROM #__users WHERE block = 0 AND activation = '.$db->Quote($token)); // Verify the token if (!($id = $db->loadResult())) { $this->setError(JText::_('INVALID_TOKEN')); return false; } // Push the token and user id into the session $mainframe->setUserState($this->_namespace.'token', $token); $mainframe->setUserState($this->_namespace.'id', $id); return true; } /** * Takes the new password and saves it to the database. * It will only save the password if the user has the * correct user id and token stored in her session. * * @since 1.5 * @param string New Password * @param string New Password * @return bool True on success/false on failure */ function completeReset($password1, $password2) { jimport('joomla.user.helper'); global $mainframe; // Make sure that we have a pasword if ( ! $password1 ) { $this->setError(JText::_('MUST_SUPPLY_PASSWORD')); return false; } // Verify that the passwords match if ($password1 != $password2) { $this->setError(JText::_('PASSWORDS_DO_NOT_MATCH_LOW')); return false; } // Get the necessary variables $db = &JFactory::getDBO(); $id = $mainframe->getUserState($this->_namespace.'id'); $token = $mainframe->getUserState($this->_namespace.'token'); $salt = JUserHelper::genRandomPassword(32); $crypt = JUserHelper::getCryptedPassword($password1, $salt); $password = $crypt.':'.$salt; // Get the user object $user = new JUser($id); // Fire the onBeforeStoreUser trigger JPluginHelper::importPlugin('user'); $dispatcher =& JDispatcher::getInstance(); $dispatcher->trigger('onBeforeStoreUser', array($user->getProperties(), false)); // Build the query $query = 'UPDATE #__users' . ' SET password = '.$db->Quote($password) . ' , activation = ""' . ' WHERE id = '.(int) $id . ' AND activation = '.$db->Quote($token) . ' AND block = 0'; $db->setQuery($query); // Save the password if (!$result = $db->query()) { $this->setError(JText::_('DATABASE_ERROR')); return false; } // Update the user object with the new values. $user->password = $password; $user->activation = ''; $user->password_clear = $password1; // Fire the onAfterStoreUser trigger $dispatcher->trigger('onAfterStoreUser', array($user->getProperties(), false, $result, $this->getError())); // Flush the variables from the session $mainframe->setUserState($this->_namespace.'id', null); $mainframe->setUserState($this->_namespace.'token', null); return true; } /** * Sends a password reset request confirmation to the * specified e-mail address with the specified token. * * @since 1.5 * @param string An e-mail address * @param string An md5 hashed randomly generated string * @return bool True on success/false on failure */ function _sendConfirmationMail($email, $token) { $config = &JFactory::getConfig(); $uri = &JFactory::getURI(); $url = JURI::base().'index.php?option=com_user&view=reset&layout=confirm'; $sitename = $config->getValue('sitename'); // Set the e-mail parameters $from = $config->getValue('mailfrom'); $fromname = $config->getValue('fromname'); $subject = JText::sprintf('PASSWORD_RESET_CONFIRMATION_EMAIL_TITLE', $sitename); $body = JText::sprintf('PASSWORD_RESET_CONFIRMATION_EMAIL_TEXT', $sitename, $token, $url); // Send the e-mail if (!JUtility::sendMail($from, $fromname, $email, $subject, $body)) { $this->setError('ERROR_SENDING_CONFIRMATION_EMAIL'); return false; } return true; } } elracodelangela/components/com_user/models/user.php0000755000176700017710000000520011061563442023376 0ustar essawireessawiresetId($id); } /** * Method to set the weblink identifier * * @access public * @param int Weblink identifier */ function setId($id) { // Set weblink id and wipe data $this->_id = $id; $this->_data = null; } /** * Method to get a user * * @since 1.5 */ function &getData() { // Load the weblink data if ($this->_loadData()) { //do nothing } return $this->_data; } /** * Method to store the user data * * @access public * @return boolean True on success * @since 1.5 */ function store($data) { $user = JFactory::getUser(); $username = $user->get('username'); // Bind the form fields to the user table if (!$user->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } // Store the web link table to the database if (!$user->save()) { $this->setError( $user->getError() ); return false; } $session =& JFactory::getSession(); $session->set('user', $user); // check if username has been changed if ( $username != $user->get('username') ) { $table = $this->getTable('session', 'JTable'); $table->load($session->getId()); $table->username = $user->get('username'); $table->store(); } return true; } /** * Method to load user data * * @access private * @return boolean True on success * @since 1.5 */ function _loadData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $this->_data =& JFactory::getUser(); return (boolean) $this->_data; } return true; } } ?> elracodelangela/components/com_user/models/index.html0000755000176700017710000000005411061563442023706 0ustar essawireessawireelracodelangela/components/com_user/models/remind.php0000755000176700017710000000546511061563442023713 0ustar essawireessawiresetError(JText::_('INVALID_EMAIL_ADDRESS')); return false; } $db = &JFactory::getDBO(); $db->setQuery('SELECT username FROM #__users WHERE email = '.$db->Quote($email), 0, 1); // Get the username if (!($username = $db->loadResult())) { $this->setError(JText::_('COULD_NOT_FIND_EMAIL')); return false; } // Push the email address into the session $mainframe->setUserState($this->_namespace.'email', $email); // Send the reminder email if (!$this->_sendReminderMail($email, $username)) { return false; } return true; } /** * Sends a username reminder to the e-mail address * specified containing the specified username. * * @since 1.5 * @param string A user's e-mail address * @param string A user's username * @return bool True on success/false on failure */ function _sendReminderMail($email, $username) { $config = &JFactory::getConfig(); $uri = &JFactory::getURI(); $url = $uri->toString( array('scheme', 'host', 'port')).JRoute::_('index.php?option=com_user&view=login', false); $from = $config->getValue('mailfrom'); $fromname = $config->getValue('fromname'); $subject = JText::sprintf('USERNAME_REMINDER_EMAIL_TITLE', $config->getValue('sitename')); $body = JText::sprintf('USERNAME_REMINDER_EMAIL_TEXT', $config->getValue('sitename'), $username, $url); if (!JUtility::sendMail($from, $fromname, $email, $subject, $body)) { $this->setError('ERROR_SENDING_REMINDER_EMAIL'); return false; } return true; } }elracodelangela/components/com_user/index.html0000755000176700017710000000005411061563441022422 0ustar essawireessawireelracodelangela/components/com_user/views/0000755000176700017710000000000011061563603021560 5ustar essawireessawireelracodelangela/components/com_user/views/login/0000755000176700017710000000000011061563604022671 5ustar essawireessawireelracodelangela/components/com_user/views/login/metadata.xml0000755000176700017710000000022011061563441025167 0ustar essawireessawire elracodelangela/components/com_user/views/login/index.html0000755000176700017710000000005411061563441024667 0ustar essawireessawireelracodelangela/components/com_user/views/login/tmpl/0000755000176700017710000000000011061563604023645 5ustar essawireessawireelracodelangela/components/com_user/views/login/tmpl/default.xml0000755000176700017710000000623511061563441026023 0ustar essawireessawire Default Login Layout DEFAULT LOGIN LAYOUT DESC elracodelangela/components/com_user/views/login/tmpl/default_logout.php0000755000176700017710000000215411061563441027377 0ustar essawireessawire
          params->get( 'show_logout_title' ) ) : ?>
          params->get( 'header_logout' ); ?>
          image; ?> params->get('description_logout')) : echo $this->params->get('description_logout_text'); endif; ?>


          elracodelangela/components/com_user/views/login/tmpl/metadata.xml0000755000176700017710000000025011061563441026146 0ustar essawireessawire elracodelangela/components/com_user/views/login/tmpl/index.html0000755000176700017710000000005411061563441025643 0ustar essawireessawireelracodelangela/components/com_user/views/login/tmpl/default_login.php0000755000176700017710000000602711061563441027201 0ustar essawireessawire load( 'plg_authentication_openid', JPATH_ADMINISTRATOR ); $langScript = 'var JLanguage = {};'. ' JLanguage.WHAT_IS_OPENID = \''.JText::_( 'WHAT_IS_OPENID' ).'\';'. ' JLanguage.LOGIN_WITH_OPENID = \''.JText::_( 'LOGIN_WITH_OPENID' ).'\';'. ' JLanguage.NORMAL_LOGIN = \''.JText::_( 'NORMAL_LOGIN' ).'\';'. ' var comlogin = 1;'; $document = &JFactory::getDocument(); $document->addScriptDeclaration( $langScript ); JHTML::_('script', 'openid.js'); endif; ?>
          params->get( 'show_login_title' ) ) : ?>
          params->get( 'header_login' ); ?>
          image; ?> params->get( 'description_login' ) ) : ?> params->get( 'description_login_text' ); ?>



          • get('allowUserRegistration')) : ?>
          elracodelangela/components/com_user/views/login/tmpl/default.php0000755000176700017710000000015111061563441026001 0ustar essawireessawire loadTemplate($this->type); ?> elracodelangela/components/com_user/views/login/view.html.php0000755000176700017710000000613611061563441025327 0ustar essawireessawiregetPathway(); $image = ''; $menu =& JSite::getMenu(); $item = $menu->getActive(); if($item) $params =& $menu->getParams($item->id); else $params =& $menu->getParams(null); $type = (!$user->get('guest')) ? 'logout' : 'login'; // Set some default page parameters if not set $params->def( 'page_title', 1 ); if(!$item) { $params->def( 'header_login', '' ); $params->def( 'header_logout', '' ); } $params->def( 'pageclass_sfx', '' ); $params->def( 'login', 'index.php' ); $params->def( 'logout', 'index.php' ); $params->def( 'description_login', 1 ); $params->def( 'description_logout', 1 ); $params->def( 'description_login_text', JText::_( 'LOGIN_DESCRIPTION' ) ); $params->def( 'description_logout_text', JText::_( 'LOGOUT_DESCRIPTION' ) ); $params->def( 'image_login', 'key.jpg' ); $params->def( 'image_logout', 'key.jpg' ); $params->def( 'image_login_align', 'right' ); $params->def( 'image_logout_align', 'right' ); $usersConfig = &JComponentHelper::getParams( 'com_users' ); $params->def( 'registration', $usersConfig->get( 'allowUserRegistration' ) ); if ( !$user->get('guest') ) { $title = JText::_( 'Logout'); // pathway item $pathway->addItem($title, '' ); // Set page title $document->setTitle( $title ); } else { $title = JText::_( 'Login'); // pathway item $pathway->addItem($title, '' ); // Set page title $document->setTitle( $title ); } // Build login image if enabled if ( $params->get( 'image_'.$type ) != -1 ) { $image = 'images/stories/'.$params->get( 'image_'.$type ); $image = ''; } // Get the return URL if (!$url = JRequest::getVar('return', '', 'method', 'base64')) { $url = base64_encode($params->get($type)); } $errors =& JError::getErrors(); $this->assign('image' , $image); $this->assign('type' , $type); $this->assign('return', $url); $this->assignRef('params', $params); parent::display($tpl); } } elracodelangela/components/com_user/views/user/0000755000176700017710000000000011061563603022536 5ustar essawireessawireelracodelangela/components/com_user/views/user/metadata.xml0000755000176700017710000000021611061563441025042 0ustar essawireessawire elracodelangela/components/com_user/views/user/index.html0000755000176700017710000000005411061563441024535 0ustar essawireessawireelracodelangela/components/com_user/views/user/tmpl/0000755000176700017710000000000011061563603023512 5ustar essawireessawireelracodelangela/components/com_user/views/user/tmpl/form.php0000755000176700017710000000604711061563441025200 0ustar essawireessawire
          params->def( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>
          user->get('password')) : ?>
          user->get('username');?>
          params)) : echo $this->params->render( 'params' ); endif; ?>
          elracodelangela/components/com_user/views/user/tmpl/form.xml0000755000176700017710000000043211061563441025201 0ustar essawireessawire USER FORM LAYOUT USER FORM LAYOUT DESC elracodelangela/components/com_user/views/user/tmpl/default.xml0000755000176700017710000000044611061563441025667 0ustar essawireessawire DEFAULT USER LAYOUT DEFAULT USER LAYOUT DESC elracodelangela/components/com_user/views/user/tmpl/index.html0000755000176700017710000000005411061563441025511 0ustar essawireessawireelracodelangela/components/com_user/views/user/tmpl/default.php0000755000176700017710000000070411061563441025653 0ustar essawireessawire params->def( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>
          elracodelangela/components/com_user/views/user/view.html.php0000755000176700017710000000573511061563441025201 0ustar essawireessawiregetLayout(); if( $layout == 'form') { $this->_displayForm($tpl); return; } if ( $layout == 'login' ) { parent::display($tpl); return; } $user =& JFactory::getUser(); // Get the page/component configuration $params = &$mainframe->getParams(); $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'User Details' )); } } else { $params->set('page_title', JText::_( 'User Details' )); } $document = &JFactory::getDocument(); $document->setTitle( $params->get( 'page_title' ) ); // Set pathway information $this->assignRef('user' , $user); $this->assignRef('params', $params); parent::display($tpl); } function _displayForm($tpl = null) { global $mainframe; $user =& JFactory::getUser(); $params = &$mainframe->getParams(); // check to see if Frontend User Params have been enabled $usersConfig = &JComponentHelper::getParams( 'com_users' ); $check = $usersConfig->get('frontend_userparams'); if ($check == '1' || $check == 1 || $check == NULL) { if($user->authorize( 'com_user', 'edit' )) { $params = $user->getParameters(true); } } $params->merge( $params ); $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'Edit Your Details' )); } } else { $params->set('page_title', JText::_( 'Edit Your Details' )); } $document = &JFactory::getDocument(); $document->setTitle( $params->get( 'page_title' ) ); $this->assignRef('user' , $user); $this->assignRef('params', $params); parent::display($tpl); } } elracodelangela/components/com_user/views/index.html0000755000176700017710000000005411061563441023557 0ustar essawireessawireelracodelangela/components/com_user/views/remind/0000755000176700017710000000000011061563603023036 5ustar essawireessawireelracodelangela/components/com_user/views/remind/metadata.xml0000755000176700017710000000022211061563441025337 0ustar essawireessawire elracodelangela/components/com_user/views/remind/index.html0000755000176700017710000000005411061563441025035 0ustar essawireessawireelracodelangela/components/com_user/views/remind/tmpl/0000755000176700017710000000000011061563603024012 5ustar essawireessawireelracodelangela/components/com_user/views/remind/tmpl/default.xml0000755000176700017710000000045611061563441026170 0ustar essawireessawire DEFAULT REMIND LAYOUT DEFAULT REMIND LAYOUT DESC elracodelangela/components/com_user/views/remind/tmpl/index.html0000755000176700017710000000005411061563441026011 0ustar essawireessawireelracodelangela/components/com_user/views/remind/tmpl/default.php0000755000176700017710000000210011061563441026143 0ustar essawireessawire params->def( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>

          elracodelangela/components/com_user/views/remind/view.html.php0000755000176700017710000000357011061563441025474 0ustar essawireessawiregetParams(); $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'FORGOT_YOUR_USERNAME' )); } } else { $params->set('page_title', JText::_( 'FORGOT_YOUR_USERNAME' )); } $document = &JFactory::getDocument(); $document->setTitle( $params->get( 'page_title' ) ); // Load the form validation behavior JHTML::_('behavior.formvalidation'); // Add the tooltip behavior JHTML::_('behavior.tooltip'); $this->assignRef('params', $params); parent::display($tpl); } } elracodelangela/components/com_user/views/register/0000755000176700017710000000000011061563604023405 5ustar essawireessawireelracodelangela/components/com_user/views/register/metadata.xml0000755000176700017710000000022611061563441025711 0ustar essawireessawire elracodelangela/components/com_user/views/register/index.html0000755000176700017710000000005411061563441025403 0ustar essawireessawireelracodelangela/components/com_user/views/register/tmpl/0000755000176700017710000000000011061563604024361 5ustar essawireessawireelracodelangela/components/com_user/views/register/tmpl/default.xml0000755000176700017710000000046611061563441026537 0ustar essawireessawire DEFAULT REGISTER LAYOUT DEFAULT REGISTER LAYOUT DESC elracodelangela/components/com_user/views/register/tmpl/index.html0000755000176700017710000000005411061563441026357 0ustar essawireessawireelracodelangela/components/com_user/views/register/tmpl/default_message.php0000755000176700017710000000033611061563441030226 0ustar essawireessawire
          message->title ; ?>
          message->text ; ?>
          elracodelangela/components/com_user/views/register/tmpl/default.php0000755000176700017710000000514411061563441026524 0ustar essawireessawire message)){ $this->display('message'); } ?>
          params->def( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>
          *
          *
          *
          *
          *
          elracodelangela/components/com_user/views/register/view.html.php0000755000176700017710000000344011061563441026036 0ustar essawireessawiregetPathway(); $document =& JFactory::getDocument(); $params = &$mainframe->getParams(); // Page Title $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'Registration' )); } } else { $params->set('page_title', JText::_( 'Registration' )); } $document->setTitle( $params->get( 'page_title' ) ); $pathway->addItem( JText::_( 'New' )); // Load the form validation behavior JHTML::_('behavior.formvalidation'); $user =& JFactory::getUser(); $this->assignRef('user', $user); $this->assignRef('params', $params); parent::display($tpl); } } elracodelangela/components/com_user/views/reset/0000755000176700017710000000000011061563604022703 5ustar essawireessawireelracodelangela/components/com_user/views/reset/metadata.xml0000755000176700017710000000022011061563442025202 0ustar essawireessawire elracodelangela/components/com_user/views/reset/index.html0000755000176700017710000000005411061563442024702 0ustar essawireessawireelracodelangela/components/com_user/views/reset/tmpl/0000755000176700017710000000000011061563604023657 5ustar essawireessawireelracodelangela/components/com_user/views/reset/tmpl/confirm.xml0000755000176700017710000000013211061563442026035 0ustar essawireessawire elracodelangela/components/com_user/views/reset/tmpl/complete.xml0000755000176700017710000000013211061563442026210 0ustar essawireessawire elracodelangela/components/com_user/views/reset/tmpl/default.xml0000755000176700017710000000045211061563442026031 0ustar essawireessawire DEFAULT RESET LAYOUT DEFAULT RESET LAYOUT DESC elracodelangela/components/com_user/views/reset/tmpl/confirm.php0000755000176700017710000000164211061563442026033 0ustar essawireessawire

          elracodelangela/components/com_user/views/reset/tmpl/complete.php0000755000176700017710000000250611061563442026206 0ustar essawireessawire

          elracodelangela/components/com_user/views/reset/tmpl/index.html0000755000176700017710000000005411061563442025656 0ustar essawireessawireelracodelangela/components/com_user/views/reset/tmpl/default.php0000755000176700017710000000210311061563442026013 0ustar essawireessawire params->def( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>

          elracodelangela/components/com_user/views/reset/view.html.php0000755000176700017710000000425511061563442025342 0ustar essawireessawiregetLayout(); if ($layout == 'complete') { $id = $mainframe->getUserState($this->_namespace.'id'); $token = $mainframe->getUserState($this->_namespace.'token'); if (is_null($id) || is_null($token)) { $mainframe->redirect('index.php?option=com_user&view=reset'); } } // Get the page/component configuration $params = &$mainframe->getParams(); $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $params->set('page_title', JText::_( 'FORGOT_YOUR_PASSWORD' )); } } else { $params->set('page_title', JText::_( 'FORGOT_YOUR_PASSWORD' )); } $document = &JFactory::getDocument(); $document->setTitle( $params->get( 'page_title' ) ); $this->assignRef('params', $params); parent::display($tpl); } } elracodelangela/components/com_user/controller.php0000755000176700017710000003440111061563440023323 0ustar essawireessawireget('guest')) { JError::raiseError( 403, JText::_('Access Forbidden') ); return; } JRequest::setVar('layout', 'form'); parent::display(); } function save() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); $user =& JFactory::getUser(); $userid = JRequest::getVar( 'id', 0, 'post', 'int' ); // preform security checks if ($user->get('id') == 0 || $userid == 0 || $userid <> $user->get('id')) { JError::raiseError( 403, JText::_('Access Forbidden') ); return; } //clean request $post = JRequest::get( 'post' ); $post['username'] = JRequest::getVar('username', '', 'post', 'username'); $post['password'] = JRequest::getVar('password', '', 'post', 'string', JREQUEST_ALLOWRAW); $post['password2'] = JRequest::getVar('password2', '', 'post', 'string', JREQUEST_ALLOWRAW); // do a password safety check if(strlen($post['password']) || strlen($post['password2'])) { // so that "0" can be used as password e.g. if($post['password'] != $post['password2']) { $msg = JText::_('PASSWORDS_DO_NOT_MATCH'); $this->setRedirect($_SERVER['HTTP_REFERER'], $msg); return false; } } // we don't want users to edit certain fields so we will unset them unset($post['gid']); unset($post['block']); unset($post['usertype']); unset($post['registerDate']); unset($post['activation']); // store data $model = $this->getModel('user'); if ($model->store($post)) { $msg = JText::_( 'Your settings have been saved.' ); } else { //$msg = JText::_( 'Error saving your settings.' ); $msg = $model->getError(); } $this->setRedirect( $_SERVER['HTTP_REFERER'], $msg ); } function cancel() { $this->setRedirect( 'index.php' ); } function login() { // Check for request forgeries JRequest::checkToken('request') or jexit( 'Invalid Token' ); global $mainframe; if ($return = JRequest::getVar('return', '', 'method', 'base64')) { $return = base64_decode($return); if (!JURI::isInternal($return)) { $return = ''; } } $options = array(); $options['remember'] = JRequest::getBool('remember', false); $options['return'] = $return; $credentials = array(); $credentials['username'] = JRequest::getVar('username', '', 'method', 'username'); $credentials['password'] = JRequest::getString('passwd', '', 'post', JREQUEST_ALLOWRAW); //preform the login action $error = $mainframe->login($credentials, $options); if(!JError::isError($error)) { // Redirect if the return url is not registration or login if ( ! $return ) { $return = 'index.php?option=com_user'; } $mainframe->redirect( $return ); } else { // Facilitate third party login forms if ( ! $return ) { $return = 'index.php?option=com_user&view=login'; } // Redirect to a login form $mainframe->redirect( $return ); } } function logout() { global $mainframe; //preform the logout action $error = $mainframe->logout(); if(!JError::isError($error)) { if ($return = JRequest::getVar('return', '', 'method', 'base64')) { $return = base64_decode($return); if (!JURI::isInternal($return)) { $return = ''; } } // Redirect if the return url is not registration or login if ( $return && !( strpos( $return, 'com_user' )) ) { $mainframe->redirect( $return ); } } else { parent::display(); } } /** * Prepares the registration form * @return void */ function register() { $usersConfig = &JComponentHelper::getParams( 'com_users' ); if (!$usersConfig->get( 'allowUserRegistration' )) { JError::raiseError( 403, JText::_( 'Access Forbidden' )); return; } $user =& JFactory::getUser(); if ( $user->get('guest')) { JRequest::setVar('view', 'register'); } else { $this->setredirect('index.php?option=com_user&task=edit',JText::_('You are already registered.')); } parent::display(); } /** * Save user registration and notify users and admins if required * @return void */ function register_save() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get required system objects $user = clone(JFactory::getUser()); $pathway =& $mainframe->getPathway(); $config =& JFactory::getConfig(); $authorize =& JFactory::getACL(); $document =& JFactory::getDocument(); // If user registration is not allowed, show 403 not authorized. $usersConfig = &JComponentHelper::getParams( 'com_users' ); if ($usersConfig->get('allowUserRegistration') == '0') { JError::raiseError( 403, JText::_( 'Access Forbidden' )); return; } // Initialize new usertype setting $newUsertype = $usersConfig->get( 'new_usertype' ); if (!$newUsertype) { $newUsertype = 'Registered'; } // Bind the post array to the user object if (!$user->bind( JRequest::get('post'), 'usertype' )) { JError::raiseError( 500, $user->getError()); } // Set some initial user values $user->set('id', 0); $user->set('usertype', ''); $user->set('gid', $authorize->get_group_id( '', $newUsertype, 'ARO' )); $date =& JFactory::getDate(); $user->set('registerDate', $date->toMySQL()); // If user activation is turned on, we need to set the activation information $useractivation = $usersConfig->get( 'useractivation' ); if ($useractivation == '1') { jimport('joomla.user.helper'); $user->set('activation', JUtility::getHash( JUserHelper::genRandomPassword()) ); $user->set('block', '1'); } // If there was an error with registration, set the message and display form if ( !$user->save() ) { JError::raiseWarning('', JText::_( $user->getError())); $this->register(); return false; } // Send registration confirmation mail $password = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW); $password = preg_replace('/[\x00-\x1F\x7F]/', '', $password); //Disallow control chars in the email UserController::_sendMail($user, $password); // Everything went fine, set relevant message depending upon user activation state and display message if ( $useractivation == 1 ) { $message = JText::_( 'REG_COMPLETE_ACTIVATE' ); } else { $message = JText::_( 'REG_COMPLETE' ); } $this->setRedirect('index.php', $message); } function activate() { global $mainframe; // Initialize some variables $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $document =& JFactory::getDocument(); $pathway =& $mainframe->getPathWay(); $usersConfig = &JComponentHelper::getParams( 'com_users' ); $userActivation = $usersConfig->get('useractivation'); $allowUserRegistration = $usersConfig->get('allowUserRegistration'); // Check to see if they're logged in, because they don't need activating! if ($user->get('id')) { // They're already logged in, so redirect them to the home page $mainframe->redirect( 'index.php' ); } if ($allowUserRegistration == '0' || $userActivation == '0') { JError::raiseError( 403, JText::_( 'Access Forbidden' )); return; } // create the view require_once (JPATH_COMPONENT.DS.'views'.DS.'register'.DS.'view.html.php'); $view = new UserViewRegister(); $message = new stdClass(); // Do we even have an activation string? $activation = JRequest::getVar('activation', '', '', 'alnum' ); $activation = $db->getEscaped( $activation ); if (empty( $activation )) { // Page Title $document->setTitle( JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' ) ); // Breadcrumb $pathway->addItem( JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' )); $message->title = JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' ); $message->text = JText::_( 'REG_ACTIVATE_NOT_FOUND' ); $view->assign('message', $message); $view->display('message'); return; } // Lets activate this user jimport('joomla.user.helper'); if (JUserHelper::activateUser($activation)) { // Page Title $document->setTitle( JText::_( 'REG_ACTIVATE_COMPLETE_TITLE' ) ); // Breadcrumb $pathway->addItem( JText::_( 'REG_ACTIVATE_COMPLETE_TITLE' )); $message->title = JText::_( 'REG_ACTIVATE_COMPLETE_TITLE' ); $message->text = JText::_( 'REG_ACTIVATE_COMPLETE' ); } else { // Page Title $document->setTitle( JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' ) ); // Breadcrumb $pathway->addItem( JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' )); $message->title = JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' ); $message->text = JText::_( 'REG_ACTIVATE_NOT_FOUND' ); } $view->assign('message', $message); $view->display('message'); } /** * Password Reset Request Method * * @access public */ function requestreset() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get the input $email = JRequest::getVar('email', null, 'post', 'string'); // Get the model $model = &$this->getModel('Reset'); // Request a reset if ($model->requestReset($email) === false) { $message = JText::sprintf('PASSWORD_RESET_REQUEST_FAILED', $model->getError()); $this->setRedirect('index.php?option=com_user&view=reset', $message); return false; } $this->setRedirect('index.php?option=com_user&view=reset&layout=confirm'); } /** * Password Reset Confirmation Method * * @access public */ function confirmreset() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get the input $token = JRequest::getVar('token', null, 'post', 'alnum'); // Get the model $model = &$this->getModel('Reset'); // Verify the token if ($model->confirmReset($token) === false) { $message = JText::sprintf('PASSWORD_RESET_CONFIRMATION_FAILED', $model->getError()); $this->setRedirect('index.php?option=com_user&view=reset&layout=confirm', $message); return false; } $this->setRedirect('index.php?option=com_user&view=reset&layout=complete'); } /** * Password Reset Completion Method * * @access public */ function completereset() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get the input $password1 = JRequest::getVar('password1', null, 'post', 'string', JREQUEST_ALLOWRAW); $password2 = JRequest::getVar('password2', null, 'post', 'string', JREQUEST_ALLOWRAW); // Get the model $model = &$this->getModel('Reset'); // Reset the password if ($model->completeReset($password1, $password2) === false) { $message = JText::sprintf('PASSWORD_RESET_FAILED', $model->getError()); $this->setRedirect('index.php?option=com_user&view=reset&layout=complete', $message); return false; } $message = JText::_('PASSWORD_RESET_SUCCESS'); $this->setRedirect('index.php?option=com_user&view=login', $message); } /** * Username Reminder Method * * @access public */ function remindusername() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Get the input $email = JRequest::getVar('email', null, 'post', 'string'); // Get the model $model = &$this->getModel('Remind'); // Send the reminder if ($model->remindUsername($email) === false) { $message = JText::sprintf('USERNAME_REMINDER_FAILED', $model->getError()); $this->setRedirect('index.php?option=com_user&view=remind', $message); return false; } $message = JText::sprintf('USERNAME_REMINDER_SUCCESS', $email); $this->setRedirect('index.php?option=com_user&view=login', $message); } function _sendMail(&$user, $password) { global $mainframe; $db =& JFactory::getDBO(); $name = $user->get('name'); $email = $user->get('email'); $username = $user->get('username'); $usersConfig = &JComponentHelper::getParams( 'com_users' ); $sitename = $mainframe->getCfg( 'sitename' ); $useractivation = $usersConfig->get( 'useractivation' ); $mailfrom = $mainframe->getCfg( 'mailfrom' ); $fromname = $mainframe->getCfg( 'fromname' ); $siteURL = JURI::base(); $subject = sprintf ( JText::_( 'Account details for' ), $name, $sitename); $subject = html_entity_decode($subject, ENT_QUOTES); if ( $useractivation == 1 ){ $message = sprintf ( JText::_( 'SEND_MSG_ACTIVATE' ), $name, $sitename, $siteURL."index.php?option=com_user&task=activate&activation=".$user->get('activation'), $siteURL, $username, $password); } else { $message = sprintf ( JText::_( 'SEND_MSG' ), $name, $sitename, $siteURL); } $message = html_entity_decode($message, ENT_QUOTES); //get all super administrator $query = 'SELECT name, email, sendEmail' . ' FROM #__users' . ' WHERE LOWER( usertype ) = "super administrator"'; $db->setQuery( $query ); $rows = $db->loadObjectList(); // Send email to user if ( ! $mailfrom || ! $fromname ) { $fromname = $rows[0]->name; $mailfrom = $rows[0]->email; } JUtility::sendMail($mailfrom, $fromname, $email, $subject, $message); // Send notification to all administrators $subject2 = sprintf ( JText::_( 'Account details for' ), $name, $sitename); $subject2 = html_entity_decode($subject2, ENT_QUOTES); // get superadministrators id foreach ( $rows as $row ) { if ($row->sendEmail) { $message2 = sprintf ( JText::_( 'SEND_MSG_ADMIN' ), $row->name, $sitename, $name, $email, $username); $message2 = html_entity_decode($message2, ENT_QUOTES); JUtility::sendMail($mailfrom, $fromname, $row->email, $subject2, $message2); } } } } ?> elracodelangela/components/com_user/user.xml0000755000176700017710000000100111061563441022116 0ustar essawireessawire User Joomla! Project 2006 Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL admin@joomla.org www.joomla.org 1.5.0 User Self-Management elracodelangela/components/com_contact/0000755000176700017710000000000011061563607021104 5ustar essawireessawireelracodelangela/components/com_contact/router.php0000755000176700017710000001447111061563453023146 0ustar essawireessawiregetItems('componentid', $component->id); } // Break up the contact id into numeric and alias values. if (isset($query['id']) && strpos($query['id'], ':')) { list($query['id'], $query['alias']) = explode(':', $query['id'], 2); } // Break up the category id into numeric and alias values. if (isset($query['catid']) && strpos($query['catid'], ':')) { list($query['catid'], $query['catalias']) = explode(':', $query['catid'], 2); } // Search for an appropriate menu item. if (is_array($items)) { // If only the option and itemid are specified in the query, return that item. if (!isset($query['view']) && !isset($query['id']) && !isset($query['catid']) && isset($query['Itemid'])) { $itemid = (int) $query['Itemid']; } // Search for a specific link based on the critera given. if (!$itemid) { foreach ($items as $item) { // Check if this menu item links to this view. if (isset($item->query['view']) && $item->query['view'] == 'contact' && isset($query['view']) && $query['view'] == 'contact' && isset($item->query['id']) && $item->query['id'] == $query['id']) { $itemid = $item->id; } elseif (isset($item->query['view']) && $item->query['view'] == 'category' && isset($query['view']) && $query['view'] == 'category' && isset($item->query['catid']) && $item->query['catid'] == $query['catid']) { $itemid = $item->id; } } } // If no specific link has been found, search for a general one. if (!$itemid) { foreach ($items as $item) { if (isset($query['view']) && $query['view'] == 'contact' && isset($item->query['view']) && $item->query['view'] == 'category') { // Check for an undealt with contact id. if (isset($query['id'])) { // This menu item links to the contact view but we need to append the contact id to it. $itemid = $item->id; $segments[] = isset($query['catalias']) ? $query['catid'].':'.$query['catalias'] : $query['catid']; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } } elseif (isset($query['view']) && $query['view'] == 'category' && isset($item->query['view']) && $item->query['view'] == 'category' && isset($item->query['id']) && $item->query['id'] != $query['id']) { // Check for an undealt with category id. if (isset($query['catid'])) { // This menu item links to the category view but we need to append the category id to it. $itemid = $item->id; $segments[] = isset($query['alias']) ? $query['id'].':'.$query['alias'] : $query['id']; break; } } } } } // Check if the router found an appropriate itemid. if (!$itemid) { // Check if a catid was specified. if (isset($query['catid'])) { if (isset($query['catalias'])) { $query['catid'] .= ':'.$query['catalias']; } $segments[] = $query['catid']; unset($query['view']); unset($query['catid']); unset($query['catalias']); } // Check if a id was specified. if (isset($query['id'])) { if (isset($query['alias'])) { $query['id'] .= ':'.$query['alias']; } // Push the id onto the stack. $segments[] = $query['id']; unset($query['view']); unset($query['id']); unset($query['alias']); } } else { $query['Itemid'] = $itemid; // Remove the unnecessary URL segments. unset($query['view']); unset($query['id']); unset($query['alias']); unset($query['catid']); unset($query['catalias']); } return $segments; } function ContactParseRoute($segments) { $vars = array(); // Get the active menu item. $menu = &JSite::getMenu(); $item = &$menu->getActive(); // Check if we have a valid menu item. if (is_object($item)) { // Proceed through the possible variations trying to match the most specific one. if (isset($item->query['view']) && $item->query['view'] == 'contact' && isset($segments[0])) { // Break up the contact id into numeric and alias values. if (isset($segments[0]) && strpos($segments[0], ':')) { list($id, $alias) = explode(':', $segments[0], 2); } // Contact view. $vars['view'] = 'contact'; $vars['id'] = $id; } elseif (isset($item->query['view']) && $item->query['view'] == 'category' && count($segments) == 2) { // Break up the category id into numeric and alias values. if (isset($segments[0]) && strpos($segments[0], ':')) { list($catid, $catalias) = explode(':', $segments[0], 2); } // Break up the contact id into numeric and alias values. if (isset($segments[1]) && strpos($segments[1], ':')) { list($id, $alias) = explode(':', $segments[1], 2); } // Contact view. $vars['view'] = 'contact'; $vars['id'] = $id; $vars['catid'] = $catid; } elseif (isset($item->query['view']) && $item->query['view'] == 'category' && isset($segments[0])) { // Break up the category id into numeric and alias values. if (isset($segments[0]) && strpos($segments[0], ':')) { list($catid, $alias) = explode(':', $segments[0], 2); } // Category view. $vars['view'] = 'category'; $vars['catid'] = $catid; } } else { // Count route segments $count = count($segments); // Check if there are any route segments to handle. if ($count) { if ($count == 2) { // We are viewing a contact. $vars['view'] = 'contact'; $vars['id'] = $segments[$count-1]; $vars['catid'] = $segments[$count-2]; } else { // We are viewing a category. $vars['view'] = 'category'; $vars['catid'] = $segments[$count-1]; } } } return $vars; }elracodelangela/components/com_contact/models/0000755000176700017710000000000011061563607022367 5ustar essawireessawireelracodelangela/components/com_contact/models/index.html0000755000176700017710000000005411061563454024366 0ustar essawireessawireelracodelangela/components/com_contact/models/contact.php0000755000176700017710000000435511061563454024545 0ustar essawireessawire_getContactQuery( $options ); $result = $this->_getList( $query ); return @$result[0]; } }elracodelangela/components/com_contact/models/category.php0000755000176700017710000001025611061563454024724 0ustar essawireessawireQuote( 'com_contact_details' ); $wheres[] = 'cc.published = 1'; if ($aid !== null) { $wheres[] = 'a.access <= ' . (int) $aid; $wheres[] = 'cc.access <= ' . (int) $aid; } $groupBy = 'cc.id'; $orderBy = 'cc.ordering' ; /* * Query to retrieve all categories that belong under the contacts * section and that are published. */ $query = 'SELECT cc.*, COUNT( a.id ) AS numlinks, a.id as cid'. ' FROM #__categories AS cc'. ' LEFT JOIN #__contact_details AS a ON a.catid = cc.id'. ' WHERE ' . implode( ' AND ', $wheres ) . ' GROUP BY ' . $groupBy . ' ORDER BY ' . $orderBy; //echo $query; return $query; } /** * Builds the query to select contact items * @param array * @return string * @access protected */ function _getContactsQuery( &$options ) { // TODO: Cache on the fingerprint of the arguments $db =& JFactory::getDBO(); $aid = @$options['aid']; $catId = @$options['category_id']; $groupBy = @$options['group by']; $orderBy = @$options['order by']; $select = 'cd.*, ' . 'cc.name AS category_name, cc.description AS category_description, cc.image AS category_image,'. ' CASE WHEN CHAR_LENGTH(cd.alias) THEN CONCAT_WS(\':\', cd.id, cd.alias) ELSE cd.id END as slug, '. ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\':\', cc.id, cc.alias) ELSE cc.id END as catslug '; $from = '#__contact_details AS cd'; $joins[] = 'INNER JOIN #__categories AS cc on cd.catid = cc.id'; if ($catId) { $wheres[] = 'cd.catid = ' . (int) $catId; } $wheres[] = 'cc.published = 1'; $wheres[] = 'cd.published = 1'; if ($aid !== null) { $wheres[] = 'cc.access <= ' . (int) $aid; $wheres[] = 'cd.access <= ' . (int) $aid; } /* * Query to retrieve all categories that belong under the contacts * section and that are published. */ $query = 'SELECT ' . $select . ' FROM ' . $from . ' ' . implode ( ' ', $joins ) . ' WHERE ' . implode( ' AND ', $wheres ) . ($groupBy ? ' GROUP BY ' . $groupBy : ''). ($orderBy ? ' ORDER BY ' . $orderBy : ''); return $query; } /** * Gets a list of categories * @param array * @return array */ function getCategories( $options=array() ) { $query = $this->_getCatgoriesQuery( $options ); return $this->_getList( $query, @$options['limitstart'], @$options['limit'] ); } /** * Gets the count of the categories for the given options * @param array * @return int */ function getCategoryCount( $options=array() ) { $query = $this->_getCatgoriesQuery( $options ); return $this->_getListCount( $query ); } /** * Gets a list of categories * @param array * @return array */ function getContacts( $options=array() ) { $query = $this->_getContactsQuery( $options ); return $this->_getList( $query, @$options['limitstart'], @$options['limit'] ); } /** * Gets the count of the categories for the given options * @param array * @return int */ function getContactCount( $options=array() ) { $query = $this->_getContactsQuery( $options ); return $this->_getListCount( $query ); } }elracodelangela/components/com_contact/metadata.xml0000755000176700017710000000017711061563454023416 0ustar essawireessawire elracodelangela/components/com_contact/index.html0000755000176700017710000000005411061563453023102 0ustar essawireessawireelracodelangela/components/com_contact/views/0000755000176700017710000000000011061563607022241 5ustar essawireessawireelracodelangela/components/com_contact/views/contact/0000755000176700017710000000000011061563607023674 5ustar essawireessawireelracodelangela/components/com_contact/views/contact/metadata.xml0000755000176700017710000000033111061563453026175 0ustar essawireessawire elracodelangela/components/com_contact/views/contact/index.html0000755000176700017710000000005411061563453025672 0ustar essawireessawireelracodelangela/components/com_contact/views/contact/tmpl/0000755000176700017710000000000011061563607024650 5ustar essawireessawireelracodelangela/components/com_contact/views/contact/tmpl/default.xml0000755000176700017710000000200011061563453027010 0ustar essawireessawire Standard Contact Layout STANDARD CONTACT LAYOUT DESC elracodelangela/components/com_contact/views/contact/tmpl/index.html0000755000176700017710000000005411061563453026646 0ustar essawireessawireelracodelangela/components/com_contact/views/contact/tmpl/default.php0000755000176700017710000000534111061563454027013 0ustar essawireessawire params->get( 'show_page_title', 1 ) && !$this->contact->params->get( 'popup' ) && $this->params->get('page_title') != $this->contact->name ) : ?>
          params->get( 'page_title' ); ?>
          params->get( 'show_contact_list' ) && count( $this->contacts ) > 1) : ?> contact->name && $this->contact->params->get( 'show_name' ) ) : ?> contact->con_position && $this->contact->params->get( 'show_position' ) ) : ?> contact->params->get( 'allow_vcard' ) ) : ?> contact->params->get('show_email_form') && ($this->contact->email_to || $this->contact->user_id)) echo $this->loadTemplate('form'); ?>

          :
          contacts, 'contact_id', 'class="inputbox" onchange="this.form.submit()"', 'id', 'name', $this->contact->id);?>
          contact->name; ?>
          contact->con_position; ?>

          contact->image && $this->contact->params->get( 'show_image' ) ) : ?>
          get('image_path') . '/'.$this->contact->image, JText::_( 'Contact' ), array('align' => 'middle')); ?>
          loadTemplate('address'); ?>
           
          elracodelangela/components/com_contact/views/contact/tmpl/default_form.php0000755000176700017710000000501311061563454030032 0ustar essawireessawire error)) : ?> error; ?>









          contact->params->get( 'show_email_copy' )) : ?>



          elracodelangela/components/com_contact/views/contact/tmpl/default_address.php0000755000176700017710000000755111061563454030525 0ustar essawireessawire contact->params->get( 'address_check' ) > 0 ) && ( $this->contact->address || $this->contact->suburb || $this->contact->state || $this->contact->country || $this->contact->postcode ) ) : ?> contact->params->get( 'address_check' ) > 0 ) : ?> contact->address && $this->contact->params->get( 'show_street_address' ) ) : ?> contact->suburb && $this->contact->params->get( 'show_suburb' ) ) : ?> contact->state && $this->contact->params->get( 'show_state' ) ) : ?> contact->postcode && $this->contact->params->get( 'show_postcode' ) ) : ?> contact->country && $this->contact->params->get( 'show_country' ) ) : ?>
          contact->params->get( 'marker_address' ); ?>
          contact->address); ?>
          contact->suburb; ?>
          contact->state; ?>
          contact->postcode; ?>
          contact->country; ?>

          contact->email_to && $this->contact->params->get( 'show_email' )) || $this->contact->telephone || $this->contact->fax || $this->contact->mobile || $this->contact->webpage ) : ?> contact->email_to && $this->contact->params->get( 'show_email' ) ) : ?> contact->telephone && $this->contact->params->get( 'show_telephone' ) ) : ?> contact->fax && $this->contact->params->get( 'show_fax' ) ) : ?> contact->mobile && $this->contact->params->get( 'show_mobile' ) ) :?> contact->webpage && $this->contact->params->get( 'show_webpage' )) : ?>
          contact->params->get( 'marker_email' ); ?> contact->email_to; ?>
          contact->params->get( 'marker_telephone' ); ?> contact->telephone); ?>
          contact->params->get( 'marker_fax' ); ?> contact->fax); ?>
          contact->params->get( 'marker_mobile' ); ?> contact->mobile); ?>
          contact->webpage; ?>

          contact->misc && $this->contact->params->get( 'show_misc' ) ) : ?>
          contact->params->get( 'marker_misc' ); ?> contact->misc; ?>

          elracodelangela/components/com_contact/views/contact/view.html.php0000755000176700017710000001545511061563453026336 0ustar essawireessawiregetPathway(); $document = & JFactory::getDocument(); $model = &$this->getModel(); // Get the parameters of the active menu item $menus = &JSite::getMenu(); $menu = $menus->getActive(); $pparams = &$mainframe->getParams('com_contact'); // Push a model into the view $model = &$this->getModel(); $modelCat = &$this->getModel( 'Category' ); // Selected Request vars // ID may come from the contact switcher if (!($contactId = JRequest::getInt( 'contact_id', 0 ))) { $contactId = JRequest::getInt( 'id', $contactId ); } // query options $options['id'] = $contactId; $options['aid'] = $user->get('aid', 0); $contact = $model->getContact( $options ); // check if we have a contact if (!is_object( $contact )) { JError::raiseError( 404, 'Contact not found' ); return; } $options['category_id'] = $contact->catid; $options['order by'] = 'cd.default_con DESC, cd.ordering ASC'; $contacts = $modelCat->getContacts( $options ); // Set the document page title // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu ) && isset($menu->query['view']) && $menu->query['view'] == 'contact' && isset($menu->query['id']) && $menu->query['id'] == $contact->id) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $pparams->set('page_title', $contact->name); } } else { $pparams->set('page_title', $contact->name); } $document->setTitle( $pparams->get( 'page_title' ) ); //set breadcrumbs if (isset( $menu ) && isset($menu->query['view']) && $menu->query['view'] != 'contact'){ $pathway->addItem($contact->name, ''); } // Adds parameter handling $contact->params = new JParameter($contact->params); $pparams->merge($contact->params); // Handle component/menu overides for some contact parameters if set /* $contact->params->def('contact_icons', $pparams->get('contact_icons')); $contact->params->def('icon_address', $pparams->get('icon_address')); $contact->params->def('icon_email', $pparams->get('icon_email')); $contact->params->def('icon_telephone', $pparams->get('icon_telephone')); $contact->params->def('icon_fax', $pparams->get('icon_fax')); $contact->params->def('icon_misc', $pparams->get('icon_misc')); $contact->params->def('show_position', $pparams->get('show_position')); $contact->params->def('show_email', $pparams->get('show_email')); $contact->params->def('show_telephone', $pparams->get('show_telephone')); $contact->params->def('show_mobile', $pparams->get('show_mobile')); $contact->params->def('show_fax', $pparams->get('show_fax')); $contact->params->def('allow_vcard', $pparams->get('allow_vcard')); */ // Handle email cloaking if ($contact->email_to && $contact->params->get('show_email')) { $contact->email_to = JHTML::_('email.cloak', $contact->email_to); } if ($contact->params->get('show_street_address') || $contact->params->get('show_suburb') || $contact->params->get('show_state') || $contact->params->get('show_postcode') || $contact->params->get('show_country')) { if (!empty ($contact->address) || !empty ($contact->suburb) || !empty ($contact->state) || !empty ($contact->country) || !empty ($contact->postcode)) { $contact->params->set('address_check', 1); } } else { $contact->params->set('address_check', 0); } // Manage the display mode for contact detail groups switch ($contact->params->get('contact_icons')) { case 1 : // text $contact->params->set('marker_address', JText::_('Address').": "); $contact->params->set('marker_email', JText::_('Email').": "); $contact->params->set('marker_telephone', JText::_('Telephone').": "); $contact->params->set('marker_fax', JText::_('Fax').": "); $contact->params->set('marker_mobile', JText::_('Mobile').": "); $contact->params->set('marker_misc', JText::_('Information').": "); $contact->params->set('column_width', '100'); break; case 2 : // none $contact->params->set('marker_address', ''); $contact->params->set('marker_email', ''); $contact->params->set('marker_telephone', ''); $contact->params->set('marker_mobile', ''); $contact->params->set('marker_fax', ''); $contact->params->set('marker_misc', ''); $contact->params->set('column_width', '0'); break; default : // icons $image1 = JHTML::_('image.site', 'con_address.png', '/images/M_images/', $contact->params->get('icon_address'), '/images/M_images/', JText::_('Address').": "); $image2 = JHTML::_('image.site', 'emailButton.png', '/images/M_images/', $contact->params->get('icon_email'), '/images/M_images/', JText::_('Email').": "); $image3 = JHTML::_('image.site', 'con_tel.png', '/images/M_images/', $contact->params->get('icon_telephone'), '/images/M_images/', JText::_('Telephone').": "); $image4 = JHTML::_('image.site', 'con_fax.png', '/images/M_images/', $contact->params->get('icon_fax'), '/images/M_images/', JText::_('Fax').": "); $image5 = JHTML::_('image.site', 'con_info.png', '/images/M_images/', $contact->params->get('icon_misc'), '/images/M_images/', JText::_('Information').": "); $image6 = JHTML::_('image.site', 'con_mobile.png', '/images/M_images/', $contact->params->get('icon_mobile'), '/images/M_images/', JText::_('Mobile').": "); $contact->params->set('marker_address', $image1); $contact->params->set('marker_email', $image2); $contact->params->set('marker_telephone', $image3); $contact->params->set('marker_fax', $image4); $contact->params->set('marker_misc', $image5); $contact->params->set('marker_mobile', $image6); $contact->params->set('column_width', '40'); break; } JHTML::_('behavior.formvalidation'); $this->assignRef('contact', $contact); $this->assignRef('contacts', $contacts); $this->assignRef('params', $pparams); parent::display($tpl); } } elracodelangela/components/com_contact/views/category/0000755000176700017710000000000011061563607024056 5ustar essawireessawireelracodelangela/components/com_contact/views/category/metadata.xml0000755000176700017710000000034311061563453026362 0ustar essawireessawire elracodelangela/components/com_contact/views/category/index.html0000755000176700017710000000005411061563453026054 0ustar essawireessawireelracodelangela/components/com_contact/views/category/view.feed.php0000755000176700017710000000517311061563453026453 0ustar essawireessawirelink = JRoute::_('index.php?option=com_contact&view=category&catid='.JRequest::getVar('catid',null, '', 'int')); $limit = JRequest::getVar('limit', $mainframe->getCfg('feed_limit'), '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); $catid = JRequest::getVar('catid', 0, '', 'int'); $where = ' WHERE a.published = 1'; if ( $catid ) { $where .= ' AND a.catid = '. (int) $catid; } $query = 'SELECT' . ' a.name AS title,' . ' CONCAT( a.con_position, \' - \', a.misc ) AS description,' . ' "" AS date,' . ' c.title AS category,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,' . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as catslug' . ' FROM #__contact_details AS a' . ' LEFT JOIN #__categories AS c ON c.id = a.catid' . $where . ' ORDER BY a.catid, a.ordering' ; $db->setQuery( $query, 0, $limit ); $rows = $db->loadObjectList(); foreach ( $rows as $row ) { // strip html from feed item title $title = $this->escape( $row->title ); $title = html_entity_decode( $title ); // url link to article $link = JRoute::_('index.php?option=com_contact&view=contact&id='. $row->slug .'&catid='.$row->catslug ); // strip html from feed item description text $description = $row->description; $date = ( $row->date ? date( 'r', strtotime($row->date) ) : '' ); // load individual item creator class $item = new JFeedItem(); $item->title = $title; $item->link = $link; $item->description = $description; $item->date = $date; $item->category = $row->category; // loads item info into rss array $document->addItem( $item ); } } }elracodelangela/components/com_contact/views/category/tmpl/0000755000176700017710000000000011061563607025032 5ustar essawireessawireelracodelangela/components/com_contact/views/category/tmpl/default.xml0000755000176700017710000000350311061563453027203 0ustar essawireessawire Contacts Category Layout CONTACT CATEGORY LAYOUT DESC elracodelangela/components/com_contact/views/category/tmpl/default_items.php0000755000176700017710000000215311061563453030373 0ustar essawireessawire items as $item) : ?> count +1; ?> name; ?> params->get( 'show_position' ) ) : ?> con_position; ?> params->get( 'show_email' ) ) : ?> email_to; ?> params->get( 'show_telephone' ) ) : ?> telephone; ?> params->get( 'show_mobile' ) ) : ?> mobile; ?> params->get( 'show_fax' ) ) : ?> fax; ?> elracodelangela/components/com_contact/views/category/tmpl/index.html0000755000176700017710000000005411061563453027030 0ustar essawireessawireelracodelangela/components/com_contact/views/category/tmpl/default.php0000755000176700017710000001037611061563453027200 0ustar essawireessawire params->get( 'show_page_title', 1 ) ) : ?>
          escape($this->params->get('page_title')); ?>
          category->image || $this->category->description) : ?>
          params->get('image') != -1 && $this->params->get('image') != '') : ?> <?php echo JText::_( 'Contacts' ); ?> category->image) : ?> <?php echo JText::_( 'Contacts' ); ?> category->description; ?>
          params->get( 'show_headings' )) : ?> params->get( 'show_position' ) ) : ?> params->get( 'show_email' ) ) : ?> params->get( 'show_telephone' ) ) : ?> params->get( 'show_mobile' ) ) : ?> params->get( 'show_fax' ) ) : ?> loadTemplate('items'); ?>
          params->get('show_limit')) : echo JText::_('Display Num') .' '; echo $this->pagination->getLimitBox(); endif; ?>
          pagination->getPagesLinks(); ?>
          pagination->getPagesCounter(); ?>
          lists['order_Dir'], $this->lists['order'] ); ?> lists['order_Dir'], $this->lists['order'] ); ?>
          elracodelangela/components/com_contact/views/category/view.html.php0000755000176700017710000001107411061563453026511 0ustar essawireessawiregetModel(); $document =& JFactory::getDocument(); $pparams = &$mainframe->getParams('com_contact'); // Selected Request vars $categoryId = JRequest::getVar('catid', 0, '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); $filter_order = JRequest::getVar('filter_order', 'cd.ordering', '', 'cmd'); $filter_order_Dir = JRequest::getVar('filter_order_Dir', 'ASC', '', 'word'); $pparams->def('display_num', $mainframe->getCfg('list_limit')); $default_limit = $pparams->def('display_num', 20); $limit = $mainframe->getUserStateFromRequest('com_contact.'.$this->getLayout().'.limit', 'limit', $default_limit, 'int'); // query options $options['aid'] = $user->get('aid', 0); $options['category_id'] = $categoryId; $options['limit'] = $limit; $options['limitstart'] = $limitstart; $options['order by'] = "$filter_order $filter_order_Dir, cd.ordering"; $categories = $model->getCategories( $options ); $contacts = $model->getContacts( $options ); $total = $model->getContactCount( $options ); //add alternate feed link if($pparams->get('show_feed_link', 1) == 1) { $link = '&format=feed&limitstart='; $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0'); $document->addHeadLink(JRoute::_($link.'&type=rss'), 'alternate', 'rel', $attribs); $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0'); $document->addHeadLink(JRoute::_($link.'&type=atom'), 'alternate', 'rel', $attribs); } //prepare contacts if($pparams->get('show_email', 0) == 1) { jimport('joomla.mail.helper'); } $k = 0; for($i = 0; $i < count( $contacts ); $i++) { $contact =& $contacts[$i]; $contact->link = JRoute::_('index.php?option=com_contact&view=contact&id='.$contact->slug.'&catid='.$contact->catslug); if ($pparams->get('show_email', 0) == 1) { $contact->email_to = trim($contact->email_to); if (!empty($contact->email_to) && JMailHelper::isEmailAddress($contact->email_to)) { $contact->email_to = JHTML::_('email.cloak', $contact->email_to); } else { $contact->email_to = ''; } } $contact->odd = $k; $contact->count = $i; $k = 1 - $k; } // find current category // TODO: Move to model $category = null; foreach ($categories as $i => $_cat) { if ($_cat->id == $categoryId) { $category = &$categories[$i]; break; } } if ($category == null) { $db = &JFactory::getDBO(); $category =& JTable::getInstance( 'category' ); } $menus = &JSite::getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object( $menu )) { $menu_params = new JParameter( $menu->params ); if (!$menu_params->get( 'page_title')) { $pparams->set('page_title', $category->title); } } else { $pparams->set('page_title', $category->title); } $document->setTitle( $pparams->get( 'page_title' ) ); // Prepare category description $category->description = JHTML::_('content.prepare', $category->description); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; $selected = ''; jimport('joomla.html.pagination'); $pagination = new JPagination($total, $limitstart, $limit); $this->assignRef('items', $contacts); $this->assignRef('lists', $lists); $this->assignRef('pagination', $pagination); //$this->assignRef('data', $data); $this->assignRef('category', $category); $this->assignRef('params', $pparams); $this->assign('action', $uri->toString()); parent::display($tpl); } function getItems() { } } elracodelangela/components/com_contact/views/index.html0000755000176700017710000000005411061563453024237 0ustar essawireessawireelracodelangela/components/com_contact/contact.php0000755000176700017710000000170611061563454023257 0ustar essawireessawireexecute(JRequest::getVar('task', null, 'default', 'cmd')); // Redirect if set by the controller $controller->redirect();elracodelangela/components/com_contact/controller.php0000755000176700017710000002605511061563453024012 0ustar essawireessawiregetType(); // interceptors to support legacy urls switch ($this->getTask()) { //index.php?option=com_contact&task=category&id=0&Itemid=4 case 'category': $viewName = 'category'; $layout = 'default'; break; case 'view': $viewName = 'contact'; $layout = 'default'; break; } // Set the default view name from the Request $view = &$this->getView($viewName, $viewType); // Push a model into the view $model = &$this->getModel( $viewName ); if (!JError::isError( $model )) { $view->setModel( $model, true ); } // Workaround for the item view if ($viewName == 'contact') { $modelCat = &$this->getModel( 'category' ); $view->setModel( $modelCat ); } // Display the view $view->assign('error', $this->getError()); $view->display(); } /** * Method to send an email to a contact * * @static * @since 1.0 */ function submit() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize some variables $db = & JFactory::getDBO(); $SiteName = $mainframe->getCfg('sitename'); $default = JText::sprintf( 'MAILENQUIRY', $SiteName ); $contactId = JRequest::getInt( 'id', 0, 'post' ); $name = JRequest::getVar( 'name', '', 'post' ); $email = JRequest::getVar( 'email', '', 'post' ); $subject = JRequest::getVar( 'subject', $default, 'post' ); $body = JRequest::getVar( 'text', '', 'post' ); $emailCopy = JRequest::getInt( 'email_copy', 0, 'post' ); // load the contact details $model = &$this->getModel('contact'); // query options $qOptions['id'] = $contactId; $contact = $model->getContact( $qOptions ); if($contact->email_to == '' && $contact->user_id != 0) { $contact_user = JUser::getInstance($contact->user_id); $contact->email_to = $contact_user->get('email'); } /* * If there is no valid email address or message body then we throw an * error and return false. */ jimport('joomla.mail.helper'); if (!$email || !$body || (JMailHelper::isEmailAddress($email) == false)) { $this->setError(JText::_('CONTACT_FORM_NC')); $this->display(); return false; } // Contact plugins JPluginHelper::importPlugin( 'contact' ); $dispatcher =& JDispatcher::getInstance(); // Input validation if (!$this->_validateInputs( $contact, $email, $subject, $body ) ) { JError::raiseWarning( 0, $this->getError() ); return false; } // Custom handlers $post = JRequest::get( 'post' ); $results = $dispatcher->trigger( 'onValidateContact', array( &$contact, &$post ) ); foreach ($results as $result) { if (JError::isError( $result )) { return false; } } // Passed Validation: Process the contact plugins to integrate with other applications $results = $dispatcher->trigger( 'onSubmitContact', array( &$contact, &$post ) ); $pparams = &$mainframe->getParams('com_contact'); if (!$pparams->get( 'custom_reply' )) { $MailFrom = $mainframe->getCfg('mailfrom'); $FromName = $mainframe->getCfg('fromname'); // Prepare email body $prefix = JText::sprintf('ENQUIRY_TEXT', JURI::base()); $body = $prefix."\n".$name.' <'.$email.'>'."\r\n\r\n".stripslashes($body); $mail = JFactory::getMailer(); $mail->addRecipient( $contact->email_to ); $mail->setSender( array( $email, $name ) ); $mail->setSubject( $FromName.': '.$subject ); $mail->setBody( $body ); $sent = $mail->Send(); /* * If we are supposed to copy the admin, do so. */ // parameter check $params = new JParameter( $contact->params ); $emailcopyCheck = $params->get( 'show_email_copy', 0 ); // check whether email copy function activated if ( $emailCopy && $emailcopyCheck ) { $copyText = JText::sprintf('Copy of:', $contact->name, $SiteName); $copyText .= "\r\n\r\n".$body; $copySubject = JText::_('Copy of:')." ".$subject; $mail = JFactory::getMailer(); $mail->addRecipient( $email ); $mail->setSender( array( $MailFrom, $FromName ) ); $mail->setSubject( $copySubject ); $mail->setBody( $copyText ); $sent = $mail->Send(); } } $msg = JText::_( 'Thank you for your e-mail'); $link = JRoute::_('index.php?option=com_contact&view=contact&id='.$contact->slug.'&catid='.$contact->catslug, false); $this->setRedirect($link, $msg); } /** * Method to output a vCard * * @static * @since 1.0 */ function vcard() { global $mainframe; // Initialize some variables $db = & JFactory::getDBO(); $SiteName = $mainframe->getCfg('sitename'); $contactId = JRequest::getVar('contact_id', 0, '', 'int'); // Get a Contact table object and load the selected contact details JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_contact'.DS.'tables'); $contact =& JTable::getInstance('contact', 'Table'); $contact->load($contactId); // Get the contact detail parameters $pparams = &$mainframe->getParams('com_contact'); // Should we show the vcard? if ($pparams->get('allow_vcard', 0)) { // Parse the contact name field and build the nam information for the vcard. $firstname = null; $middlename = null; $surname = null; // How many parts do we have? $parts = explode(' ', $contact->name); $count = count($parts); switch ($count) { case 1 : // only a first name $firstname = $parts[0]; break; case 2 : // first and last name $firstname = $parts[0]; $surname = $parts[1]; break; default : // we have full name info $firstname = $parts[0]; $surname = $parts[$count -1]; for ($i = 1; $i < $count -1; $i ++) { $middlename .= $parts[$i].' '; } break; } // quick cleanup for the middlename value $middlename = trim($middlename); // Create a new vcard object and populate the fields require_once(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_contact'.DS.'helpers'.DS.'vcard.php'); $v = new JvCard(); $v->setPhoneNumber($contact->telephone, 'PREF;WORK;VOICE'); $v->setPhoneNumber($contact->fax, 'WORK;FAX'); $v->setName($surname, $firstname, $middlename, ''); $v->setAddress('', '', $contact->address, $contact->suburb, $contact->state, $contact->postcode, $contact->country, 'WORK;POSTAL'); $v->setEmail($contact->email_to); $v->setNote($contact->misc); $v->setURL( JURI::base(), 'WORK'); $v->setTitle($contact->con_position); $v->setOrg($SiteName); $filename = str_replace(' ', '_', $contact->name); $v->setFilename($filename); $output = $v->getVCard($SiteName); $filename = $v->getFileName(); // Send vCard file headers header('Content-Disposition: attachment; filename='.$filename); header('Content-Length: '.strlen($output)); header('Connection: close'); header('Content-Type: text/x-vCard; name='.$filename); header('Cache-Control: store, cache'); header('Pragma: cache'); print $output; } else { JError::raiseWarning('SOME_ERROR_CODE', 'ContactController::vCard: '.JText::_('NOTAUTH')); return false; } } /** * Validates some inputs based on component configuration * * @param Object $contact JTable Object * @param String $email Email address * @param String $subject Email subject * @param String $body Email body * @return Boolean * @access protected * @since 1.5 */ function _validateInputs( $contact, $email, $subject, $body ) { global $mainframe; $session =& JFactory::getSession(); // Get params and component configurations $params = new JParameter($contact->params); $pparams = &$mainframe->getParams('com_contact'); // check for session cookie $sessionCheck = $pparams->get( 'validate_session', 1 ); $sessionName = $session->getName(); if ( $sessionCheck ) { if ( !isset($_COOKIE[$sessionName]) ) { $this->setError( JText::_('ALERTNOTAUTH') ); return false; } } // Determine banned e-mails $configEmail = $pparams->get( 'banned_email', '' ); $paramsEmail = $params->get( 'banned_mail', '' ); $bannedEmail = $configEmail . ($paramsEmail ? ';'.$paramsEmail : ''); // Prevent form submission if one of the banned text is discovered in the email field if(false === $this->_checkText($email, $bannedEmail )) { $this->setError( JText::sprintf('MESGHASBANNEDTEXT', 'Email') ); return false; } // Determine banned subjects $configSubject = $pparams->get( 'banned_subject', '' ); $paramsSubject = $params->get( 'banned_subject', '' ); $bannedSubject = $configSubject . ( $paramsSubject ? ';'.$paramsSubject : ''); // Prevent form submission if one of the banned text is discovered in the subject field if(false === $this->_checkText($subject, $bannedSubject)) { $this->setError( JText::sprintf('MESGHASBANNEDTEXT', 'Subject') ); return false; } // Determine banned Text $configText = $pparams->get( 'banned_text', '' ); $paramsText = $params->get( 'banned_text', '' ); $bannedText = $configText . ( $paramsText ? ';'.$paramsText : '' ); // Prevent form submission if one of the banned text is discovered in the text field if(false === $this->_checkText( $body, $bannedText )) { $this->setError( JText::sprintf('MESGHASBANNEDTEXT', 'Message') ); return false; } // test to ensure that only one email address is entered $check = explode( '@', $email ); if ( strpos( $email, ';' ) || strpos( $email, ',' ) || strpos( $email, ' ' ) || count( $check ) > 2 ) { $this->setError( JText::_( 'You cannot enter more than one email address', true ) ); return false; } return true; } /** * Checks $text for values contained in the array $array, and sets error message if true... * * @param String $text Text to search against * @param String $list semicolon (;) seperated list of banned values * @return Boolean * @access protected * @since 1.5.4 */ function _checkText($text, $list) { if(empty($list) || empty($text)) return true; $array = explode(';', $list); foreach ($array as $value) { $value = trim($value); if(empty($value)) continue; if ( JString::stristr($text, $value) !== false ) { return false; } } return true; } } elracodelangela/error_log0000644000176700017710000000756411076172376016364 0ustar essawireessawire[08-Oct-2008 10:39:50] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [08-Oct-2008 10:39:54] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [08-Oct-2008 10:41:03] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [08-Oct-2008 10:41:44] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [16-Oct-2008 11:10:47] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [16-Oct-2008 11:10:51] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:07:24] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:07:24] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:09:11] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:09:22] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:09:22] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:13:08] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:13:08] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:13:20] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:14:59] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:20:59] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:21:08] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:23:42] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:23:42] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:24:33] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:24:33] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:26:38] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 [17-Oct-2008 14:26:38] PHP Warning: Invalid argument supplied for foreach() in /home/essawire/public_html/elracodelangela/plugins/content/flickrslideshows.php on line 134 elracodelangela/images/0000755000176700017710000000000011076304162015666 5ustar essawireessawireelracodelangela/images/css_f2.png0000755000176700017710000000336011061563454017565 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 14:56:25 -0000XtIME 8* pHYs  ~gAMA aPLTE֭νƵΜcsks{Ɯ{kskss{kcR{JcRZ{skJs1Zsskk^{ck{{kJkJZZg{s{Js)Jc{ZkkZ{JcZk1R9Zބ=Zs{9cFV{R{Bks)JsJkRsZ)R9R֭c{ck{Z)R)JRZƔsBc1R֭c掠Υ1Zֵ֥Bk眵֜c{Zkֽ筽Zccw9{ZeƹZkkkΩ{B{NZ9J){ksc=5ks1-֭B=)ΔsO޵{wֵ1!εsk)Z^NΜ޽p~焜ބތΔ֥ƭΥ祽ޥ֭fvtRNS@fGIDATxc`eׯ߾Y$ ȀgG67KJ+z>~BRĔ4gn.x|/_zھB{\pqe/>zsŞ'O?dBqu7nN~kk{g] "_8ac.vsh")8ݖ-gϝ@U)vG,pt?qd%lݶ}]ݷρ&D(de˗/_r5k׭PSS Y ـ]Qߢޜeojg̩+wTdS´gp̈́(GM0O61UQ0m:Lƿ'4VA3:`$d|iBii~'u0Ǧ(ww)Mpf`)Ӧ]TVgZ `kckk[TTb(QҖ TP jRhV2!&CZ 66!i9 Meee U5E@,5qT+֎1h*`,();-:4&4,rl;? i^!ѩI99yJJJ@ @?'D'i'*ygddj&00?? "$&V#.:-=^>~~A.^n!a!n^.jܐeemckgljM7Z:zF&f&ʪ ,'.!)%-#*'ɉHw<|, >07RfdbbqYX98`ƽ@ިIENDB`elracodelangela/images/M_images/0000755000176700017710000000000011061563624017413 5ustar essawireessawireelracodelangela/images/M_images/no_indent.png0000755000176700017710000000031711061563454022103 0ustar essawireessawirePNG  IHDR(4,tEXtCreation TimeWed 11 Aug 2004 15:36:59 -0000>tIME %< pHYs  ~gAMA aPLTEtRNS@f IDATxc`'IENDB`elracodelangela/images/M_images/livemarks-rtl.png0000755000176700017710000000152211061563454022721 0ustar essawireessawirePNG  IHDRagAMAOX2tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@u_?00(J4p 2}{'`.@ 5f\r@~30ߏ? _>f`Tb`a3* @䒳b`,Ǡ"[, u]] _2yl_}b#{3: <f :&bA \Ak8?:c]{ 0h.bB6 ,vD6.fқG>sx1HQ97& 2 =d8UG'vÏO>^|g/?7 ʡ` ~`||W X>1#\`@p/|APË Lw0|`gx}׶Tu5!܀W0K l xu .;1Aᣒ 3@pyd  #HH |fL_>63[nd`ead8pafߗ6 YE6@126L\\\ I?A/o`:?0O m«L"]|qf&v f201~$ @`1+_ ?IENDB`elracodelangela/images/M_images/indent2.png0000755000176700017710000000022711061563454021471 0ustar essawireessawirePNG  IHDR O"tIME .M Z pHYs B4PLTEzTtRNS@fIDATxc`#"XpƴIENDB`elracodelangela/images/M_images/weblink.png0000755000176700017710000000201411061563454021555 0ustar essawireessawirePNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd@EX ]ueYXGξ8w FClԼp+NvF d`Ig?_ [>|%~$JSf'|#Ë?^ >H\L]^F77r @1of^n666go?3|ۏ` bspg[ ߜz@L,̅<~b`af``fx#˷^_d. QAׯ?3h10q21ga`t%Gp[Ͽ3Hd` fe8{99$; s߰j?Ë$U {|fy%CB>2?C :_oW0/~}O1m?#`X,[{ś ngx(7`9x Ô53ə?#RbV6thPFd=>_mݺj' ?)ج <fDPh r6b`00U"SoIENDB`elracodelangela/images/M_images/blank.png0000755000176700017710000000025011061563454021211 0ustar essawireessawirePNG  IHDREMYvtIME ''ڭ3R pHYs  ~gAMA aPLTEtRNS@fIDATx nH@<DIENDB`elracodelangela/images/M_images/pdf_button.png0000755000176700017710000000110611061563454022267 0ustar essawireessawirePNG  IHDR(-SsBITOPLTE燇PP{{00Уttէ((̙wxBBggڻ땕{{ȳUU؉¯==QQ}}ٰJJë''텅//ss!!ϮEtRNS@ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxIDATc@ ,-j*zp>&ySuFK9 +\CVR]]].(,#`՗531U p)XH(pBYtU!bL¢llN.R -m[ P)/V8<S#IENDB`elracodelangela/images/M_images/sort0.png0000755000176700017710000000060511061563454021175 0ustar essawireessawirePNG  IHDR rgAMA7tEXtSoftwareAdobe ImageReadyqe<iPLTEʲ|||ٮ۷}}}tttͿ܂eeey"#tRNSf)sIDATxbPBb  l).@`08 ]EAH-/ī@@#(<@̬rrJĠǨ!'@ Hv2 z HM?IENDB`elracodelangela/images/M_images/indent3.png0000755000176700017710000000023111061563454021465 0ustar essawireessawirePNG  IHDR O"tIME /-Q pHYs B4PLTEzTtRNS@fIDATxc`,F,,<!åIENDB`elracodelangela/images/M_images/arrow_rtl.png0000755000176700017710000000023211061563454022135 0ustar essawireessawirePNG  IHDR gAMA a pHYs  d_tIME XQ )IDAT(Sc`) xT2`%&dȾ>(!FVIENDB`elracodelangela/images/M_images/indent5.png0000755000176700017710000000022211061563454021467 0ustar essawireessawirePNG  IHDR O"tIME 0' pHYs B4PLTEzTtRNS@fIDATxc`Ig z etIENDB`elracodelangela/images/M_images/emailButton.png0000755000176700017710000000065411061563454022415 0ustar essawireessawirePNG  IHDR(-SsBITOoPLTE꣣daOD/7 NNNJ%tRNS{ pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time1/5/06ÿ'XIDATc` #X_H.ūPSPPTRiDR!',*! `df" 2 '" .n IENDB`elracodelangela/images/M_images/icon_error.gif0000755000176700017710000000050111061563454022243 0ustar essawireessawireGIF89aLePf3++ :9p9dz97>$*' ^:4?&E?^*ΚH!, bf3$uդOAuU/$@q Rm42 ``[vآ@h_N17 ck$ʒlQV%E7!XR IENDB`elracodelangela/images/M_images/con_tel.png0000755000176700017710000000155111061563454021552 0ustar essawireessawirePNG  IHDR(-S,tEXtCreation TimeFri 23 Jul 2004 20:21:01 -0000tIMEL pHYs  ~gAMA aPLTE{ss{cc{ZZ{RRΌRR1)B1RBkRc{ZZJ11!99!B9sc{ccR!11BB{{ckk1)99s{{RRֽ{{{ss޵ޜJJ!!ބƄ{B9cccccRRkk))91{{ss9911kkks{{甔sskkssBBJJ{ZcJJ{991)1)91ZZJJ))ssZRskZZJJccBJ)){{kkƵ99))BJZc{{ғ tRNS@fIDATxc`- ~mP~|@CTNcS3XL^ܻ"Z$_PXT\R INIrKsK DFED'$&|CB#.n f^> "v jNFfl r&fVֲ 6 j:zFl  J*jZ@3D%$edn 02102d&IENDB`elracodelangela/images/M_images/index.html0000755000176700017710000000005711061563454021416 0ustar essawireessawire elracodelangela/images/M_images/printButton.png0000755000176700017710000000057311061563454022462 0ustar essawireessawirePNG  IHDR(-SsBITOHPLTEݾϢNkkk/NNN tRNSD6 pHYs  ~tEXtSoftwareMacromedia Fireworks 8hxtEXtCreation Time1/5/06ÿ'[IDATK0IQB7@uټ0 ?.Ox4b4`X=4 trTA$ZO{&-{9Ɣ2{'6q Y=K{IENDB`elracodelangela/images/M_images/indent.png0000755000176700017710000000022011061563454021400 0ustar essawireessawirePNG  IHDR O"tIME 0 Vr pHYs B4PLTEzTtRNS@fIDATxc` 0!5CSIENDB`elracodelangela/images/M_images/sort1.png0000755000176700017710000000061111061563454021173 0ustar essawireessawirePNG  IHDR rgAMA7tEXtSoftwareAdobe ImageReadyqe<iPLTEƆxxx̥浵ʢ񂂂y#tRNSf)wIDATxbPBbPWTTdc %%F1)9.f6%YdDxV┗fgQR ARH*V`aQf+ Hb@ ? ƤהIENDB`elracodelangela/images/M_images/con_info.png0000755000176700017710000000135511061563454021723 0ustar essawireessawirePNG  IHDR(-S,tEXtCreation TimeFri 23 Jul 2004 20:18:49 -0000(ΡtIME5p pHYs  ~gAMA aDPLTEs)9s{{c)){ss!1)!c9B!Z{ƭ)R)9k)BRkνR{9{Js9ZZs9B9{9kJB{!1JJ9R1kJskBk1{kZ)1{ZƜc!s{9k)sޭc9c!1!Z){9k!ZZޥ)BB99RwtRNS@fIDATxc`/gk̬lNNIMKKcbU|@"!aa**aaaQ@&>>>~@J90E \݀'XX)gƠRQ 44Հ( u@YEEHs00HJIKKK ]*,"*B prq  AbX+yXOIENDB`elracodelangela/images/M_images/indent1.png0000755000176700017710000000022511061563454021466 0ustar essawireessawirePNG  IHDR O"tIME  J pHYs B4PLTEzTtRNS@fIDATxc`1YD8 crIENDB`elracodelangela/images/M_images/arrow.png0000755000176700017710000000025111061563454021255 0ustar essawireessawirePNG  IHDR O"tIME XQ pHYs  ~gAMA aPLTEtRNS@fIDATxc`,FbC {IENDB`elracodelangela/images/M_images/new.png0000755000176700017710000000066311061563454020723 0ustar essawireessawirePNG  IHDR(-S,tEXtCreation TimeFri 23 Jul 2004 20:22:40 -00003tIME:a6 pHYs  ~gAMA aoPLTE{{{Zcsck{cks޽ccsƥƽΜ޵εƦ]tRNS@fIDATx}[ adݐckHanz/fY.ŘZsOzwf<.)͏ [ tN/PC#Uƒ)ΉQjk(~@7Tg=k׎} ݮqIENDB`elracodelangela/images/M_images/edit.png0000755000176700017710000000154411061563454021056 0ustar essawireessawirePNG  IHDRa~esBITOPPLTEޥ޽ֽ֜BΌ΄R9!Rֽ޽ƽֽ1!)εƵޭZ)9քRƄ{Ƅkބ{c{{ss1{{{ksck){{{{sZs{{k9ZZks{Z1kk{BBJ)RBAptRNSab pHYs B4tEXtSoftwareAdobe Fireworks CS3F,tEXtCreation TimeFri 23 Jul 2004 20:14:04 -0000o.xIDATc X$@Q9?*$6:F~P!Ic\;oZn!ovL7c\kz /OCT6LHU*$!ER .F>eHQA! -KkGwDHDX*NZC;C[ !P[I% I$L%؝BLlLLP!Dr %QECIENDB`elracodelangela/images/M_images/edit_unpublished.png0000755000176700017710000000155011061563454023455 0ustar essawireessawirePNG  IHDRL4sBITOSPLTEӽѼɼ՛ʹŻĽżzŴ9jsPդccz01Q{Z()QzzY9z{)&zykA{9~zsszqk~/uAw{!lq dj`XYM 6qtRNS)Le pHYs B4tEXtSoftwareAdobe Fireworks CS3F,tEXtCreation TimeFri 23 Jul 2004 20:14:04 -0000o.xIDATc(*(#ҊIpA `f͏ J8s2M=dQ2]ݼ5P2\ "fRPw2gŸ q[%kłled5 `*:"Rpo*J((JE"]5M_RBIQ .h@>\C^IENDB`elracodelangela/images/M_images/sort_none.png0000755000176700017710000000031111061563454022126 0ustar essawireessawirePNG  IHDR [AtEXtCreation Time - &PptIME !/t pHYs  ~ PLTETtRNS@f%IDATxc`A PP HBJ!(c`@Q k}|IENDB`elracodelangela/images/M_images/rating_star.png0000755000176700017710000000074011061563454022443 0ustar essawireessawirePNG  IHDR W)sBITO~PLTEٝuDUVVpjf*tRNS'O pHYs B4+tEXtCreation TimeMon 9 Aug 2004 21:17:36 -0000C<%tEXtSoftwareMacromedia Fireworks MX 2004v[IDATx5G Ş `ޑ/:f"ȃ%;+ei9|VZBD'a!MW3!ZC?^BIENDB`elracodelangela/images/M_images/con_mobile.png0000755000176700017710000000153411061563454022236 0ustar essawireessawirePNG  IHDRagAMAOX2tEXtSoftwareAdobe ImageReadyqe<IDATxb?2wkaŞn+;+ۉb+\b@ied`d "p[6+}#lyd2v:Y }~ $ 2jW2  _ya 0gd?6G> >aa`efxq ,2I`6F&\pa7xttr^`(W(󛁕X 3"2A@CO 0]_z0[N2gWca3í޿0CQ@^x> )O ïW@'VnAAVvw;Vnߙ89ٸY Ll^|bưgWN?1p0#LLB ƿ$~%Ϩa!z0@BÐՓ ޼abc _L,&'1!umz+}FF~'32+(p> Óoyo._zaVb`R@)]8{WX1}%*d zn`H2\u/! 4IENDB`elracodelangela/images/M_images/con_fax.png0000755000176700017710000000113611061563454021543 0ustar essawireessawirePNG  IHDR(-S,tEXtCreation TimeFri 23 Jul 2004 20:17:24 -0000~}tIME*@ pHYs  ~gAMA aPLTE筵Δֵƽkkk޽޽ƌs{{ޜޔƵƥsss{{{{{֜sskքޭεssޜ֥֭֔ƵΔƽƽƥ{9qtRNS@fIDATx=RA ;4!z(*LT2]DaL}^ދy۶}|Xs}wx|z~,ѲiVP_|c-"GDϘd<"35i>d `Zf?A_$! >vRƕ9 tTv_UIENDB`elracodelangela/images/M_images/sort_asc.png0000755000176700017710000000031211061563454021736 0ustar essawireessawirePNG  IHDR [AtEXtCreation Time - &PptIME 4 2 pHYs  ~ PLTETtRNS@f&IDATxc`A% H1@*SF?XIENDB`elracodelangela/images/M_images/sort_desc.png0000755000176700017710000000031111061563454022105 0ustar essawireessawirePNG  IHDR [AtEXtCreation Time - &PptIME 3JH pHYs  ~ PLTETtRNS@f%IDATxc0) R`@Ppe R@y?5gIENDB`elracodelangela/images/blank.png0000755000176700017710000000022711061563454017474 0ustar essawireessawirePNG  IHDR(4tIME 1123 pHYs  ~gAMA aPLTEtRNS@f IDATxc`'IENDB`elracodelangela/images/upload_f2.png0000755000176700017710000000317211061563454020262 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeTue 3 Aug 2004 08:02:12 -0000' tIME3h pHYs  ~gAMA aPLTEƭckJsJRkZs{{RJZ9sBZ9B1B{9JkJcskJ9sJ{JR{RR9RkRc9Z9kBsJRZJB{Z1J)R1J{B{ckcsc{csckksRsc9!1J)Z1skk1RJksksZs1c))B!c9B{B{sk)Js{J{!sZ!!9!s{)RBc{c!))B){1Zs)1{1Js9Z!99)J19s1BkBs{9c9k1!!R{ZΔBkJs1{JB{R{RsZ{Rs1Zk9B)ZZ֌Zc猭1cJ11焥c)ccBZR)!ksc1R1cR1Zks)RJB{R9Z!J9RJk)cBJ!c)R9R{9ZBZRck1Rk{s9R{cRck{sk{sޥkksޜƄZ{kތc{s֮tRNS@fIDATxu_P[K*u""YIPMQQin^MIPQSUIq?|iA#_}*|ſ}sFFnOމc(H5Mʿuc1C2v;߀ߪ[17U9 T"YxӪwc!!Bp<_I՟PDRhY6e a|Fa ijdsIAy=Y_/2 e}y@&d킀St3} $/`.݃!~!<$''k].`FozUtU^v|Yv~a9W.z" #9DNNZ}L3p,]."ɲ$zHTѲcǍ^`^ ԗ1,OQd^"[B]:Ca!3gwqSlL7FNKҔ$"jjujjv A,kXЌ )y^}LrޫdgM77e_0k7?<-?4>uڴ3fΚ azd P7A I'B^k(у 6|Q ЯjCuVRicb7 3r)¡?42j- >}i4vޣg/jбVVT~_<.{IENDB`elracodelangela/images/back_f2.png0000755000176700017710000000312411061563454017673 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 16:17:40 -00002tIME7?: pHYs  ~gAMA aPLTEεƭƄc{cJkR9kB9c9JkJcsc{RsRkkskk!c!BcJs{{cJcRΌ!s!)c1kss{k!{!!c!csk)s){!!)c)9{9s)c{9!))ΜJBcksk)J)11)J9RJsZ9B)skZJcc{{JB!9!9!B1֥999J9sB)ք1c9R9J)cRscBRR1!ΜcRc9ZZ1Z1{{J)ckBZ9c99!֥){11!cB!!{sZc{ZR1!JBcRs{{JsBsJ))!޵k11ZJ)kckRBsBs{{RJ)ZRJ1k){)cR֭ބR{ZZJcJssZZ1!BBRsBRRJR!!{)RZZZ!{!19kk^G7 tRNS@f IDATxe_`ԲPXy1)tjtJ(3'Xy$H˲;=?}ޟ %Wf##gK &:W5CdGW֛f UUkuV-bss 'yYUzhezuNJl(#{8KA0G@>86>{)&n΂|;ns 4? D\\^mVtLz4H_vyhRqQ!FvyyA?qTP:R$!<wq ƹ1Hb$o;pp@:F֖}a62v79z.Ev媭V}{:Qa;ȦbfUo޲"KEYW;xZh!Il (_eeE^2K%%KiA"~2ѲHઑBB>EFѴ&Dƒ f :aHzSPWa Cg-tP0#%Sh~<UMFJKR㦢OJNijRѤ024щ8TTXJL7idhOaW?Q!>"):j記b#$()k IENDB`elracodelangela/images/joomla_logo_black.jpg0000755000176700017710000001604011061563454022036 0ustar essawireessawireJFIF++C       C  G^L !1"AQ2BaqRu#378br$%46S5Cs5!12AQa"q#BR3br ?̫z&9\!hq9!=9s5ͪ}]oHk @`*#}qgѼW9xpY]ԭ W :%ǸY]&ŧ3Շ'=wo+(]S~UarÏ5ku:y?~5k\952x^Sx?`&ַ~2d־oXusM̖ITG(Y.txKɬĈcz}8 @P( @P( @P( @P( ٨mlٰR|iW ilwarVkm*I%w4磂ԒrRi[m^[Jର)EʉO^ZӷOv4dSs;>VSts[6y#krLd()a)Dď,ٕ8\yy!ѱqT2C⼒*vijP(ߨs/L{ǡr4]@P( @P( A:LiHmM3op( {^ 4Vjbg; JPXI"a@P( 6ٴftkS\7r!t'wwsA6+WO.8܆!%XB=Ƽz5/]h诬0)u6Tp+Ro;0 sC=ٗ"Z8oyIBW$9Ei4_#M]7,7i%` '}gI's~}k/{RJS~{qg,s[W_yb/kf<ycK*J%a`!DpF7sr$9źŪYB8F6tYnJ˭돸p= T ,ԎC'h:*U/,cL{\vXr[vQXWҴO _nJ&,eCgaBy'V^ɏw<1cR~Z4GvՖMQt35̉ol!?8KO1ixmӞ|YS?W{G䉴l R1n yJUw٫\7LSWehĘ=!IW#y |ˎ6߳P2Ϭ[??:65 Pa\wG1 p3=~goO. AL'OǨ% +Y JFT$|OA j~>DvW2n1Su٧Gh};:yQ<9~JA(=gպ*DhS/jCisd5w,. pÐokF.Wr<%MJGYs➾*co?t5| H?VlZLCGϠC֞J%'V*5ybzscJmcK"|{e@ܡQl̫Y"ycifq䉬,VE( 2OL-?K;yggE qGwtI!$l`WFۣ˹Ej穔3Hq GJ$'~ꨕb+nWt'y}RfZ[K.wSqH%kN[Ҷ%y.1 Hi#RIN|0 76[D$1e$ =qtt9N:g\Yڗy q  U }u;RQR7WTFy1Et.^`;/7%|sAL֜5qWX* /$)SW|R ZjjueM%t8m/<#:b&to3%vx [qZvR>'S) )* CG˩4-S䡦;jTe6$Azuӵ%}i;JRHt*f:n-Է}Ku-?5]t6j=]-׭TRIJqyh { ubӖb}5yU WVnjkD0yiA A Nr^\[ҭi]F|k[Q~g+ߧ' qjAs6sT2Uʕb=onZ)~tɒu~kY?mnUDm=6缦: АoVooOว{w:xMFlxp^Cq~baGB'{=Rj$n$cnX鈞͎-en5\7LQZOL}k/AlU'tk5z_tmA+QCoOcg̨ǭXyRyn/7O3ڶΝӍþ(Bd(|04@kZW/S%c~g\oVl[:9zDI*#M5}b)yÛR?Y|-NmG( 2ք];T%1? ol8%5܁!6pPc#6nP[kHZNA @EtpWBI#Mn'h)v4kku^O:t,8ޟzL3)LXgwxE"UBA@+i O#DlSqlISC3s]Lp.kӱ”>>[gvPT ~uoAXh3I|'ة+6NUkVSdW!I-rS}I4=֐'31ӭ$ n?iW;1>ۄ4~8ȩ+ bߒ+{?U`;[e&SWe[.[E[jPq;@֐!'NE:3T%ANϕ{ty?V=^#DM1j$z5+ <ǘV[źV|v1rvح F&[ 4 89#ZktigF[o0u4ɞb*c}!2}a{k~H#yГivsW*e`9}*R7lWϩZ~kXfV|bkO=kPjf\%X) IZ1~ٵ }4Lir 9m;s@\g%2.wAVR+ ON;Sk)i=mn=5YqG;.\%$!%ciiL=C@ZO2O0G~j!1Mly-kczuÆ hy )tҢwji* >oF*r>7n֛/ʌι=!xI'ާJ1nl_MjUKXʓ *L).yX]lճ7dUL*ܧx!GU;=ϿU4b7p7˜3 ӺK6=Xelw #!@x7Jiڣd.V3r+_~&{Ⲥm.1φTJʛjJY[-6*9"+*︥c<ͧm:oiko3L*QRI'Ϊ9[gvB~@GQ;?QV4wm C H؍;K<ԦmC)RU)ऑVl[h2J6.M B3CM+uFOWS^ FՖiV:Ym|;ӫ6{|+wMvn&+ N=ai?юZBڶkmA՚ h¶ +I4rG_1QVcnG kJ!<$ v›'RZm Y/)RЯWtwqύMeEZ_x)5Ѕ[Wyb=!ΪiYZiu7>-.Bꋜ͢X1榝>ֽkO oҺ</%7’lC a5;e[5Z^صZJԀh2C]Zl!>:C*?P}U1F;B /LX#Yᒴ2 uȸ⹭gzy 3朖ק t3 WXki\Xr1r5ӟ]>ĭ޳c୷j})w%yA/VvK|~%ga>eX Hx50CVd4^_=o_ }ҽ{ڙ@P( @P( @P( @P( @elracodelangela/images/unpublish_f2.png0000755000176700017710000000321711061563454021007 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 22:21:39 -0000 tIME0 pHYs  ~gAMA aPLTEΥƄ9Z9RNZ{ck{ƭBZJsZ{Bc9RBRZc{s1ZkkcBk9ZBR{9ZkcRs5V9RRZss{kssJsBRs{RkBk{JkބBcJkZ焭{ZJR{Rs猭9RRc{JkR{电{{9cZ{甽cck{罥{kքsA]Rkέ{sֵZZ{Jks{Rs֭ε{޽kZksRs޵ε{ZkބcޜZ{ks{kֽ{cޜcoҽֽs֥Όksތcc{νք޽Bƽޜ΄kkޔZsֽRΌƵssޭέƜƔ֥罭Vwννν޵sR{ތRkZsޜJcc{Z{޽BZkֽRZks{{s֥sc{{hItRNS@fIDATxc`?~ddu;z yjsSe®MЈvIH|yk6d{nP6^e$$nͼXmkh0~xtNW\Br[~`7o>`enx54"0G6aɦ\_7:fܼP37~æSN9{,{>K.[2AK>rر7'z.wbOHd` iuss}]_?N77hcBj.P+Xs(EYY بڂe8 VLHUl"%+"U Iee8LXxS z搑WPVWfu|B"bX$#;'7+/̂jWvuBHrIENDB`elracodelangela/images/archive_f2.png0000755000176700017710000000316011061563454020414 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeTue 3 Aug 2004 08:08:18 -0000ÄtIME' pHYs  ~gAMA aPLTEֽƭΌ{{{kss֜{ƔΥ{΄ssssƄ{֔sks{΄֔֜s{{cckNJR)!!R^ks֥TTq{ƄƌΜ֥RRZRR{{Ɯέ)!)Zcs΄ƔƜZZcΥ֭޵祭ΔΜ`]k++.έ޽ޭss{ZZZ{{gcscZ{ֵ֭kkk)))JBJ71;ckwkkwkk省skkok=9NZccssBBV!1)!9{sJFgޥpmskDBk{{RJs{{֭ƽBBc{sskJBs{cZνskZcmh֭=ZZ11祥c^-)J!!))9Bք{kc{skc{sJJZJJJZZZR!)J1y$$))sskcVRckBZNJkcZRJ{RZZ{JRssƵ{ZZ=AZBc51NDnqtRNS@fIDATxc`@Lɪ,@FQr:$tIín)~_~U@|޽nU&~_\dJWOfzh nL}G3;@gpa._q߽{II`X4sGkN,j3gϝ``ذq-E[m_c箝0¶}آK/[bUV^a݂R륤9@>2u3Zf=g 'wpuC^1ʃ/ E4Z,++ʫrkkb(7-O)?(( 0HT# IAtZ}FRfPB\U|Vv6GrN*؀8$dd^^<>~A!aQ,H m x]\]]]$<<8/3j:30733742bCKz@:@`d@SKV[HHFFFQB]*0P1y.q a%e"%(4FBXNXRSN.n1R3(@c@Tr 3+;3>̄"iIENDB`elracodelangela/images/save_f2.png0000755000176700017710000000343611061563454017737 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:08:23 -0000H(StIME&HU, pHYs  ~gAMA aPLTEεֵ{BBJ111999RRRkks!B9RJBc1)B!!1!!)99BJJJRJZcgosux!!!91BJBZB9Z{{cckJJR1999BBZcc]Z`)))B9JJJcBBZRRckcsk{sZRcBBBBJJRRZJRR119BBRJJkJBkZRkcZkcΥRR{))11)1B9BRJskm{RJ{ZRcZ޽{{)!!!!RJkssBBcJJsZR{)!))11ZRs91R֜91J1)9cZsZZZRZcc{JBRmkZRxsokkskcZZZkccZ{B9c99Z11BskƵΥƽ{scc{sޜ֔ƌ{kRZZs~{ν99Jνεֵ޵޵ﭵkkֵ֭JJZΌ{99RZZs{sεsks{sƄ{{sRRkcksssֽ))9Ɯƽν祜֔RJccccZtRNS@foIDATxc;]P[z=%99NNyU՟,l `p?|ZQQRƐȨ,A[o| \ p-P7orkA}<;MMnRZ`ðG&<=~guu!=b/ jo޺};w޽׀`L~ߡca/切 lESvuk|$ r{*0hf``9s,/\ 6\J45&&&OcsSjo )gƚN|Oo_udsD@amڦbongQo x8U|| P&A@|vBYyYE%(ṩ*%yA)dWPuL-*N/Ipd6{Ir)000zY}ss A|򽼒xK&(/Ɵ2=+0+I7@>( o ԟhbT`(&lnT`kg7p2rvqqu3gtgTd&)]=}5 #0c0)*)(khjiɳ2@GDTLT\BRJZF($ \<|@3Q`b(YqPQIENDB`elracodelangela/images/html_f2.png0000755000176700017710000000332011061563454017735 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 14:57:45 -0000`:tIME 9;hU pHYs  ~gAMA aPLTEέֵƭ֌css{{s{ksksks{{ccVwFVck{bvs9ZBckk{ƌcJcTeZc{k{1R)JksZk{Z{Rg{BkBcތcBR9Zk)RJZ{Js1Zތ1JƔcR{Rs焭Bk焜sZc{1J{΄9c޵w)RބJkޥ1R1RƥΌJZֵ1ZsޔoҔƜ{c{猜 kkZ s1J{BgsƵscss޽s)k9kBuU^5b^ZJ{{cs{sbέcsB9B{kNεB1{{){kw֥wkw9ZR!cB{޽ΔΜֽބ֌Δֵ諒祽ޥ֥֭=tRNS@f0IDATxc`|ԇ?}"€KCC^JQUy:wlH̺?޴ӧϞC(^coνu;޻wr2]Y<._Xze3!px4s&<!){Y2knGgAQ`1g<ٽc @{YY~M7/۲u;ڍ` .Zd+VZug汞^f -6 PL%Iܹ'$H*( Z'ĢKT)ԣ&Htѩ Wh#&T3a@;elracodelangela/images/smilies/wink.gif0000755000176700017710000000166011061563454021005 0ustar essawireessawireGIF89ac!c!k!k!s!s!{){)19BJRRZckks!,+`+ !C 0p !4XGHX) !P4@ :aƛ90 C.`A? $-₇?$ͩU*h jV!R݈ٞ M;elracodelangela/images/smilies/shocked.gif0000755000176700017710000000171311061563454021454 0ustar essawireessawireGIF89a6r6s7u9v:wHCGn(@ (ZĨ5t PC 6d`!Bp "8P`@X&P`o6p#TAy= 0qĄ ;elracodelangela/images/smilies/tongue.gif0000755000176700017710000000166011061563454021336 0ustar essawireessawireGIF89ac!c!k!k!s!s!{){)19BJRRZckks!,-`- !C 0p !4XG JYЀI(ؠ` :aƛ90 C.`A?$-@XT .HUa.@Bp =ّm۠ L;elracodelangela/images/smilies/index.html0000755000176700017710000000005411061563454021337 0ustar essawireessawireelracodelangela/images/smilies/smile.gif0000755000176700017710000000165711061563454021154 0ustar essawireessawireGIF89ac!c!k!k!s!s!{){)19BJRRZckks!,+`+ !C 0p !4XG JYЀI(ؠ` :aƛ90 C.`РßTqßȩTȺ$h ʕ QMmЄ& ;elracodelangela/images/smilies/sad.gif0000755000176700017710000000170011061563454020577 0ustar essawireessawireGIF89a6r7s8t9tx?xAzD|F}G~INPRVWXZ[`aghjmoqtz|݂߄⋰⍱! ,`A !".Lx` %Ha tTX„);A 'lA:qy`͜9Q8@A^JE@` X3` @VV@(@ J ]@ݻEP -`/;elracodelangela/images/powered_by.png0000755000176700017710000000500011061563454020536 0ustar essawireessawirePNG  IHDRDsBITOPLTE۾շԯ̢߲̙ۦĐ̶ןÎŐԗzψqҟ·]ȅf`󥥶ڗ]vpSՌhzfHI}3򑑥;r}Z{Nw{?0z'l̙nk=^ӓkfb0bvvZ(Z#P\kZSfffeA~}{MYO1utr>z*~qomKK0pvfff?@a_]:2mm!f\ZX22WUSd\)(NLJ""DB@<:73330-*+(&&# # T#H pHYs B4tEXtSoftwareMacromedia Fireworks 8hxIDATh횏[Of))Tu:F'uzoꆶJ:jc6*o{v>W>~sNN߼ 9?!'uAyv(׶D?#k{dTAexM nL)X΅Rj"H:Se*t"%sBSSdI"^20+beYE^E5*{)*i-LIєxU1 cX.Sqƥ-XVC6%B)%ǒoJ-,Rb\uHU͔+j!E,!Y-#>C"WC6taUUYLP5Jh>EW<BN ;<'"I.,<ކtt;k (El@ޫomLyu|nÔ@}@Me>swyF`W@_{UKĭޞMݠ7 fR-8hb֭ /uttt<??Dd|@5;111~u ttMP.V4gCϞ 'dNw^hYns%_u*.etBtC7u,%>A/Ogcn>ƱNMI)d9t> =~30䙑&o`ZP6r|q˾_> k͖YP~ۋ<ٙF@9t<%cw:itJ6K**%cm2']x5FNܜqrJ.:8DcYc$R`>>~su:s{Nj-O I$ sHL;Pr\j99ˍ,.xU n>|؈ XTaϢ)RZ%r3N<@xy};ۏ'953x nv3ʸpn pyz^OɅHv8N/U6H,sy&u%փv(I&-y'ә,ܭc(]5k^^rIG pJZ(Ԟ~Pz?q( Jtif9w^2Izv5NsxY"W=7g2SYK$v23#K{G7N 1f B>&N +YoH;$qpg' 5=4_`s>Krm+cZM(G} fn<-@>K#x߹4R*ċ&zGQL8S!8=p@U-$JsK3ak[O㑑{kGz*Ç+E7pcbuæ/O(u?[YOv՜s4{4ڃ5A /OлS~7?j)׶.?%nLl7A+燈̔T/Q7+<*2;kyO;9}.u.o?nrϝO17CqTYXeePn%[) bi@(cJ@2 BcŔ,=uEKKUtaEUeʦV{ȥ[4 , :$i>$bAB)1뚭u$OiRIJHhd"UpVS[` 41%Je]MHUp M0B=KDi9!T(Q֤4ɨJIcBA 9eQYhbEI42}7JE+-Q['5ysv<;]P>ʏA$VIENDB`elracodelangela/images/cancel_f2.png0000755000176700017710000000266111061563454020225 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:07:00 -0000n>tIME bя pHYs  ~gAMA aIPLTEֽέΌs{{JJsJJss{kk91!1)))BB119)kBBƌss9)R!9)ΌRRB)J{BB)kccsBJ{{{ƜZ1Rk{Z!BJ)!kck{{11!))ƥcBskR!J1{11{)cckƄƌR9k9B)!9!RR1)B!cRZZJΌJ))!sZk1c)Z)!֥{{ތc{sZc1)RRZRkc)ssRs99B9J!1JJ9Zc9)1!BBZ1B!kBJ1)ZBkZZZZ9!c)!B)JƭZB9s99cZcsJZB{kRBks)cJckJBZRkJJBBJBsBJ9!kkJ91){B!91Ƶss9)kkn?@tRNS@fIDATx}SW`m)4"Zh օMBb'B A4UjUW@[Ľ~KDxOsNw{?gѯaL|z; }7~3щo%8 %^6u DRM|Lv7O{s#8* CÁ֮GnE1 =A`G} ;MKP,}W1~߸)>9: %hH DQO:1'W)З$IEe ǝȀ'.SS>J~KjH׶c;yWE\r!O,|h/.ǎH-:ySr8T-DOMҠG2C4A̵a>/huI FB{ZG#G8.P,\{Q`{\v ۱S0ÔpАcض=M7AXM rPԲ@؈m]0!74|erWIk hK$好@Mм,y:żxdzd4M -C(3N `Ϝ5[=3gɚ[m̘ZTi%RSzhܓ'O %4?mM3i:΄P!IENDB`elracodelangela/images/cancel.png0000755000176700017710000000106411061563454017632 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 15:07:00 -0000n>tIME+6a5^ pHYs  ~gAMA aPLTEֵ‘"tRNS@fUIDATx}S @ iҪ])l0`r]_"\jpdͨ(8\cDS2w ɸ(=!"@&Hh2eVP`,+]"&mvJGu ]4t6^$ZBms[a78{F]Aap5(釗ō){Vbo#fTla>NR` ̦FnMеU:'۶p ;lv]x6c Ȁ>~b|{zY9M\wܻ[ ^>Kޜ6Y9.^dNǕ3{o8*Mr'N:=g:ݿ <ٳw/H~-# }Νv2{k֖[i͛goeؑ_pQeGMK.[tƊL25gZ 3gΚ=g~bD`+Wao|g".+L>Qɍ!^I&ϞEOp˗\v oޖ9'-lrh#G?O=u̙3g ]WW@0?7?"r7PGIAaPPwxzza90IN^!)p}iP^^!`Pba ƇEDG)Fŀhyzzꂵ*rXY׳wpqrvqqtd&F M--m]=}C#cS3s KU5&VxWPTRSQUSgaE· |B"b  `dbfb^&d0IENDB`elracodelangela/images/index.html0000755000176700017710000000005411061563454017672 0ustar essawireessawireelracodelangela/images/stories/0000755000176700017710000000000011061563624017362 5ustar essawireessawireelracodelangela/images/stories/key.jpg0000755000176700017710000000515111061563454020662 0ustar essawireessawireJFIFddDucky<Adobed       p{ !1AQaq"2BR#3$CSt% ?T P5@*TT P5@T P5@T P5AMj4rK#u{Jnp/?'PclӇ8::&o+#; :gdz?Eg4s5wGSƎ3 U@@P  UPb@]Aʹ%{\2 X\A# A| A_sDDuA'opɘGqA h@Pa['tpd[>9Gw4v mnL\?r 2 WD\55.d `&r5oB4@ 9kK{ WW̺kѸ98hPlQ@@4Aiю|| h<( NӠh[5 ,p54AJQB澤 t'J ܵ~ކw tA'Mk4-кF9 :7{m\o-s5nD\Ld}74PvAߨ8یϟ0ye 0 r#$3c2QԲ9\hQw@@@ \.s*hh k1'W;Pd; Av涺0F<nEd:'A[5ׯT7ɹ`8)Ve1ڇK\+ Ӵwq.R쵴d#1aHvѿ|LPLo nfSn\d2eo@͵66 1{upS{h8I#"u\:A-.K]1ǿkg]0: hTPGAq|:i5̢K)kF~J @#28 gՎ5AZm Cb'm:@aΘD4йǸA9?qe0IR55$5H֖G7۶kg bs\sH-wmPy[q<ӑ{ 2.nUu])ZQ̶ԛ=]8(Z&kggNvx݂Qc;J^0K{S٘.^8sjI="r^wm9MV6S& @ߕ uId?xPyԋJV3SCs}Prwm.W 涟!ͳ8&DdExd:Uzq?g{dy PcAqczRlri@ݿKrg]R8%+rWyޠA!}"r۸Ͳ\߰1PiD Kdz)\O{-&2=:7=׎?uCm/|'R7ҿ@(@ 'D䳊A4 F'1p2yQ$=hubۋ>z\tZhOѡh#\@-x/F149nW?sEAcrn=? {+܃[\tE hwOj." 1 ڇa;4?ˬ*1@i$vE`MP5AT P QƸQ{ ;vmXDư{-XD,8Ɔt@@@@(D Q@(D elracodelangela/images/stories/food/0000755000176700017710000000000011061563624020311 5ustar essawireessawireelracodelangela/images/stories/food/bread.jpg0000755000176700017710000001606011061563454022077 0ustar essawireessawireJFIFddDucky<Adobed       !1AQa"q2#BRb3r4$ƒ%!1AQ2#a"R$B34 ?SPB"T!*|5 =S2O>dǸo>)o%PU} Ϯޅ~؟ƃ9e"!])eh_輗/?Kͣ. ?\zW1hw)c3'f]]YJ0Z2$BT!*J%By{pL"YW8 GSJ˕QKvpןSt 9Gui\l~ݎs.˕/Z2mUҦNR"i:֯IDzj =,;6- v4]# * yxwr c?i e)o932&W9 5+坌8Pȥ)VKI5Dl=ZKk]\Fܝ`Trt/@FF\S+rZ,>Yzڐ 蕪 rޖ_)4FGҒm#=L%>OD@ln +̇GU.{Tr.|y8Bi$DdZfM@ƶs#?Mgrmb6ZAhBy:-a2&HqY㑦WKmr䢲~O^ z y-$n߭z6oI<#Ӵ I C$2VJ%ȚWI oc+3Md{ .Sxb:7jrn)f v4?ԂX|7C U')Z\뽤mtPkǑ%GJbl㵒:2s\~jHI/ L+@i>>KʁVib]JuL){\ǡEMraV%D {EUS)fdd9[ um=s22G ZhEld\[3 mmWT {{ ؀8ֺ:0wZ tI@vaJLG-+WnVC_+>O˷uzI#X>r'`?Cx22>{2( 7B4&^.O[s6IK_Jvkzӊ/gp = 5Tb,g&i`o洍.i+D 3;|N@TJܫ J ["2L1r#hB fXcxE #kXXZ|7*OP\peI)G |)7@SpR))X#b=iFMZbYȑP}t 'Vs{6jT Ǽ+J۩ E)wFSC `r #BZ!I;CMAӲdHQIhf^C]AߘO.>u~ۻKFNFa<}J{kƧogKwI@IF<^bkMF4bRws ?HfvüňEK)h*ֱln7v/}M;bZ _[% P1qϑRFǟ٬*Fo]_1o5nH}yF\+#3;m=W"r4ڀ|(RnNUťԁ2shAuZțhWd%)Ĺ*֍AIWO-\E֔ԅf5X8#*{:oYˎi$!$:!͕䈵csʀAL@ٜK\0wOx>bRGsbqq]:iB.5Ǽm zXzAiUkmژ3O eh%3B vVy#kQ;tJSxA/D t}ZB푳XhE=2wדhܡJo׵|yʖ:JҼSz7c>4fMWs;Dgn!bՀ|р{u 87mpRU)X Y0Y$R2mR,V>^[/檀(X֊sڔEycvݤXQ (ƵNQ;!a6y8丮ЎSrdf0#n] R &gBlϨ% x^6'S.n{27m2fܪ{5Z4|rI巘 Y]G%`ː"(i39\ddU(K_; ݠFjևGG*Fe{nqXXuUfrL@DM loCG[sҼ\89 !Ӆ\ȑqN+6Jᴔ u`S"e>CvTB神9(qxͺ4zaXKw(ITJ$eɐNϕ-he շ c6Tp=P[EZ K.._kWA?oG?ަ[#V)CԶUƋnC*{./Krdjp; 6YG װ9bm՟莼|?- ̄@u+jz>5y,"${ۅu7`OټmsB+Զ:ۇd55M,:kY3^02avK4j7kUi"\2$FƼ()߾yK<PC$ jUnGcCl͏v/{zUBҲzN-[!uMIB݂K.pa~؛ĴH=+ܫPC2#(1Ń{ZRZkV\9arBd4ւq+वwӧI.2G =Z(pPv{(Ʌ\]ɮҒZc%N$!UCg>?2+^N {arM\rQRi=x3qa#c\A .^Eg+:_<  Ml((qsL*^AAԝ{1"`>~\0I+b@Bu~DG9cѽh]:6@.F V8_|MQ4P7*W#  {Ar伩p̲+ MkqB;z,mD%#ȑk(Fujn+CDԲC9 m8Jޤi)@l_l۷c݌mƵ%HBVK\ٞ*t ئhwE]^=ɟ#84p{8IdsBta6s-P>G\q֢C0<%l1sH3wFE7Mԁ5p'7s ڨ]+^[ȧv\ybGMmt:Kʂ.K-A۩^堆6!SFz4 }*a9sZ@.MWZH.\m[J;JI)e;;WiE* *7V=UV[%Ȟ2M Vժ zӆkB. ]\QbT\e66߰3kg{"-`%~&T-ka2%{С\@s|hI-26^"D#""P{;ڽJ1?:Gm>[ҝVP+)7wüL$šǦr0ezF;$b*-ҙ9.2r#J.a\ƒc|~~|QIkm>Pi93>K[0,)#$޺2ޯ+haSgB|$, ?L}z@~NIOAG 33ap^?ݘ oi=\{ɽuEUZӨCDBT!lhZO3q2!vg'+}W_*yLd|9J`VžN @JJ ۿw ڊv:k0#ƒ] ufbOqK;]3ips slNܗP+4cܥ5GKZjggc5KT! PBT!elracodelangela/images/stories/food/coffee.jpg0000755000176700017710000000512111061563454022245 0ustar essawireessawireJFIFddDucky<Adobed       p!1AQaq"2RBr3b#C$Dᒢ“4A!1Q ?@ M@  P5@j8fXkM1n5s=Z#;-:O@+z voIprt֓8 ΅W0L+x sT T P7p'pA*ٴSWǘ 7{p e3pB.|s<>Os՛;g ]@ɏm_$~taI3GhO|-ltĀ:lOFu5ǃ$7 vغܿӝFfGG+F@஑5@ T TPlDgk]rͯ~,x_e^I19k3ZY{pyk?Ic}ט>ZI]x]EZ~{]4N6omfw%}Ja#c'smw< msN>=2Ӧ|)-h٨2k]#.}|yϣ:ie]`s<8Wxf9[lq<>'C[ę9[6A'su1\ɢ<ѼT8* * <K:,X㝛A G.0OTї2c=%6~[.di/$= 68ԗKx[?GHmYBcjV g\ WG$E~e9eh @h""gEM}}ieFi<޶_ ô'X+x c8uPQ@ B@;86Iܱ7b͡%xh8+d$ Fo@Yh5ز#"a=9dn'm+QCK,V5ˀhڵ΃iM:{=9Y]GPS[UΔƂ~Y%^kbeumԲ^](-ȈO'P8:LXGhnIU R ;r5"k\528& MW?P]hc~L*wP{$m\?0Gخq6.v5։0U!3xpbn̒bN$q!jsn|HhZ𚴎AG/SnU`@ 3tiҥNņК<-*#~&)EtS}GnTٗ\wky[G{O+"a :|ҁÜRv:wnH+ILDKv "{0=jl1ygGt&r͕#GLp7F{>՟V\S1-[]d\B.͹{Af{om*Y7]ZPFh\Jk}w(/ix@)Y֐h̜;B)?؞_zˮe9?+X?5P\.$kLE6];Iڮ"Ddugi#:N11s0|kH *D15rTuxDg;Ҳ=G~& ϮF6HY+ ݭp\T9,w(7)o Pʦ*˥rWDxxo+9Mi~[8C(?KsEk bn6󴮘e MP@ DD5-’4;֦RO=~P[)I`OO0tΖZ4YVs1x?&6!JDP @@QDAelracodelangela/images/stories/food/index.html0000755000176700017710000000005711061563454022314 0ustar essawireessawire elracodelangela/images/stories/food/bun.jpg0000755000176700017710000000677511061563454021622 0ustar essawireessawireJFIFddDucky<Adobed       p!1AQ"aq2BRb#S3C$!1AaQ" ?M@P@P@P@P@s5YV(W6D xÃ#a(J|EFD րրրրրրրրրրրրրրրX(9/tyo;q)3,rZ&+b1},seqgKܣO^'r'v s ڰҽe##/eCLX⑾/QW$qyg1+CI çugc| ؝ͰBcC"IYckۘTͫ8Ioe@P@yW&#oƁN6.OEJ's}wl7 HIx8j"]q]C VV`΀s{z޳gIx _'"1؂t^?iz/-9I#H:>w,.&^ 1V1Av?j\D _QVLesџ츛Ae!R1o5WEsZuy[ Y^ō4):@©խ-8d/qwn&Ly1(1$,xLGm9Wڍu-{#vyϷKYrqF<5槑{cy=WC^h lh..GR@TEDqt T[.M쨔m @س6s戟"V_$vvDؓaejKʾK*2'@,TұMܶijH#/`#TV2𘜡[jl<\bs ]lA+/yֵ ]b#n%7 i6oo!(bU@ez'ł!'Yl7y_Dx Iڬ,T8FE)2sJP$Ԍ &6AƜuUHN+PA"՗-: _DXP~OP*0wmg^.ᢧa` U*dncD"uOxٰVזdQ#殊%G.Ȃdd*>&T/ݷ,V{l!ȿJGu-ʴѱ`mA* VִT}1js&St@xS BYr~P7jCx$y5){M-S,H51?MS Zq`ȉfH]]Mx*F2ƒ#* ?sڜZo1usrX&A]$Tzdf*VE#XGӮ2$m>=G\y3^za9ulބ,3ȐXWASO*ySPe6c?0dlƄX'>¬; \fwjɕȟ-$kC2*`UbڒyV!Tu5"Bh04 8<(wzVX)TO0y}RRT+!dr0Vԝ{G!ÔmZ3GWr堓tF~U| dn!mC/&wnm"-#R6:Hv: %0"P,h5,VwoQ k>I F1ƃ[…}L̋NŰcmtF:me'V $Q !%4(B 04#q)?5zwGosTEi}y*=O*~0O,?@_xcs{t-H aWspѯ}l( ( @Z@Z ҧN a@-@Z-@Pelracodelangela/images/stories/food/milk.jpg0000755000176700017710000000741711061563454021764 0ustar essawireessawireJFIFddDucky<Adobed       !1AQa2q"BRb#r3s$4T1!Aq ?J@ A@T BټS7+1fşR$ H&}j)htR)p5pd,D;SLnw}KKzc`iiL$ k\i&㮀05+O50@ F+72/ uq;9:i7h.%7SWWsvG+y?leMIaibh "L;X;4bZ[5ނeK\):aw{P9 dm[wdu}TA-<]wm @@ 5sES7i!.{~)/rTP8^wZO {v$5kdL`7n@UTBA4;hA; <@ əzQPGt~P֑-K{dcp5U #β\3o UpA]lK_ 9\HaM)^"@0MCy{cgwQt՛\GO03N6X1՛ YG+9ٕ{ "Xyע?)[]Z׸RPeadkZADdC '6*'rH˼M˫qbCzcy"+ [_ʸ& fMJ>g?yK [I ~1}m!Z:gFwq Ƨ؋3GZ>Cbg\Nߘrv2\5 jڗb-⺮s-q#lVS.cՌlcZ=#=?цŤ1o }҃rg2c<%A!恠'hYi){| 0xN׍^?'%5u ?^ihk3sAI hPQD 6W-0v;x\Zb9[HZGqMny|~>X.3FS.ӽbSC 's7c$7J@ oggkJ5od̑q =K×X&1}Pi=pX޳P3cZu]%gAŢħLn`M{ô): kFj*MIMQs^CBMnY7abGp=K6rvvv-{dGP@ LlF=J3M&9XҳCXc}{dQRrպgWGtG&ڤ3Q.&yA3^nTJ0rgX[\w=PCrAtZFS^ o8颖!{vekIE.Qk(:܌k`ʰ ^AEHp;ӯS|ڽ}d:iۯ1lǿdW~~\֙)Qy.avWyDcr[<{t.vx`9ݡW7qz o+}[v ]>NRI.!cMnڅ_4 s+9FB<7R nm0 쎓21$޼u^e%sRůIygX{^7_+Bn~c5h\M!kemJHc5awҒ71c x:ى'ma<dz1lׇꟛs%?S6̫V׆R/w u=t/WU~b]I8}UsS|q9u^I;Yi]I)%%oUnWůZd>*bC]jDU\9v?照Qn*>4K;Vpg^߉gʷ-+F*bn_H~b)3R)Y\ y֤)>2v1jKI .]W1O<(Gv >k[;I~_fƣ] \nTl5v8֐{ .tS &JI+t0& i7h!=]ysҬAFZܾ̥5ɯ# FLJ)Jp@h(r^ТQ4Qԡ+nKk VqMpztu^bm\uV eN;u]$r?T ;{Ymn -{NS pnxKx/m>*:UF+F)TA]$TV44"Ԇ>8-tHCXƊN "Z]3ًB!a׀v9ڿ[@@ 95^K+İH6;Ӹ0pt- 2{ӱf xqkkbņ[r.tfبik|e ;jȹk[!u6ơd<v6Ix{:,'wںm@  9sK\B*()t) v߂{h>' 5ۃ/Y'C*8gO _-6cqRx<}ЁuVąb4f0Yk_PJ Ax ҋ$uP4MM@ \3<[Yҙ]lO*S)I6=y~s,5u*:ԫpdjA8(m)͹wJl )#zh]=$cʖAup ?gA ז19%'4=h67zcqHJRR)p&Q0ͤ$坔QA8.Xxv C>Fܮ|L#%#`%xH9ߌ(ul)) ykAP \P `&YAzIՐR59BԂ֎N43Tg҇HS+ Oo oS))Oc[tܨ\EHmiA6t=hrVG|T#9Kμ<(ūRnI -L*X%(r ]케tI ~)JDW!Β Jee'$Hh:dc=[GvWt*;{ RρHm@fCUN4yyƀ4aD$-(I#wp1SOPgK:_4ROW1ܾٓ=a em:١+ShRO`E[nIJ= ~Q`{l:@wJ5xm~&bL Jm>/ m\m@)&cqHLͶȔIq`XuiנWܪ,12CaŐ4v4 REq6aԁAIS9SɹqYvYn ~_U㴄ֵLR4-E8OƁ+iNaW6d<pMIO@UBGzI.+o޸.T"}Izƃam. ;}d_@Ųenl> Pvc %[e"m)BGrE=h2Q`; cgoy(U~FVmvE2b9x6p[ ƵLf|Eې‚?txYPJ A(`L^wLid8|""֘Qn):]O,ޘFMQi4O삾xssGU+}eMN@O((1'.hIŊtɠq1 w_f He }a +⃲/A.(+2ģ%yFƥK͙ ZXPhv?2KufCJ:4 ~$&J66A0tLb2uta!T Z$,sW9s6rRac¯C:&1S1f׋OnX`RHA{Ƃ_jj οqcSg'8Njq|$F|p$ɘ  Vn:6\b⃖7'wfo_z얂~|,A<~qA:h.2 oq~_ I<R{֗V{̇K 9[w??l72 mr,{Ug'sXPqnm I8܏+m_ݿ ځ^1R`wn߂H)hxPKP D}$HE}o^ Կ{Z$phEd{.l ;-ܪ~Du3oXBTI I*"&2fa ;a qe'<)?t*ChBBPR`P}<(9̈ʍ-mR [ =~dwGߵYC" )/f(q#AWnްReYL2?=& HBޚzN};:nWMsKQA#(=Q6 " dD؅~CA*4ڌ' "۹S+3:$9@ב,4KJUMAA-A%گ`V66"/d1cGǡDM #:?[smyW夬&-SrvBBHqPQ` IYp~|h? vu^!ıtn]h<+%1ꑋ_\[H.eP%{}rt,{r(^{ lOr{ub[/CY~)aAhCݷm7ە[K}CS t%99un!j BR9x(|:0oދǮ$.\?i8~(3ޑ X(z5}4LðW4;Bo K3E>?B] 6Ǖ]i- )xkQlA$Wŝo%ϋPN5ee/.,!7PGs?:o?wu?*h AW_{W!,ċ$~oACn xXRY/^m`FrSfJ A(>Jy36yQ-i*XXY*d2~$%= 8՛)W-_'+)xp sXqU>Z C־ny P[o2NIBJ FF"6"JcnR *rVBu6Wەä} KIT @`o176bXk{3=#Ic$%d-U;v.VjIMi[v$Z- '˲ƃB~ٸo\ qc7%UyvB솛[ظ~_ (7.5ȼIvQø ~˞_sC[RȺ\I ˂,#IB-=7C:.3ݏ3Rn[VhP2 ?4$ },P L'!/moPmMBWgWjOMFSO%ekWA 1@ ,嬠h iɛxnexq>'ey!b&N\7M}4v+ivN[gT'q߲$qã$L$e2Haq@W2BgK*kVelracodelangela/images/stories/joomla-dev_cycle.png0000755000176700017710000004314111061563454023313 0ustar essawireessawirePNG  IHDR^^(sBITO[PLTEԲ֨ݭͥɵŋђ鳳ӹ̄﬽qԶmwdڧ_ik빦J씔Xi۵\Bِ۔Tw1}Lh͙4qm@ZΏXBkio&d4Z>zzKԀ0q||mM^~oZ(/GoTI\-d?rr:τMkknn|`[,R&9r,n^{{{Jff!(sssXXi*4QQK~'RRkkk}zzfff^*VVttBBvZZlmgYMZZZBf(66c|O(RRR[))**"UvJJJ++Qw7O&]B*$LeBBB##Ij##M:)B\:::'=K!!0=(~%%3339N<2)q2>])))S)/G!!!3A~<tRNS\ pHYs  ~tEXtCreation Time02/03/06rtEXtSoftwareMacromedia Fireworks 8hx@IDATx흍cU;)L)A舮2 NYVgAƅY EŗmnwYׂ -d`Xp b{%3IfL&i=Mish5?m?m,^ia`hY^fX^e4U KѬ XY1JpXpc 1UC^RI`igP 'aG9 _:R +T~& U;gY]xiNVejXIvw;K,[rȟ#./)2[7\{>R pn[ŋdUU`?rT*a{2T\l>8K8|}~X{;oxEoo-Ex5d FM֊UIg.-E9"UO[xi #-"nĈqFwֈWhFh55҉DDNX<)$Gh:!E&$ZU)5RB\Xe /0N<Pd&Ekm"Z"ŵ)pg4=r~=-G;9 T4@KƑqZiѱ$HP8pMP4&z(A&Ԣݷ&T7&I4``$KM1 }z"qůD;X}k4|91MѴNS J"x o,=3Ǜ`u ` ŸNjZҚ ^UމLFS^p瘖`d-ZJE@ج&$2O1< g89|a,r*X9a2.ls5"k2ZhIu-e\x) 466vggl@HD-f0ڃq ;gkvCtFR:J*=Ҏ9ARώSQZOg/XP{*&YIbܒ]}:΋/Y%KY<R[KW(.HW(^q.,M_wԩSc+k'pkOaǦKxlQ^Q(߽;/8.s`؉RY}ǎ=)>y̨nG_%ؓYe4Y);W} en?t$jw=ʱQ߾%L E^)UE`n\ѵ ~ ޅzv Nl|Yrh }i/h6Ëd-,I( DnieѬh._-wN%_8_Ӈ !/oQ'mKزMu/;} _L 3F8H^!R_ +*Xtp3 dSE^; &*? bA2췧 'K$ >Kf{`)snWLr|Gggt"t@8d!ޖvxF.wˋhO *Ąc&ⵃXqO9;I/:Z:/M.9xvv:]MË%e! sa] dCkutwvſcorl06]ǝ_jF^kv9@"ntcGQw7:яNw/GݞPB+"_ۼmf/Ne;㝨tQ??ڂPK^f%]-uaMK<}̸?cuP ?vh7_F _4(P{ ($8`w&P7 xO]=%.Gʙbײ 6tZ1:Վbse?ttBdGu"FSc/Z%.3 _ xu nA@5]xeрC=5|k6^bcaǷBwtX=~&.pf6eDgAضՃ ´FO7/.hfk@|ƭE')u-izihg{]>Z$ ٩6h n mE >c\Cx.<Ϧ:Du/o\Կ}fc8d߷n9ao%GeektW 2+qHh"^⺛N9x?8ixq/Ѕ?clj؃S- Atwח/.i` <ܣq1ЉZ [즎 ku'/V%BáգVޅv- tf%ݼ#8E]c;_r!X/.|GW+# (!7ʁl!BpYA.^vɛ7ׇO˸i[0$Q`g`{ӁB4/M<™}᪖o^vc-Vn,8vl6KcnxB-0-]9ExEBfű}6fN[(%;5u;bAZVYMjԭ72q rgm7/Sd~ [D__v{bե[ >w]v$q'6`sŃڦN}b1 [;V˲7ͧ]LOݺv<]0n *.24tȳg? ::uSmXh:Ѧ'R`g^,hbl",Kxx N6`;ލ;@Drݧ;;ov$K%|Qk3T2Seg9NxRo"IaE鉍$Sķ&/ &ТA4{տyIF{7Y^5P\D$d8 yuq|߆S;N*6r#wv` ͋N!KeVهчĽ4+{ۛXR"4z"VMQ |Z|I0G&ƪB8x=d . b|k30"ᦛt հMNe=w!7W=E\W!b|?q6:VOT\zjԅ2ڙ"$u՗7^mwӑo 9.2yu+Hz$p)R!ǤR߿n -o]e``E/ ޻ 1B ΝXndR`7\([(D#U44x=~FBeއ,UڂkG'77X9Mr4ΩoË82H0g+:wל\11| ^97O\Mf~RoxB$:y\!h05k6:_M΂hQW ;v8Zc[7^oQЇ5-fD% b|vČk oB8tV7^hys/̙?IdyuH!8ʶz`Hndn+WVFrzR [8xE›Y07MH/-Fkrߺ O'm _ن 32}Q..lZܷ^sǰm|lv ot&jËJ^l8˯Ps+[ݰ%͎$bwu˖Ջ]65׉B{)끯4=g$:˺jq,;}rVߩ+6神< 狀4T?32+8ջF[u>6[/ȺB[Q<QWWփ1|+֣Z,nbvdzt6{ [^Fw $bxk>#{*if:7Ʒ ڠk~||Vqvn^y/{hNQw>5Ô17S4sQl'_*M^?]mV ldVX+8{|xܐwwĸʜ~G e>G)z64VQ}mj^{>+!{T1M_yX]+cs[8͒jo}JOˎ WQ8^<>ӭxARe\/㶶>/,Yvץʕxخ|[EuE1K,y[ݚr< ?+TxA\~J7Q/W(^pqoa3@pU?4 T<Ç=Ug}Wz,XއMx0pwx7݆\j_-bG̈́wf"_!Z[ꙋS7 TA|kK3?twׯ)M7@*q2Nwr,zm;37rM/FEm3U!ekDj\^qoB5z 92)D[S& oxAz9&meڀf||>g մNpcsiaZ(OhΡt>tLO瓂Ot4F)-6=<ۓgS/8#5&sOyXTNotXfZܐj:8R|:ļx&ǟ;Ef\Z'i'XF'AǮ. EﱭVNۊ\aL'NAt{Hȋ)xA{gE6I'Y'kk7=ՆB=\Bwۻ0}J2U*4Vk%z+rC{'鴒(y9:݈i^r6f55҅,1l<7ݡI|d3xMw4RSr1 Z/w[xש/|/{Gn=u6"uNkKn+/_beFduކZdCeBP=^\rl،#ZҺ 9O2(DM$ Ā3t/ op.qL /xVԫËow86%t>b'ӸӦ:J!Y>Mt. <-9b3XMO|K5O۞Wj$K./Z;qD<<>G4D b (f(\35jb-:7|>XO 4,c"$YXX2=|G鴖/ hId6Zg[^Q86+SЉbžbq=@A"p"Sp{E14\DQ(RN6/ő $ݿ*R`n|-mbZ,$H2W9xMJȴ.Ө )){7=놷nG?/~?_sVf2s4Z^S9O m_8OExebtP3s:2,K,+3['ʦ[j}K^^1,/Hʯ\񾗭.z033m/a1d5/ڿ[I ++5뒶^?vuq/o KӜw_ZȠg.iqŃ!3cj&X'&^ـS%k3{[_^߂V4{Mps{"q`^.{WߑL4qtJ\xD7%ceb*KXP2{|xnV1)` l&(Efjhɡ 036K*:6(0۰fۆbM]&#"5o<sD+AyW6\{7,@hZjz/ jT 4 :|@Kk1gނR, pϜІ2Wd^Q#gv@`K1OL]`5dq) Ī[l]f؞my޺K:o?11F5\^m^L,> /HbXnkYpL{)%ƚ6ol$#dLݰ†5hOg9_=ҴI 1[qu<2!x95h" u 6iEI>61r}4 hcFd?1F㵃%@bVsWST{e+r8ZLq0^=B_#%xh5-2SÖ=S\0+Z +-]` n=%%t"0[zQ)Co*Xc%=f .O͊" !m3K_һ{_IV܀:$Tc`Iʗ-u8]CҲB-g=>h8! .p6)2+ʕUԝNیbÃḰ#i€MjRd&dYseagx Ww|]! &c8x9PYxW6w-tjM@M<+!g;aEiKk ym { Zl*&͊ l2whn:5)t6q0+۔0K4 ilh΅&A)GfᱥC 2$ ĚsvG@CȚi{{Wě9 ?[]Qёvid>?niCflІ{6-D&U'J3&)X#jX_j.VakmXJ |As٢4qv4gV`xHamls;pӌ$7g ]o^ ^c.pw$zVoMIT' ĚNZzKBVqYl/#i1eo7kC5I)Qx7czBbIo{Bڦ r9ƶmkc%oEXzNAz;@^:Ӈyľ1mkA>6G}N:B[K4.Is(0V1gal v=kTur61Qʍz4) j:B /+ZۆY$33TxChWks[y`*>5lw-4Wd>Na^3X̂xeEam÷%F/j4nk'6o[a૕uf-4Es݋^(5(?ebc_ds n贯4 ] g Zm3k&ʶUm\CKTSz#ZVZ[ym:,E(/-dnZDtIYxY9+AK5{Q kV?KdC"/"[-)[ca6l拍ĸna2񲧑A($d`{?=cSުIdÆ:vW`e* H&)zu;MSTX{k.цFSl/8M/WL2p,hN!@ڭaᕭ(¾\m}6/OyiLn |Kl9Nۖxj346>$pkE6mmx`ݖ6<[E/VeN}Nȫ D/xpQVzҋ74{IUW %p 07՞$¥la9P^ Ҭ6yT8 Ȋm5;@~84 l |'ƥK7UV^x`@,b<]w_U[x榾K݂bׯov 5 U?^RTw[w߉Ǣׯ *=To QnzV2+DŽcB%I>9IDe+|Iby=*Wa#63vTa J2⼯V}F;l,S  YBWùHNZ4cE'Z'G煔ڭH륾jZ!w 9ty` '#='qm'oy*2Tb}N0F72Q! ذwyBl|p$> @XZ˛ԿX $I&\`ګ _׌`HEki\Bͧ(HODT^\R'KjƱ{C <[f-r_&L3rpR*䵴YIdy|>7 AFH>3^#?abd6&kʥ&J>#J gg<$F%&#w v`u+fa5o__ߑ_BBY+3& j0G2n$'>3,aEL݂ |"6RFY4Fw ^p.Ͽ7BtVB4Ƨm:jtHJp>>1Mԭަbwд>q;TrUE%Q8{7i/@8ztQ>+(^d*%`qQGx9 &aI%p)O5&5_M\_d5[/\ CQ ċk伱߄>B#-;-Ȍ!-eZsn+ $05ŋh{o;b; 7v&i@/?>U>2rFՃ%&u(d1HA;.Irᷪ,+=v}6oܾ;|kfGK[re1ZdqYhVt@7xq* (YZcW %d,Оm &ڻ Â.ϲ QWډ?6́unցnmuҭ~ wW.M373U͎’`` 5"F\_{eh2vo-;r~/cEU[ߝTQf%Ĉw^Y*I"A:K`n.4+Áfˋbuⶾy6Ss9)$~%$-LdLMz{w A͠ĤvxXtq\A0N/jbt7IZ ;ƻaףh*Sggmh!:P+r jJ8" dJ;Pu][>o/Lz sv{̬dh2T!iGռu gX椫JBu'{49$9̒#H{:[-$ }}^l nENUnx  .Ym=AX$cPeY(I2;{3M eZB)VqHo~ r*n>E!{*Xh< adz&YPں2[aLs. ht՛ pxm|IưI'cuթ(Y'y봉'd Ol]0t]djZcě c(`'cw6v%bHzEDAxJ%IQ"DڌٝKvZ{ahw–~Dv`]rCvڻ\ r@:=F<}(~v3VXzqxLD XNa ٍA0p`IgI,KL^?$0JrUbl8 մ5CA^3 "W<4c 1:sͱ*7? ӾӸ(۷اc^>ROվ? i^`UBܦ}9$`yHva!ۮ6Y'lCg*{}T+ 1c{WV`o]\`zu3158Wb;h h % {~-GI,woHe͝[y%ϐ+,Sk֦ޢ0 530` 0 eFR5<gdRI?ݒWu+ ?ɨL|n̚EY=*cǛh!=k 3h$|TH~Wı$ YG%dq8lu8F˭Pk@^4o@'=/} .2wkcmaǶJ 3ɰG5u%/Yziﲶhvܗ4GUηN}.E6>l ,z~Ԯ OS3QA6CF\$i\Ѷ|o gѻ>ׂ$шhQo/Y5ԽoPA"s#R 5뮸w>DTѽ4SmZ{gAG&r{9r(I-u6˭Z4 A dy1%S&DI  l850+A6B&clIm{+?7Dw٥CLe -&8 Kqu_ ]mįy۲&E 4BW>,wYr0)+rvY3}T2E*Fo>mZ}y:k `8ɤd = ΠbO.R^>$NLܲ$OQ/JQK@ 75dFGOenǸC--e ߢ=41ɕ!fPOyo^'Em鹟p]9(qX5a^o[Ro/|".+z"d6)ox6>hapFζXE^t \əU8(̤pּ.:gca&- m@epޢ 4ڃ_ l3r Cg f[b|{|Tn]Uܙ%X[\Ė֥lg&W{ ~&թ#酵)o`~hhSK7.z*~qomKK0pvfff?@a_]:2mm!f\ZX22WUSd\)(NLJ""DB@<:73330-*+(&&# # T#H pHYs B4tEXtSoftwareMacromedia Fireworks 8hxIDATh횏[Of))Tu:F'uzoꆶJ:jc6*o{v>W>~sNN߼ 9?!'uAyv(׶D?#k{dTAexM nL)X΅Rj"H:Se*t"%sBSSdI"^20+beYE^E5*{)*i-LIєxU1 cX.Sqƥ-XVC6%B)%ǒoJ-,Rb\uHU͔+j!E,!Y-#>C"WC6taUUYLP5Jh>EW<BN ;<'"I.,<ކtt;k (El@ޫomLyu|nÔ@}@Me>swyF`W@_{UKĭޞMݠ7 fR-8hb֭ /uttt<??Dd|@5;111~u ttMP.V4gCϞ 'dNw^hYns%_u*.etBtC7u,%>A/Ogcn>ƱNMI)d9t> =~30䙑&o`ZP6r|q˾_> k͖YP~ۋ<ٙF@9t<%cw:itJ6K**%cm2']x5FNܜqrJ.:8DcYc$R`>>~su:s{Nj-O I$ sHL;Pr\j99ˍ,.xU n>|؈ XTaϢ)RZ%r3N<@xy};ۏ'953x nv3ʸpn pyz^OɅHv8N/U6H,sy&u%փv(I&-y'ә,ܭc(]5k^^rIG pJZ(Ԟ~Pz?q( Jtif9w^2Izv5NsxY"W=7g2SYK$v23#K{G7N 1f B>&N +YoH;$qpg' 5=4_`s>Krm+cZM(G} fn<-@>K#x߹4R*ċ&zGQL8S!8=p@U-$JsK3ak[O㑑{kGz*Ç+E7pcbuæ/O(u?[YOv՜s4{4ڃ5A /OлS~7?j)׶.?%nLl7A+燈̔T/Q7+<*2;kyO;9}.u.o?nrϝO17CqTYXeePn%[) bi@(cJ@2 BcŔ,=uEKKUtaEUeʦV{ȥ[4 , :$i>$bAB)1뚭u$OiRIJHhd"UpVS[` 41%Je]MHUp M0B=KDi9!T(Q֤4ɨJIcBA 9eQYhbEI42}7JE+-Q['5ysv<;]P>ʏA$VIENDB`elracodelangela/images/stories/index.html0000755000176700017710000000005711061563454021365 0ustar essawireessawire elracodelangela/images/stories/fruit/0000755000176700017710000000000011061563624020513 5ustar essawireessawireelracodelangela/images/stories/fruit/peas.jpg0000755000176700017710000000435411061563454022157 0ustar essawireessawireJFIFddDucky<Adobed       [ !1AQaq"2BRbr#3$4D1!QA"q ?ST  U@P*TD @QQ%Q D@@PEP3w876*9:F@Ez+r>U *T *`M) cyw!͸V׺e$eu(C]fy8O);iǐ <ō#/hƗ{?a,TԻ÷-!.Y r0⫗8q9[9۵Gz}}wY?\,r3Mswˆ̍ ”%se-S.ok冇k\俴$6` rZv6LgUqzݰecI-+|ușuvcx|q,` `PYkLBY<\.;vDexb^)j5c?8MMF칖D[xeJ+E.ˡKH1%rUOq7!8:gzk5{nZp$W`odN\u;V:F =JQV UuD6SҒ+Ǘc|:// mcQc|] `2_LÜVyy{:K# 2osGSU^kܭ^43-ߓl7u9wܾ;+tZQKk+di80;s̹][ e 74R>*c,^-;kK#A"NW4?/3ogG.Zmcǂ5v[-L׈OE;m9XtaeVomO1%=uIyn>I뛙8[W V~lsiG-HEח%3]4!>бGeH $渎+ үaOަWI hXOV9fۚܮ*xQ&@4wq1&438;z~+m>>o3_o/dҵ&-tS3;׭owo/"NJ8:]ivg[Pld? Sf14 o4=.QnǓΘejfڔۖא4UGdaom6kH'Ǐm|ܟ>NpӑUn}1}'8N>dnlt"5U>yE1+z+Hj> 9_LN< Q@(AA(@@@@@@@@@@@@@@@@AH@A$ @@(B ?elracodelangela/images/stories/fruit/index.html0000755000176700017710000000005711061563454022516 0ustar essawireessawire elracodelangela/images/stories/fruit/cherry.jpg0000755000176700017710000000657011061563454022525 0ustar essawireessawireJFIFddDucky<Adobed       p !1AaQq"2BrR3bCS%!1QAa2q"B#$ ?:.F"Q@P( @P( Z h5k@ց5 h5k@ցZ ABh  |)0]82F. '&(-Zo}FEL lY!p8+ϨbiYu(!m}hbo'wa?3(-Rtֶ~)_HzKR˛GL$f5 qYi-I Ϗ" AR<,kwڤ @@^b`>N\.T}Mi{cYbֈepyI~WFK(V#-mx8ܞtrqˑ+$bZRwIIt䶮l+ N_ֽ"fBMkZwL *q7Gk:6&L IE!lo=vmq2+0w6nCCrF/ع0'Ґt~ݭhEu, s qbUafFU/*8TRl5Z"5]^"9~G>1؛ʠ~bZ.ª浭Vb'vO!Ȑ|;XԸ+hټzo/;"C(jo*&ѭ8ofO<%-:zO KFO^s6k^t8NcO^N6r[@FʢRrE5ab>`fc]&زR/yTVM-{Niv*ַ}†UDS${Hg)0b)rfȟ3tp # E'm 9%1x r$m*7r>{\Y޽~+$(e%Z7pxOXygWq>pm 9g?xYsxuicͣ_tS,[|k\I~k+;Y`L\,yvGsjkWt/\V LwFoK{1k?tݚWYgv&l#]7\U\cqFʙ䠀D(HߺoiohGMlC\TlƋ@P-AKPV@8b'N8l(HڍH]c'WHpe|;+G/nl Y!EVʡN}[<|_;8\\F%Keai#sw'4ˎk=gM?v}wnc< 2O2o/NgF>72Peu`I߭M[ y};ZNX$&}ʷE5tl팧:H#ktCUrC~m<~/P7ۄD,VE:kJ۾eVj{ql_cգR~fg',YhMP( hλGz8MO8xϤzebsݶd_*Z/t۳ RH'QK tbX?>^\$O?SR)uOv¢JݔWc`kFOr,ycu_mk?Go'ڌ.L%?E VRGΥ{$/ff'nή,i51gc> x4.,KV8X"*y  P(+z Pl3~TϗɴO7! .BIF^xEc~>E$x)?T9TUT@Z @PbገJJѫ1.i=z'OU{cI[9gpv3]ݴ^zVO1h D#BRʬD ;FxrwDR[-5{".Pcp 1Dȱ#P;z;ҁ_:HC^e0kt@ h ^AdE*XDgv.tMY 7 Xg3㖓ă66F$_A#-:02zjMS=/lI7ѯB[U86?pN6V-%;7.Dp5:u (LEy츾ȅG i6) Z$:?\tj%໋rǗ1u`m[ayśx_wq~yN>D편kVְo{WyqI:[VZ/@Pl~/.w#RWwv iXI*lw%ʏ|9.K|̆G@(?R߹&ϤtڂfrV\K$dg>ihXV@5Yq螈FFDaZV)gݡC[ ̩ӡC $HG!ѹ=HGiP,o!_?F˗_x#?ǙV}޶+n3s1r8gp'^G.B=mQk{2t-@@H*  P 'P̫Tw1,#1v@E^U[LzR[~'He۔n ӷqUΒmRu߉489/MT'^@+ELxY2.m)A{EcüY2m`2k0GOM:Ԫ7SyNZ[T6+4̻l, 4y̮">iF;ǹBLu֤.Xl܏1s@ɺq;hj=bUؼ2kG0Y{xKۭa̮IUL˄1`QTn@[zdmҡzdm_ų? 1`E ¬[dd:I@gPHPj,Itu TLeGS<Ȗ I.mn:*v=Jˊkyy8[\WKd%}}ͻpJ.*SIƛ4Y%ym$,%MZM)'RЃ*IfO3+бG<Х˗{ZDwfkVQtЫWUw'8IHeQ! )'CaޱׁJ|$r??!?!^<"[{mOZꦊJbGGMdo?۪Lw[ (-p':^WWy2n]YѮ/)]  PT:*04\8"I0@o8.܏!>'ns2 n \.K Z} _7AuE[n/b O[W;OrOWG#d1%`M`,l- YtFX0ržUDq+k==j9jo|K\񃏊Sk$zkJj΃R @W\^~#srv!Lha;JrA]TufwWHֵQzr;0\U:?hL.>?rڀRiIsyk Zƅj"P(  P@BЂ6=PU'  &X@* $ @;PPP H2 J_t (j@+Relracodelangela/images/stories/fruit/pears.jpg0000755000176700017710000000472511061563454022343 0ustar essawireessawireJFIFddDucky<Adobed       `!1AQa"q2BRb#3S1!AQ"aq2 ?Jɳ-|7pI UW4.•Ԏa 0>#G4?b P|/\wMteE!푝=]*7abmsɢ=Y+װI MV a9Li8*vleSenySढ़[pX+H's+TTvkH\ǐd7B;QUz*0[~W7B%\nhqkz+X9.m=mmMgljH%1]?PZf ֐EFocI>Adxr83ɸᔮ̓+O"[v 4֝^oirm+ޭ,unkkFhL3%h-:7eba\õ^59sn(Gu*fYʃ\$RwOu+#WFмﵥX1ɥ;h ݦ˜w͵5.4?JޖP20S)+wyk"ze> =Nu:;%gqp֕ %W"o~'8muGZwZbj$aUmv'8I[\{{z^܍[ 2*; 伂Ïn"՛Fn:,ZqT7eݬ-Sk>.u߶la1#qޮ?lB<2 +W\riddWfT[E -'VjW"eP|/^<Rbw>N_UՈlOkյ>Kif{1I׸nk̶X|-g "=kފE2˝mЫt|cf&B*\0U#-˰8w_oor_9ʰN`⼻L&ȲAh=epO, c;MGe˽n#V V̮/rYU׀pN+b6v푅U҉#*gV>(kA1ҺZ75]+W^/iL-&Z+O%$5PHkc]" "3,`uIjZev5GsOr8m;IS嘆 L,ҕ?V`FFvVmh/l@U2gAM&ȣր2(G'$ɎCt1kZ:҈f]5%w E)E\0zqu}LDuťs;)s{/0u^W}7 d 4\ۮ&2Yi|e[3 _g-q8^7l$"5vٳ>Y~]!~~#@Uwb&85ac0W^wզƋ}o#C>#Z.vTr2]štTlvhhuWk |U/IY{O *tAFZ>D˱/T3@xjDblq1@Ff%>>nGQQjaf6;5J<U_\Z1&[V.kaɳ;Ai~' ?wm+y$}\4Z''Ym2HLlkx~Noo>5Bk^..S3?s*#y kv;܈c-9Z c㼼2gt4lOp])4[ec`}Y#_=ZA[)1>`os(#SJW'BnȽs t̩KcCZ(eߥ"S ZӡXZI]Ѵ ^7h,5 >a'RRL5뢏N;a 3lZ۰2;b8e`?P|.sWPu73e ZYܜSPaUlqɲ$IXA Y;c#OHn3^/LLwW_qBՙH']A}Sړt|+d4dU@-('ȭGon[{͵Z+Rv`W6N^""""( Ƚ bԬ(WupH_apSʜ\vBT_uD'׭u.ZXOч2X#IC^nrBO TVEf&v8iGT98P:D@uV b&7s / i酘Qv;Q$mQIꏋx"p|o]x?zß{ ~+W5-lWGƽv|MYHՖ11jȼ&~MKVR(""(,^TGZ$'i :Y M,<),̒^f1Q^ H?(7hMJaW-P=qBX)JXBAJ|_(=̆CRWf( Pۅ kS̥ԴV(l uZĨʐHZ TH )cn-45 ҸAFSd+/j!-vRN{|}N%%7J.mVR֙"vdsT7O[j*% j:t֨./Uٮ!('ւ &#Juhƈ"(" D8pXsۧ~"m.@8r`ɸ> -)Ul"("bd1sk,l;QP {Bj]Z\k0P/S*A8jŅl5+*|u]")EQ%Z/q8˲.pmT#:qSHzJw0ͫH%n8_,oa[{(q|g'DzHCbOR QES^o6\:IAx*Tl(Z>Ru;{@Vw@CleK-.۶Tְ's-9t3'.amޮtDgS(Vt,ڕ}H 8Y6lɨ|w[:706dQ)R>[PX~c^5i~>>K\3=f.=ep ˂ԸuqIzus]҃ZrM?0sLNGҶǤ:X %=, y."PX=ԓ+\ZSDTm^{;V_D<9.^7Y޽[W)ۭºoE4ӡ[/Ez16<O:Sc}2Zw$>a^ lrD@3!h)) T5a i? = {NK=lJV:RAūY KOCt4ʣԡE .v+{ϒg9rW֬iʾ'4ʻkˉ.M#rP:bLj{f-_%͓g>£yF+f.>q%wJnͺРu]+H|$|D]359 R)d$ 7~R\7ɧ ,Wvs?sX#[PCgC(A 6+۶IM*_N,^xUgdrbiTa6IA3FIJRv*#CqjQ@EVץ1v 4ehWH'ʵڜW?1[*6hBA9 mc8Dxg^lYF.7CQqr.{y7UK2#;.s#6$,1P#~wn @i+[A d.YjCI:-I#KE`döߦq!\9w$弅3:C)h  ti٠hkE13޶r8~7m69>p)oeIݽ? M3 iש~܉ a1?Jmn +m܎ɺU`gRq+ߢ_+ ^?ZzVLJt<`AO5|jwYJ-~N!x^ 9XYRHHHmdNpPoկb=̰\pANM[A ͲP(gz_V\ 6TLf5t-鞵ye29k@J>d~\|{]?ԏ 7MVn;'f`e7Tv}Sj^)\+ kuxY>4ѳ^jH3\<\1RS~)$_)USz1<-FtSO6V-FjFs$c.}gm UX^[j\w %HT!#4,U. *' J)eQ-vxTAE :doiڅpTV['亭JBP*mmtS^\12JHj{v)V˃m Xiu}CV UܚiӊfSkVRIqĐujZkUS>epaẤ0]uD4޽唂}ժ8 tn`RbF[Yȕơ|+vyD_!ajOP߇ϙTM~nAcRZPm!C]hR[F3.+lqR<[XNnS*%"ԭngpR?"*ci8Q5JX2 |Iۛ6BZ=@W--P. dOζCgr[l#@&$fmW@@j"("E]ɤ)YR!D EoC1Vɮ!Z&K8[]h$ <۸8ѷ]杆C_-s$;&䅸tqnV2GEJæ]̏!eiKc/e;+ju`cokx.i/!S#e_[y^R@N,V7rΙ[EkYUn)*@WLAJ+Dq+ 5I--:StJ,|(QmVVQD^\F0Zq!I>6zjj#cf8I mU{~If"DE舢"J,Uq!sZ_2?qA>℩?Z>]nrU2=v)= 'ґ($+w։L)Lp*'L}1vCxm:Tgk7Gߡo-Kz-m:QDEDQkk^J"FӭkY[JYDQDEelracodelangela/images/stories/ext_plugin.png0000755000176700017710000000040511061563454022251 0ustar essawireessawirePNG  IHDR gAMA7tEXtSoftwareAdobe ImageReadyqe<0PLTEİjҮt̺꽦`4[IDATxڔA0hmU ċsY2lL6 "d3M~MZfbj\9fw8.{&W.v 0]ȏIENDB`elracodelangela/images/stories/pastarchives.jpg0000755000176700017710000001250611061563454022570 0ustar essawireessawireJFIFHHIExifMM*,JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222H`" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(yUdQEyk9"#8?ʼy O$vȘDbnEb[a`9"$ XJV5T՟B\5k[E&13 E[E]g`)d fI]QVc*KA{u\^7^"fӬ1sǵsN40dB hW;9kR8mEn̚R3Rp4B΋;-Fɡ+JǓꚊk~0ԵKqPq3Z1ŷFl#G W xG\t)m&n9WA n¼٤iSB3P<>kJ8+ƛ/4hf7; ©ɯ$,?RM#z)i VKYwpO5GK <)ބl75[ V/c/xrݷ2Mk.LY0+z`ӊ-¼K&Jm8?zCç^-Ej 뻦@2uy]߷y$U5'D@LDQ;)oWa\B)sMTN SHe(]J.NEKPm)*8K!Qбg`*)bgjǫ>N;~s6J3}M4&rw \}r?@}gҼV+YGU<{QCn䁻?wIMz/R-Q?zHq׊Z1P; ^jkZr]CO*õmBZLʤՔ!1AQ"aq2Bbr#R3s+1!QARa"qё ?tQEU◎Ay{lȃڏ&&P}$kըeҶs/+&h,Ӊխ Q? }uKt;.Œ}W?QVs&Բ,(Š(@I `Mٷ25S| E@7,W^Zj6N۞ysZXq,N3,:( o"e8a˱QD!Xb4q,Q7@ I>7ضgX Sk@B8লNԵep^OoJ;x)VZptĞQPSUɖݼNH@k91^(WB^jV> n;*I"[t^8H!nut&VoUs?>u7{tY&&mwsy ce!H<ֲ4j؄o O/=pelH9Q%6ؿSMK9p;dŲH"̭}eacXL_GRqV:No뺢ƃSxd\8e|TC-Z(EZ&wjS4=L˩;iJ+pU!s:hm,%a?.ukݺu=r:NfD\y|Ncy'WceT,RʃsI5Zڢrib~>Ӭk5ja^HOXbAI2$#uEqÒQ\}" H( S&:5_Òyu#k ep9?J]=LP |F'xOJ03;B{IPB CvLH2 ˈ< iLSuj|*10|Ԙq[vm+}*i\ `nG2WS̻?zͶ6o6Ŵe 1 矮+HiW ,/2ii5 raO;d=b4ZQũ>8#t>ҾNSlgLnmcwqͼ%:&<# FT%9Z^6H1RFO['O3S{ {bʾhnxAa7%ϡcFth4]A{/ L0A$Kob\X_\4iq1 `tkA>7 ''8o!wPx]Fci>0 FOVZk)0,,c2{՘5JTY$N)/SLF rm?WRo-ad:ҋ7@Rֆt^%9&Ex!<*Pp OuQiٶ+Mf<1 G&;;Z{36*e=N(^2%9ǽCom\FJ"r=v>=t 8ۋdKa4RauhbQI |w@횃 vy$(nfVTLf$`88 bIku-R=ؐ ? #^wV:L/JO#L:jѽg~Z𺜌5cIUbXVg;) wNԎ8q(RIE`S>g'Ku1A4te3nW1dvϳQQkҵCWL In-!>ѫP ܥe> MTu]{Rp d'9# 1ugTX5,jEFOMA?b;L |_Kz:GJO_ַ^v %{ PnNYdvkJFeB@=5o3xf X`K>rͩy2Wu{q٩4!~ҋz:,qɵ~.3xj\)wLY-fGu@|keZѓ[d2& $>C$ ݬ9j筡Z]\[>Hr(=ڬ嚼N+gG#ʣ2c€7㮠cF=),yi=>ۛcZpQоNĆ/79jڶV*vINhGE$Ta`30>+B `e7(CєyiD[A{G]ƅ@{ǖ,w`rFX=F`P]zQ葕?U&K!iTvgBOljEkw7%cNĮIJvbR`yI5|`Jݸr,R pJ2m.|lݍgZN܍ZvUS:,l|uT{ZFxMB]%8,_o]@~ڛҰYB*v=~竂\P|ynQ*r嫢tq!= &2N!NdfPZ2æsҹ*M)U{v%(6dEtFuAlc9M[EtS#rչceer7d1}yWhj?Un@qɛp8T0`I7+9s:RS6oLA# ,@jIL9BvB&eFwoP$h$F %FHaVo᧖S^Y1v}JOn2Ԯ7[)rG T6٭di_GP*\ekx_ڞ?^љ|K|l ?CNSZ/?crx9o&:SZ(d|aF~ZXgW BNoNhUQWk b$>,ijy:=6az6-W`Eˠ'$+x:JQ٩gi-# ]LeϷ}> PfV;GcztնYD>z'9qME: ! w=qA!]ݍjK%U+"$2=8?-jpyi%ZD#b<3Sp3I^9i;9A,&ɆS"[(T wZ.T$UKСVdzV2~ř֯//aE(cyET2gk|m}pVJ|6aI׮xsY,h'T'Ȑ:Uև{>kTYT~js>WZ7`}ffY ҝ:]lEaOD$^5Gj"\8ڷV+(=9dP&u3H馈UyK2\zEϬ< uhԐf9U85q4.B˵|UG gyn~O?]T5G2m: cw ^kTF$ޢ(wM^eQ. /JV0f޻Ƅv6k_ymQl+o tm5]Fc#KOB販-˟#mES䏞69iP 幺=O{.>H<4*@8eD7Cثɯyăwj}l/^xaJi'8]K5>3ǹ+dsMK>my7kDXfzZ~ =$@]O /+֗Q.{rueϗICip;K('[F/z=_QM C1F&Tp+VL|c3c14ò\wѼelracodelangela/images/stories/ext_mod.png0000755000176700017710000000036411061563454021536 0ustar essawireessawirePNG  IHDR gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEٸܮiŽscF<8D#\IDATxdQ P/TP&@z-@i=%|hp4*̋e\5͍k#b>ƥH(4 sL;ҏt^ww3* .a>l>%-g* ?<]y) ŠWG^Í޽%Z,8rwE/@'x2ۚ@ O%x,!=>'HOQAE\b;"E%w7<`w܏DpcJW4Kژ7;;϶˭m,E"P= '~rhkvÁH'Zu /t&Sz/zd)x2,-3g:΢2JnAIj]Y"c:~4rk}~;8f[Z9J}'|>mLQ #x}MI|{Y:F%\NF<ЀQMM>#_4t̂N^T3h3h D/̨ n I"`92"3R5̅"4:51/[` b>I 2&â[r8OH(h`=fXf_1B=4l#5j!LV޿Y0lAIENDB`elracodelangela/images/edit_f2.png0000755000176700017710000000326711061563454017730 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 16:08:16 -0000)hltIME戇 pHYs  ~gAMA aPLTEε֥uh{s{{Ƙ焭{o{kss{{{sބckskk{ks{{ks{{{cƜo{s{k֔省RwJsVk{΄RsJ99skW{ΥƭsZ{xm_!!dZ{Z{ބ{kksRބ!քJ!ֈ1pmpޥsZ{sB{1s1{c!ƌν޽kֵ9B11)kZZ){sR9^1BB)έ9ƔؔoRkB1k{{kw`J!9cc{)RBc{筽BkR!Jk1Zc9ccB9c9Z{cΌk ~tRNS@f#IDATxc`@pe;|vVt7o2U]vVF$9FމO}<̪GΟ? am;w-kGoxW%۷Ѹ|nܼy*T6 -79us=vL&4۶l-o ֬93#G?q$ę5ȶعo={?\ftM 6mnٲuJlBCW;֮[|jS]30.Q7pIL7ZtHyz튕`?βȟ=gnȼ0c Mab֤pcSg̔sksahhFvOo_SSS"n>hf{w;k뺔Y``b63t5iljk1GSEz]FUuMm]m2F,Ȁ0213bJu TVIENDB`elracodelangela/images/publish_f2.png0000755000176700017710000000341011061563454020437 0ustar essawireessawirePNG  IHDR D+tEXtCreation TimeMon 2 Aug 2004 22:19:39 -0000tIME5 pHYs  ~gAMA aPLTEέƵhxGx`Zsu{ƑssVJskkZes{g15wڄg{ƔR5RNNmF9Rk?ZBR{ތgBkApõRDJJJx-RccGkጵ`ew5BBVRJ3BcZkR{{uR^RR{έJb}o6]RsskmƎ{ؔp&s{qggw}{֜{pș됥h6Js焥y=g`BR{猭ֵZ{֭cZ电\-ȥXcwk￲gƄRsƵkŨbOOOkZsk]Ng֜Vϐބ{ν֐{cJ֔֜l~֥c{ڄRwޥZ{ֵޜJcZ{ޔ޵cک⌭֭祭Ɔk֜֜sk祭JiеtRNS@ftIDATxc`@*,>;ǀ|:dNF S՟븼gƮmu x޳]|d)&O=ybb :ǢE;vڽssiM5߻/dm@&KKKn[iɒ͋,4u ٺuHJUf%p^zSm\v * fAE,]=.*1}Ex7(g:ΚTU4{{9MVrYͳiETI{'XMH>3fwA y===Ej /i+,մ91տ ^u ]eYZq/zM-PAzcSyYYi|K3PsNQQkqdZ~IiYyYEfd>( rt]r "=@ tS\5Rҽ32ͳ,X@ C]C]#"cmbbiXh/$eyYLLu-,uԬmlX!EUIUFQM]CSK[GWMQDO 23Fd’9yxxxYpF&fV6VVvvH={n0IENDB`elracodelangela/images/menu_divider.png0000755000176700017710000000027611061563454021063 0ustar essawireessawirePNG  IHDR,tEXtCreation TimeTue 25 Nov 2003 12:07:12 -0000tIME  ١' pHYs  ~gAMA aIDATxc8p`hR})NIENDB`elracodelangela/images/banners/0000755000176700017710000000000011061563624017322 5ustar essawireessawireelracodelangela/images/banners/shop-ad-books.jpg0000755000176700017710000003442011061563454022501 0ustar essawireessawireJFIFPhotoshop 3.08BIMICC_PROFILEapplmntrRGB XYZ  6acspAPPL-applr)9+UxrXYZ,gXYZ@bXYZTwtpthchad|,rTRCgTRCbTRCvcgt0ndin8desc@ddscmmmod(cprt-XYZ xl?7XYZ W:XYZ &XYZ sf32 W)curvcurvcurvvcgttttndin0WJ&[P@T@333333desc Cinema HDmluc itITfrFRnbNOesESfiFIptPTzhTWjaJPnlNLdeDEruRUkoKRenUSsvSEdaDKzhCNCinema HDmmod!WQtextCopyright Apple Computer, Inc., 2005C    C  <" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ??uKmɧEGW?%i?/B'/3.uMgᎭI|A_>k e [Omy&RO}{b%'emn-g|TͲvO4t# qb/CՅ{Z\wscw-8?QǚjW;lX{/-<&?kW qy w72zଟ-|K4^7Vsy֟ˏ5~Uf-Ov7,ySj^jm%&1O\s=qy/͹u|/ K97qnM'VUacJ ˪x.~*sĚ7]1MZ}FTy6?ucv֑|8׼//>(n"|S^azbuv6-7<%c)5exo j|UMg伵v0zNYI_K%_:Zxٞ_WXx{*߯9c kvxǟ b7>Ym<9?q֓xjM??R;/?`b? k=6-o}vGv_+Z7J4!_ZykZ7Y?;~2&caзnVE%k>bo_U[V4#QIZJIҫLh?ྟN 0ڿϾ? qZ !un}^x6-?ė:^[M:c[ry/'\'3Pay v ݯ;rlqf<ֲg)W㷉|8lMv-Y<:yMFկ sBV (|Gio %$Ԭ-K?\+ׂQ&uOуJQu暪ӱ_ß_ßG#ֻ9+I|_M9+I|_M7Dz=h9+I|_M9+I|_M7Dz=h9+I|_M9+I|_M7Dz=h9+I|_M9+I|_M|Qӟ<*1O4^|OmheMnWB<~?5[ao=<wyios*ۯ|xᖐ7iZl}F͠m|-Gg>|uY7A­ž!epyy_-]XҺKm>]TKVE%/ sBV? sBVwt//a>KOv.9T/w~co:#5mQ_%_^,ѿRk[~onO_ß_ß߰Og&>|WVlj<%Y^$P\4IuyS2H~XwG;?%i?/?%i?/hZ?G;?%i?/?%i?/hZ?G;?%i?/?%i?/hZ?G;?%i?/?%i?/hZ?Gy'Cע\L<'O3/K/WZӭ}",xM7NO>yoMGdw/o\XKu/]w؏rٺuWWnͶ=~q 5jFΊ8jxl|dm?e#W|1G77Q|֟IdCE,'4ݺ]7*]MiEËmc ${ QZO㍼ە:N>gO{g4YO*O7kߴ|&Ԭo49a$@sE*/ E5οj_s|1Cέ}̗~B}/2ozRȥw},q: ;_'4|%ǿ_W^|LO{o$jٞ=ű|LJ<wzφ<Zwo4*YԯZ+i7no%5mRҤ䰖o/\*eLe7&%muiOsqH7Mi}}WiLh4oȯ,WcnV菃noF[JNշH|WbW~_sX'}M06sGkD?O/97熾6|D~x[}O>C?ٮO.ES¿߰'¯&oC>/?t~$kF4W[ ֿhO^goaYs~$_Aßs.j^(iߓmĖL1i}l)Ÿ 5o7#Mo_M=>][T[bfheCgm_cu~goy~W<woݠ$o_O>^#w.t@iY}m:"DUb?ޗ~Zڗ!k[BğGy̶[-~GqIE"}ģD>,|;|A2h-!|b&uGҥ%S=ߛu^⎕ ~׷z= viWwjxoO[Zݫ;s-žuC]i][ǵ̐{O=.]FV[8Mϓǻmj\l'χ>"?Nt|S9MS yRe~V@#1/\}}M'_O_Ƴ?_o'[=R;[!u[>?.ǃ?d5{^'YxM5H-|KC|7O-spW__'/>n5$^x)ݿh-.A5dž^ X,RCm|g, vyo:$m_kkȓDhO6Of:0$E-~3xĝB]E#>m~y5XlO[?ODZC+#o|e;ԗ]^K vqIB|SO1Zg?%񵎽ȯwŬumv[ߟh>?| |*~ÞԮ4OZ-Ǜmoe 5}M'hobhSG4>sX'}Mm揶'4hS@Ox:? XO8Py{?Om*|9iS}{1"_QK?Xy{K6)^?|ÿdv_'|qy|{>$ V˙ ^_yX&]LpcK4?>ݛ>ԿKR~:qo w`qGkŲX?vn U#Xu;L\__  i|OˊhmgzV&WͼËSY [X&}y*E;6kPGO# k~?o=zƭ Hw9GO+[8&6_OҾii_kt{r/in$*ޯ%[~VBv|7ő?տ􆾳1c4.˳^U' .Zٝ?l[_E/mu۞⦏aoVK7K9.{7?}YTO+sL)Eϒv>.3漪VwSگ_ٞmo^*{{m X=~]+_?~(s/l  I^).?5v?V>*n4}ѮgoWKe%wno_OjԄwr~xUsOǷ?|6Nʴ{k=/Iil vTjZ]ExUIKm.^|c5?ݯ%nVI{?=+*jƟc.4oYq?|B׆<9kz֗ h 5dfgfc.ǪgZ;K?+6 K~*^h:^sV^/;K;w4M{;;ڕEߍ6'}>O$0kfyt050TqO(+^7ϊR=ơ}%u9Eȼ͈OVWm)a?}Iwgמ!P:`🻥h&wjI}MyƩHx^~"Hul+36O ՟G3#/ΛMwD/}do,#~Q7?g)Qi3|a#U{KF۶X_~~|@<'O/RoO x_Im'>Uo2 ?Mayf[iV_+v~o{G5'Op\*OԵ*Y=Eb9~U?ѿz׎xK'״{o CO%wfdeoq"׾<4o?ĽgW<[7'M l|4=SCixJPϴWXE_.\OOǀټ%+M>RZmɪ~< x+$簺_6k߳t+GoMηM%}ؼۿ?mXך/i6zږVWo>_U]yƏXKyW|IhމO?ugxy??I꺧>p[/nz/?ࣟ/A>2u{DOh^Y/>_9G{~ȱ]ChrOV&Z~ |P׾(|dKm^w}*:*t_*=\~7<%կ4ܽ*2,,[nVX?~٭?ZESξoJ+nj῅I/m}lo!Vm]Vz'Җ> x\?/&IжKxwIV/;k= _3]ijzs j_q@l?"V~~W~w/O YiυZïMGH[wWQ|wK}Q3 <[g|Q^T5Mzhx|vUय़0M~$ț[OdĚKۿr?kk6_(po*7e Cͳ@@'ξ F[|/wmzͷwzڣg>| ŭϦg&LY_Z#?jR'}MyO|K@Ex/ Q4Ҽ/k^ԾŠT7R~ݑKwfROc^Gmz^!&yvpͷl ٯ??7yŇ%GTViY-j<4M5oҴJ&VVLP?o _Znlfչ4]}Y٪ĉ63⇈>*ZATZ,tO"g~U KZxon ν1ysJ?b}C|W7ės"RK%l+j߿\=K¸Έ'?{qQ+B{yoJ>,~sωo[xMb۵[ogv|Moپ 7%OrO`7ݷkn>JşZ~~$Rԯ<tΩK_*UooG<[l|K!kq[Cޑ$_v=oh |[K޽heեV۶ w/ݪ~,|M_ -m',,nՋr hqmE7Pv\oz|ޠo9űEd6Ǟ:Nq.~џ|m߇ou]Q&ߴEw?PGyiG>1Rޯ E:W+*? +W?*'9}WojmwnZPk~Ҽ_O:PNxGi?LǏܯF͏E{?:l?|Ϥ/Jm m._ h!(/?yk2 V}wK*Q .**|5*R}ҿ/؊}Na5;;_aOu?\2̾ދ'@"x^ ^o_Oj,>D7ҵ}- 3xcjCR0gԧUUVbǶOC8f Kln,K՞hRM\Bҵk '48#?fi2; !v,I뺾k9gIϖVJeD|N'*XZמޖ{wgÿ٦xRyզ 垷y5TVܻ7߅Ko?u&q%4_1/M4_mXC]yKV^_-c/?{_O9'8-ƴt\$~#>^kL"5SOˏFTsfO i.q$337VnoޗǵJ M=E=_ȃح.msTC~߽iSM8y81J IJxNKkYVo%w_5Y}/uj`/n,? ?L߳ĭ;⿄~#E[mcV݁1e#&֏2x:*n3{nv~;{8nm[H_G^#>(2r:em_CkaEC dt⾪r"?o^k~2?ծY]j>=WiXwt3Vן/$`ޱ|G/RwWPG2rO%żRϹ<G/^ -ca؉:bz>_P>;oz|ޠ zW2|<@_l}{//m}{X|ޣϗPL~󿊲G/kޡ~U1Ÿ܏䬿>_Qԏq\pĒOKpro⬿>_Q`ޱ|G/_4A%~U;>GY|ޣϗP}?*_I_/kX|ޣϗ$J߃x~-%zDu|ޠ z>=ϗyz-jA *3Eelracodelangela/images/banners/osmbanner2.png0000755000176700017710000001004411061563454022101 0ustar essawireessawirePNG  IHDR<虻sBITOPLTE}}}{{{yyyxxxuuutttrrrqqqooommmkkkjjjhhhfffdddcccaaa```^^^]]]WWWNNNEEE>>>7776K pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxڸ=1^M5S qtXmK+mN̾twCw;zz@C=ޡPPw;:ȓ_UFk"~7bAq=BPjl Kfؗ*CBڷʊ(UQ@N+a~M>CMwA;R>TYfTՄU'U:^jTYӹobJvkv+O6(C3ߓ s+H@bQW/_ƧFɑt1;'߬26;]az{3k4;IN?MO?ߜ孆P@ dG{PQNTҷ~M~BIv W J롛,I J}UM@6YuA$`%b :?'W=OR$2Ђ s.s7 6(X*(ӗ$j$B|aktB@(yIۥ,c5Meل!Oᰫ3:-*`SZƢc8YFsEa8]jDo N.ORg)IR~GY_}~4<$ w`ӴUp< U@SY6'Hk ,U5۔)=T WFAskXgdq:ujs HMtb{#:ϻvm:{ˆy68ԃf*rx05"Mh:QQUյ;"YاB&`ْ.c$<19Q& {)N=*6.PUND>h{z JEa+Jj[j ~x|ѴM:KϩDYdlv 04+R~RaY8G5(Aw THroCVL&L!$c7Lz6 (=q_-Fep Z$u$̾,c Y@UzYt,[ G/Z1RoH#TIVnOO8R5G F_سӗ9Ru_oP 8w'hc_IYlm\cd]"wN^V2˖S_::*̴Q&P>NӶ'rۚuYi@!lH~ l)eiuooB[Y4o^yoŢ[@}Wngj ~aϟ 8 UmӑǾ3!4K+MlA^kO aT ʀ[MyDHYjպ{u(4.n *?jߚTtqn64ͯsY av-jrrΥNYu( y[oQ6T~: k4 C춳|hjͯ$OA[ Py[7x*?RΉrR6,uKx%>75JzʶܢוwKApZ6NM}wZGj^oL@˧RmI(9+pQƵo|:Ҵe: rF]R&0[y6dLS؂)TF5 * dj*>ZF+LEM.oX|~Ψ!5Oz?%F)x}Z4@ ΆF;Fc5w JtHPRPfY}7So@VVj.?J٥rP[CςL}l.'V0fX0;pNBΥ9^h#* xk7tQgmCyzU'P oԋ{#u%.6TjdPS1 j'̈́-B(=q .Mk<꙯PC0MN]@G&ƚOF%V*8J(MRлO@ rys *n'!M%*(N=y|]7 CpuҠpܟp9]J>=]. Ft%u7]_P8A'puh:&Ъ>2tNmCjÊT~c;Om^C-WOA.Fb( Ց 5PS/P/Y.i]jҕ0Q{_*݃, ԓ6g s0/qoCwbѱa,diavN`50CjZǁdˌ}4@*`~sV(jګ,uVjںl*_O>Q9 [sZDGa#4 CU_0$2/ TKsH:o>:A,c X};A*nXA_Q;GP `0H,r\C^A(K&|u8.%ɳ=xd\].a>L!b\m9d%ΑREʺbo@T8f+nɤB2 bЁYpطR%ʐt+vxj w:z"#$F x>nESw(i䔹InCMξ}CGsf9odoD/FЏҲM_M//\'wN+c nts=Ùv}{#ƩS"ϳRuz@e',zC`cG%|ٰ8@e8z@e|? 3d} Oq?/;]t^S볦Q;3>qϽXe_83SKNd3d.U ,t;zz@C=ޡPPw(?V& IENDB`elracodelangela/images/banners/index.html0000755000176700017710000000005411061563454021322 0ustar essawireessawireelracodelangela/images/banners/shop-ad.jpg0000755000176700017710000003261011061563454021365 0ustar essawireessawireJFIFPhotoshop 3.08BIMICC_PROFILEapplmntrRGB XYZ  6acspAPPL-applr)9+UxrXYZ,gXYZ@bXYZTwtpthchad|,rTRCgTRCbTRCvcgt0ndin8desc@ddscmmmod(cprt-XYZ xl?7XYZ W:XYZ &XYZ sf32 W)curvcurvcurvvcgttttndin0WJ&[P@T@333333desc Cinema HDmluc itITfrFRnbNOesESfiFIptPTzhTWjaJPnlNLdeDEruRUkoKRenUSsvSEdaDKzhCNCinema HDmmod!WQtextCopyright Apple Computer, Inc., 2005C    C  <" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ??uKmɧEGW?%i?/B誧#ƒxKw:"n/+|2|kOxT:hOk%S= ̿uTϞO`fSKoC:Ws:WomkZ7-mk?#Qy̷֑1^WkDžOy^ ګ/_/5_ßyoomaprOhcl]?m?s++;Uī'?BЕ/&jO:ֽ7_AH?ࣞ\1Zj|?n[*oߵ|I5%KN|ݸiU.^'S!fˏ B//m  T6A3_?u'[ ?3g5K"oJ~J^xG,y/<7@wA~\mcĚ%ֽy?^mɍ?iUf77wK~m_x. VG?أ svX!x?Ať ?&zK?gd˜?,k-cI|9o,6N 5 sBVYۼQ_M{j1AM_ ,>k:Kt&i{6?n#y.TqwS߈w;^{ }RFuaOYA+[vW]qGMYZ)hwRk>`N-yWsIUe'cv~?b-'_5m7[ 67̨]v9+I|_M~Qτ 'o{mn]OܟRγopn~hZt'4'4^~o$ºkj~ ^ll%_-m /BЕ/&BЕ/&(xœ|>1h}4A~ߚZ>&G$Wv{m BЕ/&BЕ/&5|$' >o|1gέ-II5>}BKOw|y WGյ4gյom"o{O!J_G!J__0~T?׿<}0o%l{7*|?ns IԴ=iԴZ)}ҫM_ß_ßג'g?i?GC¶-υ^Mޅy~oޞSŷ_ 7ǞTv7ݳo0\_9+I|_M9+I|_Mbh>ڎ>j_?~2- XN.ҷ;_W~K׀,|%~~ۚ-[Wڝ_~_y{#^tV.J_>)YY@_9+I|_M9+I|_M7Dz=h9+I|_M9+I|_M7Dz=h~>:8-Q-U&q)8CFIEvOMl_ b|hOSv\g1?쿅' iY~^\[G=߼o *%JisQ7xdI__湋xTv8d"qؾV,{jIokT5OuDOﺿ߯Exwt?x{>򡷶~O(mϑUQy\G|ϓIJַT4:?n&5O&)ye n?3VrU}:>~4O;I j ?OGد=Cu?_GfǞ;O :+V(>yʿFkI#o5o~o~ |B<["~Oxh^/)_Xa3Z3m"n?dXFY~\s^<`Zz˖]Dwׁ>UyxÚ~Ui^Ϋ*)_m~~_'/٧mAմߌ \kzeu3|w|okNE_ֶ^zMvbkKoNn_ cව5_ f?{Þ$:&X-uee۲-n>_/7GMWdv׮9ERBP4Eehwܠ/[p~_OZ}~~T8.]^eUf%em̯fO?F^3;Ejbf|{wo~x/k~-oo꺷OjZmn5m;|e-</+ ᦽ[߲/7¾* &g;TRG-|)С_;|;kZwx_Dɦ#[#]s^5 g9͵ P˨M3Dyy_>c>χ?ý^J׭Z`mo6x_>o<=ige.g<4֭CʊIVEAᯂ?~>)t6'ߴ63k uyWO/|/5 AA<[|A>Xj:Isnc#Eoxk/~g]b]&9z_"_|mW ?N?Yl˦~ U's>1|A_x6@30Xu$hy$~ǿ|e :_xN{hK6sTsXQQ}M})m95}M'}+?Bz*ŹxN)=ĞA4࣒I/{+yPxWyImͺmm\_ŏSϾ?&k|WZwG)_j),v[[ʗgg[)?%7t{**$v_5ǃ u7±YJ_[1Z$sn_{s'X2?oz?ß[Zo?u-CӖ̎vsVV[W>/qR#JϞNj.vm+^,tcuNU\*srFR2\웒󯍟%mۛ o5.~DIrȤ_|?x/[h>xRD[]cjߏ7𾳢M;k;OmoMb7ubONUeUnS/]q:x|҇!I҄Jy\5+e[.?Lk+M&UZ7Y[_uVXG7s~x_b=*l_d/ViGsTho5KɼG?.Qagآf5E1+?"Ew}4ۙRK?>&Zul/]W#^,;/U| UVfp%9mr]G/D򡶅fbtK8|eկr>W>5xKN}jNoDhy#x&[; ?mՉkoxW#K^ $nuxP%-FTzҏ ); ?rΈ4Gc^EOqu<;joxiq'G*Ķs(>61+c?j|r@[_ ]fZEy³yvT7?i[XY5+7nϒ=PxOÞo_ҵOjV6!|YJmR.ǯEP↗Ė<P-U 5|g~.c|N]/xz=LjmgeMӟۛ~Pȿ_~)J6lV ]߯W'oe˭uk/wmfdgWڵ f?_CÚς|S ?KVr/o7ŏZ2x׃a-m ͸[_2|~jg~^Xx7ᏉxYe\i!B%AWmg1c'G ~7n/=poxsC_&as6BO E mm/iυ< h @Qy>o>۾Zf?O]}B??7č{A>![o} "V۠xv0-^5>1KWK/tv3y_s חj_^\Ku:ODPl4X͕ݻK~ 4>t9 '}(.oOj@qVxOH-KU<%Z&i/iuOXGz-Ug-ַDբY+En=gG|&x +kE/?ǚ쇢|K5?ۻ7+3׉<1+^|[Oqn^Cƃ5^ дo xIeam${tmsroO7@|Q-exWWKPE֕V{ΠGiqj_EhS_O_ $|zoW|pkl(9qNf;@s%4OHBףyzY<'/zoE Zo+ZoyNEn6װey`>er_~?Z_p?{\_sko|N$SO:_5nr_(aԾm"&77TZҎ_6?7ٸ?>{C=V-kL\>ؒ#e~V~N vy^nǗw͜Wṁ˯7&GWwq)nU>-|X ܈kngҔ ~?#%/>-5 ={Xi,f_xe_Uڑ3?@H~%|K9Xӏ|_nS~*|Uyi8Kip,~Ga o?~GkNsyll& # '׆{]˟Xә/-/ >2ZuIkoغxJS{?G>{ß[m޹%E\ *ǟ/`zish>"]gy|Gϗyz%dž}3t{?7EwkWޱ|G/kޏz|ޠ z>=ϗyz6=`_>_Q`ޱ|G/kޏz|ޠ z>=ϗyz6=`_>_Q`ޱ|G/kޏz|ޠ z>=ϗyz,xC𿄣ROX.Km~[+Ք_ 7 EkV1G>[@ֵMBMTT+iTɼYooۿ7 {_+i EsV_x)I7}泗Y78Lm@?{Z_*b|| }g%vx^_ |7 |ug7:Ff2CdO"}ky{}r}M -jA *3Eelracodelangela/images/banners/osmbanner1.png0000755000176700017710000000750611061563454022111 0ustar essawireessawirePNG  IHDR<虻PLTEzm pHYs  tIME2U IDATx :(+"hYD\ :s7gN 1̓wKRB |2 P @ $H5H5j @PceNП2TTUb˻FI̓dPʺ#]F&d#B85Ey({uf@W~Vٱ  {]V{k^#5PW&$I=SlP `:W,U;{E.em'_ݞm{zwЂ Ը(Y?ԶJqqwВl{KgFLPGyrzCxYQ BUzCI*^FKP)Q{ATO `G.[xF@|Vת)n7aٲfyz$_TK||%( ϶PmQuiH5DZ$a!֨-}d"[(*ۦX)`Z&L5Q[E8u]m"25MZ*]"UIycT~Зc.~fg3e#݆9Tr 88;G 8@z6Vb#I8r.;p)jWd\#aΡ&6^IkJe-,G9,UpH6 ~ą:+qĢCF x}j꘹JyG4s-h;!(1e:ߧ,[NĆ+Um}r f2@>8NZ.iWFayҠǛ䣳wGP!*:2D ꠣ#%hIBD9M1*btN@/-Ω9/EX|ZFYVEU9.Λ%W +#u,~+7KwNx:µ3DɲNX TOAh߉Џ }3gT4?i}9Kvj'i't:_BGƩmѠDP*Y\Rxͩw>J#T4?i h, T׏>թwꏏ[qN?/&zVL§i_J98JvRF@S P @ $H5j5 5O'ye$+ȯIENDB`elracodelangela/images/sort_asc.png0000755000176700017710000000031211061563454020215 0ustar essawireessawirePNG  IHDR [AtEXtCreation Time - &PptIME 4 2 pHYs  ~ PLTETtRNS@f&IDATxc`A% H1@*SF?XIENDB`elracodelangela/images/logoangela.jpg0000644000176700017710000035656611076304162020525 0ustar essawireessawireJFIFHHExifMM*bj(1r2i ' 'Adobe Photoshop CS2 Macintosh2008:10:18 08:51:26&(.HHJFIFHH Adobe_CMAdobed            %" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?]nCzIse7>[]ߧפӮ2zs7{M|Ϫme5кՌNVE൯p4\%;e>gYGI2#Ds6 2 4M?yܫŴṧmkI5}C8^NY깿۳Pkz ]]Y}^~f1nߒ(_o .՛g3.\Nܫe5{mm9Y]mQK e\]cۯ9X!<ˋ~]aؘ:& Av:X=[_]Uc5[=:՜_meוkWO[w=51WzU_V,3]Jfie s?}ljUv:g޿N/Mݐlb]fsVݟms#Asr?kk3WQ9/l`4Mu>SSq_F.)+&qۛmowe{eWkmOGs8'(G˄~Y Fj8!^12^\}oLх)eK>`u8u}O wfb}[¯t 3-$Eo{赟z1ͷ/_sh{n w733-q7Wݟk{kC&ʱWr͟Nj >) ^-qa~|-۹3Yveq<]Xس[;D1 z[XTT6KUz.}oKeYqr|Ml\3=1.s~u[3'=W~}aZ<GbPCKl}VOy?Ю[WzwWwHјnuVT9ԯ)kF9Uǧ qJ'>QFVu0]mMnjb0>eLjmH/Z̋ gunnGSc;zg}af_=K;*njUNWye{}6Ieep<"FY&x2vj}[9Y裡^暉{FXݞ,{Ts˴bh74nfqs{ubAks_:ُèe^H~ǩcqַҮߴme.}_6p GpcÏ dxpN1.?W_Oܟz~}긽[uKα_m6͵YU;WJa~gZٗ{+4׿f=-+ѫzUWEY]lիZг7I[omϺَ֍ C?.'QG.ܞժ5t|wbUvVWFbgТھe Ȧ*hg]ncVGD/e W Dϰ]rAPxp Y{f$`d͘zGیcu2l?Xxe ˈ}UF.;]Z)m~OlGU~u2m8aVgu9i܏g춻wCc;/Աg'-ROrֆϮHh-ߖ~.o$FxcxxjP/ܓj.]9Bq*5vM̲F+MgKfa5VzG^o:[n%=IKHo=iFSo՜W:66KٷX5u8veRv5VG5;,(zL{Lv34GZa}h; Τ Vx%[v^NOwҠW]X}AoB,|,eflsh!cǧԢ}vՏz 諾9=382_e=YՇwNu:mk ۲z_N3.cÞxc>Բ `|zA˂31Fa.!,G~]Oefsl{k}U{*ۓlfYE6dU̬]EPpU@WuW~Mܬܜ,+j'~ߣe}gwg_?E_]Iµu5 3 j/x9n`:NH4#Fq֮|01o3Jvq7}_ uQ׿#KbKu'bf WsF&A˳˻]_O^[uJ4MyXXw7px2͞u&ޡ~OI&gs3KXlNQW__1W5GW4`1ih$:g+^V66W}nK`0 k-nwU NNI'U^q:?A0s]~z+?윘' /sp~tL1X2GQx}u(Wf)gKedڌ.0]қ}/u.4zb5Q]}[]m%Ŧ,`Xs)ŕчc{s1]u7֭mض06C8y ÁP:XS??pzm#[KP^>vZRoY^R(},6# ?p$#ٛXA?ѿnO3 $J:g=ܽޛz}COS^ (zͿn%è,DztAհ̼ׯh8w ;oWm}Y'8laXqX_ӵfKlٷ%w?!tW>^LϪsշߴG7DVrn~'ac_{>k>ѻgW߱j#ESf>罗~(7'H%toIm9裣Hw'i3 ѯҹގ[)6dzcAxK/y9Woe_N-{_OJ}]Hݺ}##nFc>} 6q?G}/),^Կy}r??/?y}G%=ޅ (UnWoھ5d/E1sgWgwlos:M5d9/cN+ k.{ Im:^i竍ݽOp?6Photoshop 3.08BIM8BIM%F &Vڰw8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2008-10-10T06:47:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2008-10-10T06:47:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2008-10-10T06:47:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2008-10-10T06:47:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2008-10-10T06:47:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2008-10-18T06:48:48Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2008-10-18T06:48:48Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2008-10-10T06:47:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2008-10-10T06:47:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMHH8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMI logoAngelanullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM %E`JFIFHH Adobe_CMAdobed            %" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?]nCzIse7>[]ߧפӮ2zs7{M|Ϫme5кՌNVE൯p4\%;e>gYGI2#Ds6 2 4M?yܫŴṧmkI5}C8^NY깿۳Pkz ]]Y}^~f1nߒ(_o .՛g3.\Nܫe5{mm9Y]mQK e\]cۯ9X!<ˋ~]aؘ:& Av:X=[_]Uc5[=:՜_meוkWO[w=51WzU_V,3]Jfie s?}ljUv:g޿N/Mݐlb]fsVݟms#Asr?kk3WQ9/l`4Mu>SSq_F.)+&qۛmowe{eWkmOGs8'(G˄~Y Fj8!^12^\}oLх)eK>`u8u}O wfb}[¯t 3-$Eo{赟z1ͷ/_sh{n w733-q7Wݟk{kC&ʱWr͟Nj >) ^-qa~|-۹3Yveq<]Xس[;D1 z[XTT6KUz.}oKeYqr|Ml\3=1.s~u[3'=W~}aZ<GbPCKl}VOy?Ю[WzwWwHјnuVT9ԯ)kF9Uǧ qJ'>QFVu0]mMnjb0>eLjmH/Z̋ gunnGSc;zg}af_=K;*njUNWye{}6Ieep<"FY&x2vj}[9Y裡^暉{FXݞ,{Ts˴bh74nfqs{ubAks_:ُèe^H~ǩcqַҮߴme.}_6p GpcÏ dxpN1.?W_Oܟz~}긽[uKα_m6͵YU;WJa~gZٗ{+4׿f=-+ѫzUWEY]lիZг7I[omϺَ֍ C?.'QG.ܞժ5t|wbUvVWFbgТھe Ȧ*hg]ncVGD/e W Dϰ]rAPxp Y{f$`d͘zGیcu2l?Xxe ˈ}UF.;]Z)m~OlGU~u2m8aVgu9i܏g춻wCc;/Աg'-ROrֆϮHh-ߖ~.o$FxcxxjP/ܓj.]9Bq*5vM̲F+MgKfa5VzG^o:[n%=IKHo=iFSo՜W:66KٷX5u8veRv5VG5;,(zL{Lv34GZa}h; Τ Vx%[v^NOwҠW]X}AoB,|,eflsh!cǧԢ}vՏz 諾9=382_e=YՇwNu:mk ۲z_N3.cÞxc>Բ `|zA˂31Fa.!,G~]Oefsl{k}U{*ۓlfYE6dU̬]EPpU@WuW~Mܬܜ,+j'~ߣe}gwg_?E_]Iµu5 3 j/x9n`:NH4#Fq֮|01o3Jvq7}_ uQ׿#KbKu'bf WsF&A˳˻]_O^[uJ4MyXXw7px2͞u&ޡ~OI&gs3KXlNQW__1W5GW4`1ih$:g+^V66W}nK`0 k-nwU NNI'U^q:?A0s]~z+?윘' /sp~tL1X2GQx}u(Wf)gKedڌ.0]қ}/u.4zb5Q]}[]m%Ŧ,`Xs)ŕчc{s1]u7֭mض06C8y ÁP:XS??pzm#[KP^>vZRoY^R(},6# ?p$#ٛXA?ѿnO3 $J:g=ܽޛz}COS^ (zͿn%è,DztAհ̼ׯh8w ;oWm}Y'8laXqX_ӵfKlٷ%w?!tW>^LϪsշߴG7DVrn~'ac_{>k>ѻgW߱j#ESf>罗~(7'H%toIm9裣Hw'i3 ѯҹގ[)6dzcAxK/y9Woe_N-{_OJ}]Hݺ}##nFc>} 6q?G}/),^Կy}r??/?y}G%=ޅ (UnWoھ5d/E1sgWgwlos:M5d9/cN+ k.{ Im:^i竍ݽOp?8BIM!UAdobe PhotoshopAdobe Photoshop CS28BIM:http://ns.adobe.com/xap/1.0/ image/jpeg Adobe Photoshop CS2 Macintosh 2008-10-10T09:01:20+02:00 2008-10-18T08:51:26+02:00 2008-10-18T08:51:26+02:00 uuid:0EEEFF22983C11DDB7E5C29566730622 uuid:BD9AE8F39E8111DD9AF4C9FF5704D024 uuid:2B1F97C5983A11DDB7E5C29566730622 uuid:2B1F97C5983A11DDB7E5C29566730622 1 720000/10000 720000/10000 2 256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;0C20C387C1DD98DED50EBEC749881D24 929 215 1 36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;49555BEECF2850AA68BDC8B6B46277F9 3 sRGB IEC61966-2.1 XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmAdobed@      u   !1AQa" q2𑡱BR#UXbr3$TWCu8Scs4v7%Dd5e&F !1AQaq"2BRbrU#3$CSs4cT5 ?"QD(ݽ[aۇP#_@Rpq7 M=ȃ0EZ숻Wrf3oY\QO ^HTF Ͻ;U߄sZ:P R]ug *yR Zw>ekʐ\^;?25tH'T׆ldFj ?zVZ_.4; ޫկ|cV W_̭}9R z|ӕ W_̍}AjA_Oo[c:'5AO)W]Hj;"5Zw>ekyTA?zVZrk*A?zVZrk*Asz|ӕY&4,n=Sˌx)4y.,tBuQ>zΨw6u8pPRN'bsPgʛKkt$ZKV$68֌xZ* nV= xiGGH;^g`qvD*/N1{6B96&бܡқ:CvqKI΢eOicÇ_BzVZ9WZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVZw>ekʐOޫկ|cVU1+_wNT~N?+c'r+ǽkeS5xRQJ|W 5_ũx<xQ[j+f|) sݸS3IAb΋6 UO셨֥-o}w:l}sGOv][QᄏPgY4S_vT(^f{O)noi/^=K?xAPz,⟭kB3 4~Ogig_g[xOglޫ⟬kB3 ƖU\wTLhjI45ךz>=>ن<7?<ը^ojTVtӷ^wG\iƨT( ԏ&XxcQK8c寒eZKΟ]HLk~PS+A6wa~#U~r?ܒ[$\$1;̜tMeK6Yky I[MɾY"8=~l(^f{R|5E_v߇ؓ/^=[8_gW]$ ׬p)YW?Z m ?uQPz,⟭kB3 4~~ ׬p')noi/^=K?xA-4(^f{?ƖUQ7l [c=,LbE<4=sm:'Sw^=4h`qb{ 14-1Ɇcf؜7%~^;2u9V~^;2tH'U1+_wNT~^;2tH'U1+_wNT~^;2tH'U1+_wNT~^;2tH'U1+_wNT~^;2tH'U1+_wNTk*AqzZ!W?W_̍|DZ~x>ekʐ\~^;2u< W_̭}9R z|ӕ W_̭}9R z|ӕ W_̭}9R z|ӕ W_̭}9R z|ӕ W_̭}9R Xu鸤#^hقPFRWhin;i99 ne̴9({JI:£ zcb﷙O}&6V]?("a(lk_ `(l.%S8yPA)RT8B(DJ"Qп"Ql6f1X2.ym4@HZ֢$-D% D^~zfێkxB\I-)Jׇ!NLL!O*SI%;&K+quR֥I'$U+ڔJ"Q(giוɱ7ܗ-neW7#Pt5cv]LنQqy^lV+Pbg,p&gBO9g/V<2 yChPZmsByu@ILgi̙c]@E0(mExseHl1dD%˷y ƻ0\zXHA%.'|kvYj"``c1őiUgƞψR!L:WϺw"oq+KCA\(Cn4WRR|*l2D=1;utU"e-->vkjȕ(DJ"QE`mu,y+YLYI% CХE xj|KQLKZ1nqig#%t]ZR dp9@"OW_2O#ݬtj J]mz(zHOZ‹a/h;z [\4=30Z~o;MɎOH~ {,$K,|+8dӦƗ'"6fco&[{ bLܔMn5K2_B]P#@Ԛ쵷 i. :C[kt5ZΒ#ٚWgj*j锽Ǒc;uq>fwY,8gv7పCv5hY1fcm\85Rk4T D;>P +fDH /?ThpʽdLc-ŧ#[Ͼ;c Ϯrʙ{z@&Xxz2U3Or.Sy/GQ[z&h,2Wώe~XJ sbdd('F*kY0traVzg7cS V_J 5Wp PD%(|D%AP;ӆy[,&Ma_icT-(*8r\#&ӆi3>z Vz $pZrp}6- PH5_|!@|W@A 7A[x*n5UVXR;wl 6fWtDEgoO$WCe8%W,kR9RNW E}eM|υM-=*5Q1oEL׬\NE¬2YCPa)) )GϳxKY8 ~6n(%3{GzywQ=uYRaEvIy@)=^se|GJgZ箮m;yu_uo>ye(Txlر'<1;⩂J3JJ"QD%(DJ"QG v㇅ [?m|9lomrqt5&\gl}f]uU݄\yê Tag!E1@UNU}ZIKКWH3&gkbڼTɵ>v;Kl;s0\W#r|#i%m5EznJ0,lwyB{RUj'KBN՜;ͲoZc]IڟJ'=dz̢gv}jK[PD%(DJ"QD%O.fc`FwN _OҴ5 jPp<η 'T2J(!jN j֤ۤr'QP5!gYZ鼀-}-1G a  8.^#D%(DJ"QD%(%ó,o[FcfcY="zmWR%@I%$NB/UkuIɔhܼa1t+@ʙRNIӴZDW 2*(ҿ"Q{׺zيO-X1D!1IE4* *aU(DJ"Q~S4<;ǣ"DQ*Q(DJ"QDUS ضe=Dzp,:G(-'DE(+j[T륺m,:`'( @_tU]L5 aF#(: vL׉%Ofz kZggKZx]z8rX#ni%Z(54UyZ::]y8Dv.eޭ6 caۅ[0!Z!<Z^ղ>f cKCDpW%#꧲D9 ˼`MmacA˭ZO4 )HSj:hOb>Y5 }#˃á!}eeK9K A ȁ`x,Jjfme]n29[/y[l$Ul-|rrR$ckz) ֖E|'AƱMة~<֗yZѴq;$tOC`"Ib@YՖ=>OE)'0ژ,rHjӿAƱ1%hSL` ] - ]_kc2ޖ曗pf}meO9 Z[By2BStL?m~n=o!)q5*kKckq>T:Uf]Kv3^5zfUʄWg`)y/r f/ΥrӝHt5TUPJJxWwbfج[d3="L Z@' iټLI%gIkh c Պ7w6wҡAYs ͛xaenP~^#DUz/Jݴik<'d8yMlч1da&FǭD:X(DJ"QD%(DJ"T d+fwx,j#YhpB╢PJ .WJ{l>NӸ _uQp4/y>Rv*ȶLsohg&HRyBX@k|ZN8ʑZj4Xʑ[K{pa6v~OX3RxZ+b JTQfەm?l[ԤƀK{a:CNQD5z)C3[p vQ04n= 弨?`WBo+"4!(oMxksX|(DWzgt>AZuD貉[r8c|#^s;]&:#]BAQ:$whdQ01cG(|gW[:a=;I1uUxT(DJ"QD%(DJ"QD%(DMM@E^jDg eP(AJA5Da-p;Ucgҿn)Kq\Y*ZΤI`*Kߏʿ DJ"Q^7ci^osL8 )ãlRƤ j$h5yaۿYsqDZ*)r4Rd :ڊH -u6>ܦpʎԸښ.G}!m: RWse:8ؽf̕v88ъeD%(}tk /O˗IӊyV"3xQoNo5Ek#E&\,*QcvC/$ń1eÙM zVҮWʧf% 8 Wsm,ɍ'apTujaWg"bcBQD%(DJ"QD"?onOb-Krzsp:TGRxô/˒fۏEX\j[i?]p)V'5%T^y`wޔ̓;}gpٶ Ҷmm"ьK*XI\r8s@O~$w {<֏5sGs;J{-'SoYE^`RxO pEdy5y..TrObPZrR plNi^|42 `.&ӶguBYJ>نO2J'$~J N+N&͌\eOB75|RΒu-DkoSSJ%hkhKUTͨy59bJ!plWTQD%(DJ"QD%(DJ"QD%(DJ"Q_I(g=Sg) ۙpeLeGP@l(jQzڍWY[Tz)6Ttל#U(yT!a}屢U|r|"kwtKӣė JKZKi'䊐*ؾj2ǯmy֨mr҅Ѯx(^w$99?cxKLӴכH8 ؘaaoTRke)3m}Tr@Z'P  Rt:Z+l9*[1km xYwi|ό!pscG8tYyۭZ/L!a@R`/VElnAm ӢJ.vnIӴkݭHUoQqDJ"QÚهH[ݾ|[u}$ղJ L4򫅢ղg?d85}_`GKgKT^%(ۦk]%&cO6m\4Cwh;" OH)w{+lp9HZ[lw {[E2{ݤfէi'rX'߱`} ۭq^[m=F^OxrDžX5g×Pű/zjF|I b 8{VUejzɑ[|QǬGe]k&=NùZJt:p^n78쌊UW5mTD7i63KO:P$Um?ۼ9ҽ.wj6QܔD%*;n3$BICXҜiimDh)=ʉo{43 4 Fh [kKQC!HZIIvA|]jDGʍw)ػ[A}%^/ScM(WOAONI-'ho>6cWؾd%;{(v{gWQ[ E t/9ZVt:K< ЃRJtw'ݾ7#3 xKP:BYINy[bĦdDun6z36TF P*RD%(DJ"QWJ(g=Sg)YR.eq3؂¸Z]mhjPmؿwvq|nɞqe'&rhROryTf5}ߙRs-KѶ-[uE{̓*'U V)VKfEsȻ\/lfܚc+ՙ RVSm?)%*h@o6{ u.skTPZm'~:mBiou #!0>BZ* |Xx>z/k(l,$|B݊EQ+#?ׁ+ N!.o#"t([i%(DO uңmVyF&,k'#.^a5rJMYg_Ëܪ fK@N:tt^[ -p8|Ǡ>JkaFcx$&{ >?`'iҶfS%F>>qڭj&K㰘C'neFqHS<4絣{7+LcvvֿTQD%(DJ"Qi+*SfcUİckJ$hB.mGjЁjzl^\տ"|;'b60p:]m WӪE^(DJ"T"ь%DWa[ KyϕO)s+!,"L8;Uu= &G@k{i^V56=)\ _3vg5NGZJ߂4GѨ쭑JƳ2ZޥL[ Wy oyRely@ahK41+Aq<DQpO]'gfͿ< 9?y)OO@$s]VV=ԗN:62l\FS㉛'1Tf;M +<) :8EA=mQ F7< mߏa`[m *жkZ* Tp\o k7K%nR[$>+qpKZ%J${k g{NwG*ZRD%(DJ"QDӻBODY#dyMdðDKnnw(5moa#ݟ 7+qε#_kGm[V>`)O/tfP^gd9Up]#nܯ$!tJ{W)x|_K#yNfg0\U+KBC>_WRΣcAV~ 6IFA|7;ql$yUd0fZG 6!%)HsɎI$wƆ`jUJ/tY`Kݦnl2smJ:|v^Գjf6T=𨩗O-&85$tGTWLƶ׬jUɩ e(k QrWنft hW ڸȢ%=zђ3CGZPxx*b y&a=>Ek %IUH:q{}5"0\N8%T(DJ"h~DJ"QD%(gv?Y \-SmGm[XQW/_ֿ"|WmOdکB^RD%(տqmہn"<=t_ou^Ε."pz"1PWն.WLs0ebJ*kiKy/OֈnΕXtGt\;A>~܃ͣ';z wdhT~\Y縋KXDNTBHZRWj}}BԫkE TO+R>}l۶"u֌qy1GqlѺ'Nv %W$Z9nYbeAE^)@Z07q@1ԴLnc\  T[nW}ƅKYfׅ5k.?2UW3H$@$U4)d9ܭ<3X&=[ykG,LO$S\:7_lXLi;?sk#ZY!owp}G+wXz1f/!-6FSqRSFa/Pˈ2ae^ֿX/=+pٺ6a+_7:S1QI)q%bu.\a&TcdAsI|05V ͜[f8@n=zC@}%N(P 42ğԾ\eq fӞPj։Ӳc{4ƃꈺ85ޞ[9ja jePq+u!)al\kQ{Iyxt w08BgW2GJl0A`݄GyNKA`|L;PϤԢj|~B&"P>ڐ#)Fҹ !"CdbOKNGnDz5=⷟HPH; Ix};Pc:.0 C5ءP;'`XlܱzkqP.嫵?$qԍ12˨(LxٽA46wscm6C7`WMÜ-M㢝mƐYA?-9V۫tA2 axo7 *eah` J`yY2{)qؑ"4qӯiNњcMU[UW6so@&'=ϚRWTz܃0SMuˌ"m0!X,6hf#mʼn;C@l!Б ̞\aiyz߼p=ɢد$*5p\KvT4Z-l%jSQoZu+}%G”Nh ; n%l{guR>,׶SMtIbw].ǟn%IQSNAiTʇ-L:Q~VҾ:؉b`#J׼_$ƞ :%;%ħQՙk[O5~ui,na[}^b4G%[m9-\ZXJKT%y-!ză'ԙA1povؘs:$wFd{H&8r v:{ (D%hᯠQim[u7{ڱV]=ƮWfaԱ;C%Q準KM>I_^KzݫeY㿔w: ilip4;&[U)ה!* 6@B|鶴ĺn.{- ${=QH$$TTIPZW ZtNgfk>h $hGjE?p;7fv>WRi#FG~Cl,Ŷe4M@ JR) 4tsˉ'VkC@huB*QbymYK=0F4O>شduk:$.5M֠Ho3ݍK7f[5APVwz̓uZqxnsZyGhq;#@ZSFإA9VziuMf$P=|O`ش՘biRD_}s\7kE[!>% aJRNjO7{2< &̬x>a"8~́IiɊ$P":σhxG2ڮ+uwK4ᯂӨW+I Q(DJ"QD%HzpXfƭ8ә~ZJT+<%AqA* 5S J+_tL\F97ףͶ} %5Y >RBEƐTEynWU}K&:jYC㢒EV /M;TvKD.SokHz":d?qOI H'RI6R ؠIןZʿDV_&\.1$e7!#5JuRZS!E^j)DJ"QxvUIt?at.4RT%J%n،먝ƴ *\%*bmV$U$[통|6ѧXX3WET:i!S#]x2 ܫ"|ܳͦIKi9P%IiЭHO̡'+.n&1ӛ.YڱXh RB=e+XuqQ1T)sfegOLrueNT%=Ci pBHzXJaT#,eVKYh}L|Z''5krJ:zR./˩flp=#hjmWH7]mxH]c5.S/$-ʺi_*`7 ɬ1k Tٻ8.C~\xWN#GnkEA1%;7<-}t >o!V$%* *GWY sb,2PSLN VRK`iOt>{0kcijpd9@]Ub ёhexF4=}CӪ҃_GD;Ӝ]AoVJIm蒥I:JGmi2ҙ8` "qҶ54&fr$V)ݯnP>$C5[u.wŶVm骔Oxv׵5,ڙT<1$2K3&ַN-v|[^)(+cWhSH$#>||\"#h\UY`wEԾt%m,ٷyk3ns>r̘vI)̖sT( W{?36[<4dҌgfQre+C%z$*]STr#moueJ+k`-,ZqN/R(DJ"Q_;e?eR^+R׿"|WmOdکB^RD%* )>={n98?S90*4fu/4@DK%**"E``0&$ #v]ue3]vr^/Ls0-%Yr(ȅ1$8/'PFxh c.kAf"" QAYSd̔`%Ky9Xq{Ų{[mE$ʔ%gȖHJRF-i N|v egtϚ>kXw8à:[O_nWB{Y%"<{ #݆[pc&VKw: HmЖCmGY(Ooi9IHJHJcbbIs;!/YU@{a(d[^b^N9l#Eqik᧮ybY^y&aHԲ:+U%MZ#ֲM<VpD,(IZ@HOITNRH:6W0\\2-U;ExtMm]{ben8 #A|ZA:`xan3p+pj8B>fvˁCp-qTC+RTvϧJY֐bt a Og4Lx\{@NPiDJ"QzxT$=^u=#b6tj2ƟAA>"tQKaNӇwe;|Z]kli1?vgz;;#cHi-!)@CcD Һ5 \I$q+Eqogd T`}Ik׺5,i Gq C5?*OϧRJMcY7ۜxj JVG6p׿W:Z)[]]&D@L{A;{tެ͞a }PHˡ[V51 c6|vͶ#mVwŝTQ&jiѻ3ĜW+ܮu7 uCw@t,tws-U5VJZ/PmnOK&Զ]bL;v LJv[|眇0w >HYn UV(\FR\N}W>j ep'?^7G 8i^]ձÉ+VvvpUd'S/Dhv4$-  J㪙5ZFт19v-7yHqr1KIra(^[_zQR eyy 2qx=4EHvVl> Dr/=x7y್y&S=;Q՞j"E,L",8M![i  95$ĒNf+eJl4A^R-v2yO@A|-4IW R)O}8+5Mi36 ;;*w+sr]ѿz)Zlv!;xsGIt-&>s . /<͜`1hɭ72+ *T%~-#Ea2d-F 8T H%DD^ߝA|vMϑF>=IOR"TEMkb/5 NÀV!JR4*<Pq̚vȧɹ_ -]WJ< HJ2T.-6x[j[lVs{Pb|}I Rs+&) |˭u\.r:B q\qj jxW b=1ۑtYG'2ʘ0usiJH*PyuVQZW^3%ڸ#shrmCBld RC)D"AS|Z%(D\}_E!Rn5s;:3rZls]}< H !J־'_Iihy\_x9l/ 쪹=q]P='1ã.F!| .$kz\i*'5&Ǽm/Z[ɪ>ss2TJGkhkP}7:Y74 bz"s)spe%< [CG|˞U=\~%t{4 o}$K]5y55pJ|Rk ;e/s>鳺~xYmZmpk_,zuՇn[-fb9¶Ài漲毴RGbAԚ,9nhǔvs9BKjnLnIag1eX1JJ"=.uE#m8ݬg>җd14!AGRJP4v=9aaoc#F\n/"i&ZжjiPε<ZxceܻKD0Y4e V,'dbI"^yS1`ǂ(PJSǔ5VQ:IR 2N +J]+mTڈr 11usl8ń'] \BSzR 4|^r"rfO2wgGᖂx>0o('ZoB_ÿ*`N?,v770e *F7OH$tNKzR7oz=.ubc,#cꑥ@ծm1'[a.o5)oH!1Sv̜ʐ‡9JtQջTS[;ZØy9wv%p:Wn@9Џ)!ͱǺP<q:.hlڷk3|d18b%ҩ-qKp ﷫GxnI -u}u'@@W.ML^n74R2D0@n+sSqFع/!ExI8[KOȽϗ$E H cn*LǛq?)c^(BԯWy:^;ͥ8Vڒ+ΩK+eШ0ħeVLʙe\fΡAj^eYJ2$EhO)?Rxg}vr@{>bW,)18 WV{<5iS[5 :G`c_9*s?*Yt/Sw]w-a a0Y': ԥWWUΩh-l}ٸ䭷oN:nM[mplb[-oX4J@VM-45dZ&|ʉ09$.qf9eћ&7Avz:6 G% jBR :W(6dW9lC+=6x̾PժI#DNK+Ğ5jM[2m,DnV4wcNJ1s(M.\aCbdz+昽喩R-ë T)>ZuҰZ c-pB˛si -sHw.N%2.P⎽C]|g 2~$B%r`fryT^qMK9j+E`C,'TG]+&TZhq>L*8ufWd8QD'=(SŠ ̶Ol^+W쒹Jq(VOg7KYLZ=w++e6P>{kzL,bMF$GwjfrD2Qao[N#/Nd]E0McQIѺf.ɍ Fv8+ͼնC0nowאUXݟ[q 4KQO-J%,Rx'\n3gğn 6.C%$wĩEnq.@#,HpG)QRtԞ@G͊Qxmx sEQx3y[7j׵VH*Q(==Ex^^S)vΥ>\lzR5q$yu Bt0:UP\q֘iq,T㮸yR$j)Jh~:agKؖB/7 o֞Ÿ5_]RSRjJ"QD%(ItfY[{m ee+*y2޾BVJ++M^7Mb78nˉaemDejWu-8P$)B"a>Ө=sw7wsG^Ĵbc1vK|lТcov}k[[g):aQӲyVt2ʇRT*hR3Uh}'DJ"QD'E :v"cτލπ楙L u:AB Y/k1P 6]y^-"|ѱqVŷ6IG_A+z2֝ۨyU9z,5BTcۓsi#h'lw[7ĕE;ϴy# g1HYƅb.!ߔZ4*VB[H!dh vKR4f3=!6Mmo5T9'g97vGdos.d-"&7[qB#1!mG$s;$puaԮKs;oŭ|0ejhY#Ay򐷕ޭ=D#JU)] +,fBf`vi͔qd̲ڴ&4ep5BWPVuRԾI3.MǕ78+͉k.'S>k!b0 5wUOO6kL1kv-Iu_͕)k!;=c(*F cl-.Ym1^#G tN#^]1﮽2v-#a--OF#={fAێ0wсLgi /&-5c,B#ȊPJCrb55r{'Nhy rru* 5qi|N,y N}Q+]*D<+-ƔDUP;:V|]%-tX=dra;1&y7luF-ك˓ D4'A?iJ?sޅ5׹!?c#[Z֊;<0y!z@WAsTQD%nM Ǩ]̰..ݮ$=D{Db *%A^7+tOݵ<w%Gqx,:=`&E}d=ewh3Z˺JuۗŪΫ4lu$eeZ :2;j_@Z֮~"B-L꽌Nx%/xt+rn +T˼0JZ>R!/h4 gZDBr-}DJ"QD)mOT Tѿ"|WmOdکB+J}A쨊A}e6=E)\in] 񨪕M,͚ 0{M%is@"t^8M1D#${VGzkUţL`7{9t165S +{|>+'W;Dɣ1#f0z_[AdE/uScnퟓq^R ι:BPuw=Gfۉqs~@ 墯Ph&$Zszpg߳Y>BʋrXiHCTؤpR{qmM-%L 0k>d,MWth8)'"GyUa^o[xU"^J|O#ԟ-jHI=-Wy]nJv[-Gld\㼝lXuYU qQm"rh+Vn>f|QY҆U5Жbhh,\jh0Aźmp{eq3W;+6d+ISh}inV͢ڕ&ܮE!dGs9Q`#EvdWV2h#@גHvpa q{Q3ԍ7>|vNBDt):8SÙ6S:`0yVĘqj6'XeK>v1s ߜwSP}|o.W7 v#xD%o<Rp$}P+1i ̫a;y#vkfJtgsa|Dn%s}ǃiX@zie7TGʨ*LfO~чf^E8뎭N:8ΫZT|I<~^ cq_TBkH)kU 5*PC99; r˅Y\m7q 2iU.CmeMSU_f m(cXtu;]!`1UgGp[ ^޳DMFDZG9S>R [1CAtDs,ppFcn^$>I-Gh9vi_L^CD>-ӌydRhZ_Rۢ_wc $nͦŒ&K\b.3miS\JR=:AZ{l֖<4DA0A*tAdA޼:+/(ϒ'sU%+X^Tǚ1d=вz]kx=ڇ;A+lY:(E(ƁBҵì^Kld̙,B=;Q7kȐ 9JWg*S)-~QXU~Ḑ|.Zu}]C;zm:8n)y ;Aks LdA#u5Jj;<>>ώ]xN>HV'tk I%Vlۀ]|k覩L2K2-$M4f\և TPC/~|"r;{ 8Б|ƸbkgX|U+Z'0mlϡp*JS\L=Usͣv✖pX~'@~|V}屧9׏qlG:jݎCV;*xxH+U+n7 FqJR+Ƣ]4N4DS̟18*gk`m^!Ҁ22[8H:6ٴ JW\,kmcw69yC N]=.H%`^;Y[n5%t&Ehw,1mVK/N)H?)J$% q$+ۧT2Ky?3/MϜ1$NCKdݧsųB+feY$jOqqq_{bLt ݵwn@GdڛQν|WD1 o7i T5,n9OOgàR(ҩE5]JDK}2׷J[n %湈o N*[)<\P:U$^be3316Ld- Gh4KhBpHʥQ'mث'BnpfuԐʸ#%J *Rx֫ RD%(D]73 ˊcVׯE9u$ G$v=QzQGvGJ*rK+LgՠX9$sEy5N{ {מ2<1V{Fm(+'m6K)W;j[K*WxEY"]nwKaQSf4Ge+ #.طBa:&CeY}:TF+mUTk\TQ.OHXHIZԕZ5:οe;Ds{b7E4NiiLt$ND .g6ń'.)*⯆fKΥF?$WwvT`)92u΢nQDj,\ӊ 6*iY$̖DAoV%=7+K+  HRcI xw8q^P]{JNgpoNojgm(}SJ gWa3pmM!p6R$XؚMP[-q}LNKꡣu]D 0t51=Yx7n+vvر kucHIh:fsX)X6d6o+bqĚɠnݻ7Y+l\"th4RF%DNV=EeȜ0-#+!QVL'Ic G;GM .iVcX! Scw2ۂ^[O 8eT-. Ou쮯֖2[\X\" OйH\>c%H{@00"8f=kڙ;o?pEl&Z]2 lcQO1Z!v+" >VZu֪By'sZ0ZnŸm2_mIm ,}z5k:o+L Ayj˕Jx; peB[WMuu(sRgHR5^U9~$u>!6?;C!Vw4|>E]:>:$5z3!zۏO5ef6w#1ax._3-A#(wݬ 6ݶM \`iM:ݪT5+$d="!`4isZX Y8" sr낭XբEW!qcIi+\ʗ0D(-2^#6|w[--P/vya=(p$zȫ`|;ZABi&gw*_}bI%!Ht)\\IO@j^H%ybRgg˃Gm{x+"FN2G~=FuJY}mn;pͻv أÉ 1 SqTq:+I5ug=T&V_%<ѴG. -+;? ̸W6qhBPΚ\Ci7i;޽w9wO֎o%Xl^'Ǟ ;xһHڵ 8WH EghYEaC>+&L;#oF7 E1b Lm R¢U42k1.0t̟0K眀Ğw{MkpgT? v)1kh=> 7Xk|ZÃd 4l-ͬZ߭nTE`k\Nr|}]+e[< qgٖ#Jח?ضL}o UٗPFbjrXv_6AS>t<[JZ$ö[5\ tu4, nձZUq^^z]mK䜷sMTFBs&=-6 Z ZIi --rh bqqq$QSe3ukjfVLD\T]IaODSI@a֫;~r2axb5*M|RR. RO"5kr(aǷRD%(~t]ԞYIVFصPIp Q!9֤P5)z"mmĭƍkSi$nr@vlJPqҝ>#@V+U-O< wE4Uw,<L+cnou{yuV,efm֋cًIG:_2Z}mTsٔƵáYki,]cOKI2V'M;-u HkٶܾU(q̘un"G)W"߲%e۷))֔G;%J{yJؒXzNϩ8@#d:tݼ+^ iZ{<,VVY6P }m.kk ]Utl? ߽\O/2 a RIh@Rm-]4nRY' "E7ܲiSj"O*b>Kh qCFA(U쿺ӧq@^kmHc:Pw^'6|zzr" V^DVtZp@a};y^ih׉IU}%{>®4ygL=܊}-y͓q-Y~ѐɒ[崗|R,J'J^[jbi.?mumB"=v>1$J^rl9QLyO nqt-mWqoʤUoDj}|kƬMic+A)?Ni, ³>[r s+MܽXzpZN QvgqB:}8l¶_-9VˀK^Oz i88WU6@K yы{"oc1J9 {?em[ꐕuq¶6b^p:aóL TLa r9)wQqK ZCMJm3qkz!xq[-/OʔVA7p::ͦ?U %v ^H$^CDk5I:r!ͥ #FiMd)H9O Ϝ)b]MS =+:v)3m? Z1> "TxYR҄T {jARI1:hj~]hۏ5yO-GD)KGUr4 (U*.GY]܋NX\VQkaY@TɚhU:ˢ9  w+QkqwDyHXѩW+R¼P)qT7)%I*D'؟2=&x@INUaZ+y㮺iLJyO`7oAⲡžbN V-:ۍ*JRO5X1R}T(DJ"Q?+[;okM7gk-RQtPW ն|*WH(Jn:W|%6콒CEr~ %ͩ"$$-,ii¨! W\FUQ|mP1HPDDg8924K`h}n`J\K{fYOL{.ǬJTkiznTgIJZmb4 #B(O JK\~S  ж{e].{4&ݓZ2'UzOXqoRk(b{iyccr@;3pϚ`{mF.W݉uD(ᤧ$$V6lht0s'6We$v&@̪{,;3qwu%Ŷ-۳. xJyQUTĚӵ~(597Xq oxkjZ燼F'N܇γN: ;vpV!p\Q!v+襾2iT&zRZ2H#C^%U:1e9tX7a0j+l\PݐˢwE񝬾_qo9F\,љtLt)nƎ;,8z+;C\N3= Gܭ$ΰWr#HLw tCSF7­lvɍmL7pWgi;1[`vG?kqq#fY,WU5҆.!8Kf]k+sNkoxB=r=q>|2\ctl+1W:-'v_dfw ENQɿ,2okt!9NqX-*CkX-͛BBhI:Ry,6k[z0-حyUz-<ɎuO2աNMe:[K_j>;wbu>d=c=c썥Mc!GdiMvȡ1q|[W&k@ImK꯳$5q~@]5GÕ<>SS y_YljBmLZO`ʔ$zk4-M[!2g}'! :bV֗'2gݽf' =!wԶZȰ؟Zv%<%Qmۡ (3۫yI刭L=Iuni^0[5ߟ=/U<\YeR IC\%J;D$Blnkm9PY2FrSe/ӕ]G-@(8 }Y͙MCԼI̓2@~Kk|`2 \bI.U5rFg!삲X"DnuJ :̮q=/~nJ}7,]jZh+"d=dO ثj6{q,m-+' yLr tZTBkq\|;|F뾳]ąɱA"*tBS2~kBO{UIr*Y^ۤuA)-o9Pz#ͬv{AQ \]/Fsvl 7\,#*aJql)Jˉ+j쵪 *)DJ"Q}6̧u̪\օyWӿ"yNݽ{[6325)ՆESz4)Dp*N5L /s ˏ+@ 7m:I׆g ӢWB //8#`XRAYOnŻ̌d"UՍVuzG$(v`M@֜w4֎OAs~N:S$;,vm ^ [mxB`jw9ZcQ;֌w"N94o6U^8#X؋*ouǃ]BGG:`pv\-G,{ 8ж%MӗwYLy9phäYdjuJn/E)Iuw*Aj,VZ}oi֬n}ikAW0yjBn#&(U)OOI/d]1mv>*ǍBUٝLG󆼊y39VuluJQcejxRMV*\~S>γ:dghO1֮b%R_AHj'TzufzTC` %DRyޑ!88RjfOzn5edJڜ -.LJC^ VR?ۿW-w 4g[$K]vΑq L$4Q&J#G7!V ir:R][\L#vjb\pb,Hp=65W)mZ)pP*$\Xק|YّLcmpm}q5K*kj x)Or+y <Qmک+S) :`}7Zsqǣsɳ.o-Km-(hIO \s֊My o 088{1;dDjKKj7gZ2ќ]!9=KwIAq YB-СxTj )K1sKCC6"9+8:^[K{ɦ4!!{|z]oJ{w·+FJ+Fz<ޣn\gh1]$i*gcC4y]:! Mn3XtnM{.0aR .,!*,`i̠'<)*߭'tFg6+vpǑV|P1#'kFuיcԵj\ S]۽̶6jܶl˖% ƒڦ%HAARCHPO:APVPޏCFJ.V]E17hJgBKf*HUoMu5VF4oY5B"3K䥨4 skc+T]AغGbՃ ^s,h6m20SFIYf0RފZ/1RiT,hB+kz*f]^"cэm7+VI$G* ݛ.CܱZ<\^sd7'rU.!CN:HRBH#(DJ"$"/wF߬>b}@s;H \-P#HI GqJ&T+kͦ?1^2˄mq]r"C5Т,tjt!,@PQy+3l.m#u[¸OvW IhUj`*Q(DJ"Q"?Nvav#p>WT9]|-oe8'}Lak1\\ڔTjY.!9Ki ̛&#.pJR8J)GPJ/F~bD \ v`iKRWlƛ *Pa qKZ'k%DT 3svkd/Hp"r b:L.H{NzER CM!Nm QZ N]4HUEz)SJ[mu 7$ygJp kML5 syHZkK&t=̏)"%vVMc-!pQ?/Lp[QŢҎ/$v<'HM{y>]CL(q$b;Bh$hsWfPxV O~ѣș!rT.%IZΉBRI$4*K1.86+lJi{1O@OMej%pny!."8yñ|zGiTmExagozV՞"ͩs ds>FJCc d/!3K q%('P Q؟ިYR?ߊp 'aԵj:;혘Gs!}e%oVoוGG׵ޭs?cOf]y/+M+Ig;~eR!Vյˌ9=VF\uzHׁQx NUUt$0=oq7K-IPƌs'pOBnvk~Wl֭MF>̷2SZM9[9m)p 71 ysص|VπD=G0- *A!IW:~i 1\=>50)tbe; 2_x%f0(m$%r(}|NFxpƵWĜ[/`_i]aR: :`̝=4>XoCɒ RFyzv$ uz>"S\iX&Mnc fFֈC(f}ٟq)؍|v806ӷPS:a *JmjiԤh5iZ UPx yBicÁ@#Uaž=rsXQU;y:jl #1RM+PU3r4<+l39>%(*~w s4՚=yz,h"Nvm s3[1ɍc8ߔT9RPhJRhUN[ rbAN (mV,?x129@ˇtDbbI+Kui?b8eó|>Pt< HR)/Ż$ѳ2.whHFxUl{%ΫvkxĸDz]zUʴ5M(8/^4сr~ӡ;_&myiɝbؑ 5t7Eê*"ajVswoI*<88JԓQa]NN#0oP7&Y!M-\m(C1#I ZBFԔȘ TDu+[c6-Ϳ9x!\eMBp B5al_lN3@ MG!Opf˗6q%7St,[WzɸHjeJ]  v xSL麋P+^on$-̞#)ZMfZ/<0Iq5]_CXfUQh NFJ(ֺmS2C`q̝.7>{ ٍKkWbDKW 6-_ =:)\#R! H :e{ cTw6K r1%7@ӯ .[ #;q6"\VT4GFm$1j|u5UMhs`ѹ3O*mڹs󟋎I8*Ϸ;*[ԋzVL*){Gb;ԯXJAoSK绹ޭ8i;<-C;`0Y6Or.;ry%.FB^r9GoxUKh:˻2`2`yp>8䬚\QښJ"dAiϪ1<3VUnĴZ2#An,6؆HB>+)KR I1fĒwbV-FAf՟'KinKJ1O+a]T' \8r`ZAK\%τ |׀0 8a iu2ρ9dClsp .sc&ʶȊ(&47][y)\!$4{ŨoKal`CI$G#@=uCw:aT\|~7.ZFwBDVjç]*7N8!-S* KFouo;+ݮL_\ڵJ;bFW^Qʤ283ZS6i{$ˬ|Pt}㩽)X {~i:-6 C|%zUI(W -Cdb;sVcڤrC Uus8 Q<9'ŻyQ[urםY$F٢j$rmZ^HԩJ+:JQ*inӞ̻f1}r- Ъ/ؠ(~5kwC:xjh&*%z/O=mm*E"-ۮD(X_/-_bh"o9]d3޺9.W8]yŝ{T{^J{-[^3-WL٥M=n6 Xm)N @T'(*xl&~Lܝl.Fmb]KH)\! {\))ls#PjIW۳es6׼b/*eԈ8pJJLNp>Nj)p ˹Hm|ͮpS!Y ?9ZNa MHÜiƖBuځ Jh iR%l][f8wV-HPLvJIZGJV5$mG:v Q0]ǜuA2& )a:pj4yU+nnn[OW'2HԴCf4tV@KhN{R׾σOR/¶6{.HO+j,tX!):Āb(J"QD/Y+|yߒr$4A@IE$)Dz4^JK"{CEl)"4.=Ka_`KJGq@m~#ޤfDbzimB^\ŀPFйB[3wHX]m1ʍO~qKu:d㧗A jezƌ*^ s )EձzKbVJRy}t5ҸBk RѧJvWE+GRkr&;-Hi,e(u<%M(QK:+{t*"aNAr[ݣK IEVoV\AHQSM^#Wqz/DO _`CItԖ|3{3-[vۆ}Og8|>drޮ ;ya`y 04VGZ>ϥn7W"Q`[zn;G40k{?gga :$+WGڃo/h`O (9qqǣ%56L$3vc:N+Ho?QRf=/jM\2vIAg.Lɾgd'5KU^"em}]1m[: n JOOᆗOJ8@7+RKۤfnŭ 0[rqg L2 w*u)$ZϨx MfSxLvFR6w.ij´šY0 P ߺ95qn8-x lcǡne@$R-k>+!Z("aqpXWu/#w`2h˯y]Gzc,_{䠨$zTF_]ƵT*ví|'UːMqORN/qq̮c2hAH.1K~Kirl<5 W6#,j!.6%C\ɭᝮUuӞ`7 GtEl`ffC9ovI(wJVַms'Ksu GѶv].r\7^U=)G"L4Oju(nm.'WOYM@|+`ڌ~^Œ{ L]䭭5⤩ŸWXiKs행2^;i$ ^[ JSqe:suh *3o7+n/p>=RPT[r-PtW7̶oU&K9$`9`\`# `%}\ֱ DHhc*_\0k|'0]j(C)kx̮BF54Gm3eSXዶnkRk=y*$S42D\p.87`8"28վԫVZm"ZL@[m8ڂH:Uh:ؗ9r$|t\"9m݊Us T 1R-youNj3cM9J>zMia].wڇ+hX-8pp ϑǤ(S6l˔rlَ)2YS-gU(I'֔= sbI8w42150(8-=\V5m":NNCtqeĠst{{}ӶO 0x9 qq朗s7 qiWO;IDzճ(rp[MJ) REt}UK)>l"jwlb.y $*uڷ3pn/r1j)\l.u*<<*Qk/ZslL &+Fm%5$0rcޯ.̋-ySʁ*YJRMiO cݧpVj47k6g`7W^ =1-YS xuXmCM'R⥫]Mu%Mgl IkvPgt\vlh֍.tӭa6.čg3@L̆ȖJb4R.+Bb=R\WN8pG;qrmCl8ij+N ECV"V>oT#ĩ.}鲔9OJBLzq/\U⼜q&[jytP Rt/8Y}J(%RǼ˩+nkm{p7AJT;ڳpsGo]5*ZZRФ/2\TvW+-̨ȻڦZ1ʆ8adG28R(ڔJ"~KzЯ5Jտ"\ ƇgSxO/m/ V\ktPQVޝ˶J>1b{|&"-6JSJc ),\AՆ]5 yHĻCuƖ96~SfqbRS$kSUO{yX-nm[4+u*{PeC~qMcC,)}T"?R-vgӓu2{D0Kڔ'iI+!*W[u˘_} tHGGnа~6e7#Pp#F_5^Nꃯ-s:]jWJL`F׽o MΩh@iGzvn[,5w춸}Iԃ%F VuT\ DOXD%fV\t"@$p%.a֙;nVEQߩ Px|UӨ6t `(Jtc?jG 'G..6Znc9$CoVa$@ ҺoMk+]>k%N9pn;o\tUmL̕iv~#>Et%Jdk /ɬȎܐ<A 쬾U}<5%bj$_-^x5bVh8)bv k~MlH#[e X*)/9#7*_ iOe]\WGTC+ʲ$eeIv}%\ ݭRもuR˪ťb?y)|CEP3@ٯog*/1v +r!T‚UǼDߊdDz αط[DRi%*Pav_KKz*}~Da/( ~C$z$p,z:飤kXO啔mڬ6+lTRZ#PyVC̔*)7nn.pEa72RV҈$.*T Gv (.{y|eJ"sy[o6¼T<)}230$eIĴ> GkAS8SEBwW .-²3m\",$*Jh'TA|:2i[Ëq{707WY* ! +S%Ć.%tYۛ6Kgf=)ď:פS"gG6?liCvas6 UJ#n6=-ŲpJx&=dAj"`tmKr)&;cS"4ԂJRґ%!ը x5;GZfՊ!di;rKYtD1V nL.E$6eچ]_)*C=SXi4kF"#:gMO,a cqsv &7-β<2 pg uqڌx!\zȚ+Ui\7 j[vRfkط#Սy7ǚN PPIIHVgb|VJzM<D: vLMt+ݝne==+C2S)৽(PCiJ}mJ@<{պmHl.X11?k2kxy VwhO[\,̃%Z{R4=2% AZNe;̹-sL"/W tnb1!<{q%/{T؄uIL6< 9TJ*z䝽au$OA\/xϾ!\\H,w} 3'ϒVK)XeIYoR0E7:achF?ۣ|{fw,S͏ #@dR&)zow0>fS6Zzu +Ѕ,$%0BzsmL<_E}fl.nhv'7͒&ûuȴ,[po*:yVʤ)IBA]M[S1\fyAmy16 K;Cp!v3Z~emp#mSsd RꋮQ2 EE6lS\rDngu(%J$^WDJ"}gg;Ǵɹ?e- +WJxTzDf/w=" AνoİHQHt5Q <0Q UեQ:Ջ 鵵 N_̥K8iox ˰p:;pVt$e G:EIݮ=kt6hopfӄwڮr*)J[e R{B(I2%;qNʐ-\DxWz{;|5A*N D%*{SuQ'&lV8rPjƜԒjZuJ+̪Jcpws*sڢM]uOaEmOf]c&aln3=P(-jtIPHB~IiQyrsa;G@rه2SGV]GUؤ4̤)PGR}{[K9JNW(tt(VX8b cڠeE(L6 )`R~ *OwGF02cu9r{o Gw nB.-/NJ#L*-(~Fhn_mnwz*Gd=IlwKu17#w 8W x-A\8X΢vM3K֌] b#+#f1͑g8I7ܽ˷ηb,VIu=%׍h]Oo1ԟPf~`8m[Mz;@wd>vtx_m-˝Mج "]0 RiQ;4qz87U:QLb:Vn Fe#aYm!(BR4JR;tֈ!n\I1<~Uw'u1{EkI6 {|ƜT~ O Ƶ&y5UU3fvIFArer6D c]uQՖ.%΀L">tbMSֈ{ܙw;ȶNkY.-$:!Am'Q ^]nS/{&Jx bY6k%4it)lbsY,])qh)Eح5ժϢ-tqp%w ޮmev'Lvcчf|NĂXqK'K% b6|<'XX-="QvF D,ͤnW^pg{a8T U]6=R㙒.>Pœpr Rƚi^*X=ܥ|ʐs݉G 4xhh'5=0 1$T,6{$^%I#B$RGG w  9xPF Zʂu ΐW~ڣ5ˤlEVoJ)nBd;eQ oL5lYn [zEXy+eW;@c^a A:RK|[}72ϰ<ƚ/rgl uެ^Ԭ1㩪TRu ur9܍d(mЉ!1b6@$QQT~^X!ބ#1n+Nx݌a_۹[ ~F?|n"&􈎘+=ᧀ;+8*J`>RQ}v-s\}Đ m̅|)#Z2kfK0sH ڼgȗ>Sp ]Fmo<׵9p6U:dgS*hA (|quv>lS4at<#/4Ue4KD9ᒥ܌vs yW.Q{p.mA@ʆm !O  ʀXQ(DVv [պ2\-6:F#h L2;u^j(*lȝ2Z{5cR D*jFWXhqP mmj ]s)[4)WK]}R RP tA\ַ*ƲcZ kI p8 Wek0$8v9(aunX/ۚ\)v$)ϚTӑ@> jۼٔd;Ѓ wBIڥ˟M81NE4#*cȚ}ɥ0ގ+KkQ$EIR]N_j=ɷH[o6J Db15ծ͔#SgS|I"dHvTN)2YqZZ(' B{ V.R,T[=6&Z8O:R T@ҠDhm8~P C<7HyZ$wm %P\^z{uU*:}|j`h~j_eC[q,b eֹH- QUAj77ޅ[fZ-W[.[ جGY[:%)էٲ[W H-Ӿ!;__~nUod5`4+Q~⻘ys$| W2Xޣd$:r/k,S (]-> u&<Ƀ'3x-y]>nL%BWa A(];lɸӲC Fw 9=;pZv,y˞os2kJwmBȕk-j$hBy10_^lwzrW`]mŦvBSO1+*:nkqz_̦~|'N=dpBq BRV4RIIpW ,![)]ɑrڎ)ht04p[+Qʢ w/x7?xG QaS%)1#OشUAg뭾`K^/UǓ2eVi*v޽!%'nLhB: ȷ/uʈTTOi֣Br&bq<9J*qQȐQwu=]TI63f04ĩ2mxtsl*J}n?0 8ƠuEyu[<8j$J'$MH WRDN4D׺k=LmՎߎ]W`ܛ}:#DE}WIl.\Iˤ5[ZڥIyT-; };yyY.O//ۑSST܎ýnj iƒՙ,J I!iIy]\}kYRI$Ƥ_L"[VbVd=3g=.;ku/&B]ӝ%g )#YZy湀;dc5ҚLQT5[bAy!aA`s.[Ch-PŻȇ[ p+WڸXZR[Txj2c9:{@[ 9H $4V#t\uoOd!2- ҃ě-^iwSIo}4wMicA!oΟzN.koUauBZ&ݎR\4/NpX/)2zU95m8v )7{KHWo)˞xwj;**2ܣ7Ms dsM$*Kx:ꔭ`L{_jQ(DV^"Ɇ9n$\LҔV<>W2QD"fͷsvrإ5*tp`Z!>㮺ުy^&BJR4m<Ұ/.7+uD@ 1 6жu·IF$a9צ]Z2 a{EO1lxDTy-qC^JGUxk*dUt11cZIz!f^!ijJSe nD0x\s0 r*+t}zݹlRe%/ JVlPRv:o c]-Cf:<-,U%SNcb®V4D83\6}Vira.W)κ JuMalڙ98ϕO..ўSl]vJc7m@8-z8Aׄ}^Aæ|.sr%dt7hd&062mce>aԺl/$h8ՂҟҖJR8gJ>'R}&VbXIwV:P9y'n7O'*цz${sgdG1Xдܔ|UZ'UxS\I&T%-d=R#.b1#ۑ:=!񮭩!J^Bs@;@Vugn`&0``88A& k-2q%- ElKmzqPy5׬Y##ՆߺKb 1Ɣ4+3S|)."%exLb8v7JЗ1ۅ|2Su|+Y'SW6a59bOYY=,v rѐ:8Ri;2]Vc2c-ʄ|³j6˥`l564"U}K8Aq0 |.}լcn0["*{w-Cn<65P\ k4a|;h;@9os[dW $GvvwՖTi['^(V{Be2=8zϟ_Xh jκLq~pv\N-Zn8TMLJzNWqJ|y.ۯ^_hcupW*y`Oem1mԔct#B6AKaCӕDr_r Sxd9-muxs\rL5[)J50RٽMmfY'%(J5Crbħ?bRj {zbcvu) ja\ITHhOR= :ݸs3{)vL>9!+PPEoL)):H!RRQ'Uu$j`qRDS/X22r/Z_׿"|WmOdک~5\d*T%5xtDMQ{D~ʐfCFТoخSkH"8pᦝD b*D%,/-ֶ\.bʤ-JJOq<*v3ǜw\r2ۛp; 6.*)DN(uɭ%^vS*d:BB ٚ;@ +0ܭa1ܵޭ&R,&X&2==՝Y K4K 0G| u~@'vi]1.L,;X7d#Od4o6kbaq8Ga1'UVPĢ%(6UMHtYnMt="ܠ3}pGe|Ȯr%M{,CQvѡIE -hH˟GTIl89RW{tֵfTO}e cs{m{Ljo!֙c@9B_/9nW۬&Lyo8@$;wumZ:Ĺ,k64UU_9;\I>U־d%(DJ"QD%lN8Ev$v&o< VcZ:> K?\eH[7v:J(JRT h<+\I1+@/JpPYb۽]қ[]#F#:-ڟ$t4Ԏ] d-)pK4;c͐e<R[`pelV;T~sqecHW4{{`z! ;{AZ/e<=}f&c7[%%QP!H}STeW{5y{nԵIt8B=J{;fi2'>czI'U۶8hIu'+>uJ%(DJ"QD%(DJ"QDp/7jukoUť>DhAmvhXM]ңZZr.Gn+0kї0--0k>w.p0u 2PP@S:Oʿ٬Ty&M#KZO1.>Y.ת6@@ XwL;D^dXׅi׊T 1[>h zŚvp NŤ3r/'_'O+axit406p,=X/vSi{ޔCD`!j)DJ"QD.va/vK32 xXZu5VRK3Z ~UKRi, a;ǝc.[o0r[\+Rҗ_+RAЂ q5]ELYɁFp]iQM"NY5{1Xsql&NtVb}k{ڛ/g084YdhmTSyլIe)ݧ)TR(<}E6l2Ǹ{5'p1XZzӱ 4y85{4cՊs 8t܁aޜ.vA% Ou ]ZVh5)}O^y>#1aZV}}X|&Y@D{OwtqyVfgjM]}5CnyJ Ь3ON'/݁ֆ.8>"DM9/ <޹Z67cs;bT߽{;X)8}HAy^(I4{qq>G^o} EH>gLus RD%>-}(_WY 33}mPwV*0]Ǧ Zxv4-aGYTjxD* DJ"QD%'1 SJ$CDwdvcj·6K@i6,sYĭ:ycxk{- 4q)B =h 04`vGj8ڮW [4.yҖ m|Ju³i|h 8#D7Q Țn 01`w/׊QD.y{msHnUAB\ ڂy IЎ+嬣W%f2MҌ840,-8t U|OV=x[5 Wc~#ҶI0=f`GKN`[ (^/F(SɘXsDGMKm'Lٰ}RP]y8<}"8|Zr7o2=& a֖T@$M?kop \1m8 ޅS{;&V8n5kt $|5Z~]aq=n$l\qP}7aW!XOïf^b)H\JELwM>p9fϨw1{|ݵCPVqv_rywk4aRM$:u׎@pUfTxQTJ%(E ݯo lO%J%(DJ"~Ւgh4aWd)>!n/bhZp`wtCc6'n aָbކ@} iR~o#Țt7q {%S2NIY 5i+/kr"QauM[-gB MK)%;lwLieq'+JAI[Mɬ,{Ai e{C ǧ5>vW./g@l3R8-('Y&)a/бVai|k+* [7[îiK>J1[CI)% ;k¦M0׵bvc})f%48 E|*J%i(R J;װp0#o-#7/RR+5UkAITۼaDN4> *[K%汥ǡ?&+褧uDIo0UE(9lD68,0{s$׊L }D%J'f'w1Q9ȲĽjŽW"E&zOQ?m~l˗-M\Y#`>8bײёJCdNmCn w'x=a"HEkbt=ːQĨ <ǵDj 4ZrHkL <|_Ko.g" N C;up㋏3cdr00;S8aYIe~jt[m!#mB@U[UFq/lrt85aQEfObu tbgId 1lAVR0K$K{:)*%>^B#_5A.كG,cm\N,| T7+|RDJ"QD*ρn>E k|ǝyը| |USZ]2i>h(6Ԗqs[=qR[G嫕$9Qm5+|YMq,-&t-E}XL=!,ўEA .W<>!U%_:ϝ]g$p_ɱrן>ߙLΜ-;[-pڷۡ:Q!Bbʔ4T\\9ē$٪uHNִ%lUԋѿ"|WmOdکB^RD%qP.͎;q,ٕQ!dFNtҭU6+}SS{dTvJ1r&TTT(t \I\UJD((Gզ*a8t>Tb3CҲ.#iܜJ~9u i T*ކ|*=ݸ2ip1nC:9;lRtBP\zIGeVʎ9qgȕ/_TΝ4r+ci*\9D v\`G"WwvL:}L43Bi[XR|}#_jI$e,}<23B#tq˾etĸl!tiNGY'^>H/_pLXG{VڬKj$,a"f%"`!$ku'nwNeO/p4Q VךR/cl!?x,d3?V jaFWpثM4]3)sBn}jm -v]W/t[l`P`2`tg|g<)>lc%dX;&Rt5@z&CW7f2bs,̛faeHM5CG4.rD-VV1!9q+x!s{4;]ߗ]IIWog%HN7sZgix浏pnU=%ou r u[!KrDKhB@$RRKmvˌ.pspn:fnfTIs38=7+r^"!ܶ\ ^ZC4SIYJVIV+fͤ.Nvc[%K퇴ot]#ҷkvA~]$ekn]OJ.#N $5)[xfY5=>QkuN]J#6DUZv;+FE$y:TBE%D% J {RH Z"Um+ qL]Hl'{S͐Uq棹rNCy~OۿI Z#.U^ˬگx ߼ZXUꔞD[a* G]ogVbߪ]^ip`#ta?ԡ%nUSxvkƢ bFJPQmr6;)25+nTQm}fgjtnMTv6gN{[vl%ڈPyl=+3^Y =v$ BNq<Uts&L=vF ʪٲ\2?hۊ+_BT'As*p3ZS3""]eS_O>,b 7@AUutD%AjztY7<4D_Mi.P?<(ƫ#s;Фحꆞ!@LOġZۨ.nz  x%;{򨡺.mՋr57e♱[Nie$ p=.UW*|M/plDZL>hZRxyAMK2LK it 2h1Uv{V!J۹tJ8k~cJWJYOx>ZyO'k)Zx;I_D%(DJ".p Y{Kqm~2 JRN(]xWBxY|_sHiØyi>%Yjge41凭.*|1V!*Q(D[;jv",֯/_o+N`;+B:ƵFbq{ݮtkS[ٗ!g~JuN=o ׳Q! c%*N蛍I~o7[wf;gO޼wCNy9rjEe-ѿſ;|5X1ROcdb|ȷ?EyU#wiv1ǎo4kR-!%I :k,h]ǧ@$B9Ø I>dXalay@eβuҿ"|WmOdکB^RD%(DJ"Qs}Ts$brl9o\LξP=&*%DKӃ{#RhU%=T-tE˶BƘ_RB||Pet4õܣ+.Q CpcylUdK\d+)b^b)[{/x1x[YErSM| +*SMƁ!򬢓=>r8 -g#g-T-XO1? Z]Wq#0Y--,a#ilÊQJO E'D%(DR_[`n>Ig$wmLz ~R+^IwArf:wv5'ٯֳ֯]g戺QCpw$-cQ]6`2K[ AaeB R\"<]n8dr,S)f6''3ô,+_:76D{VXbWÔ$&%˃A`UB@#_Cd|Z֓z/qgţtmISxqTx}B_ZƊF{O5G5͔KQ0FTeO>U/$%ӝV." 52x+*N# ~`~oxii|#y |cYzn-2;/2]h<`M;8;bվMzx9ybMÎ^(3d&%iޖRCMhzY %}|WZ\Yo1Y>D"3:W%K"JJR( 㩠0 J;72KfpuPuSOP+4[mi?X)+pQ04vj+:}_A'u;aݛ9BPWtŧ8x-D/F@{8+1=+=mٴKjʋ,{fwEbym7Cȱ[&֝9qZIЃneCT4+9 !wl#j*ھE\-Ю&[.1[o2&ts6n'hP=kڞe<̖״^3>Y05pUnllݮT6"%UN((jxC t·lsHmC3s\0ٞKu}oĔ GoҳV%(DJ"QD%(DJ"QATB 0[7ۤ@իvy LҖ'ki+mTʋaG0n lYTm#d×XEl+U{v )qtDi xR})ѥX2ӿWyk8=R 9.3䨮D.)\'k%J5ȧNM kr lXT2q'QwouMn7-\+)(]q]ٔi42+ħNxkn3YWL߉G4y8=/:j: Nw s˃k`wy낰xot8k7Pf7;\9}:Z(RN ,4wC8_ >h^ܔ7Ls.p?p\߿l+ 9IQmu6 Vf͇3C N1iwi:.ɧV8EBLHLn!KqJRIQzkp̚ms`'vzd1`'.r{Am gRn!&UBMxm')eIc ooxK[hdy;|̇άid)DJ"Qd^4hS1{k[ý[pol?Џ-u+Lp@cwV&V_.K1ph$Viw Z{M+pw{gs-z F ʡdm>2Xu$On{s9tͶ!o@Z[Z}f WSO/L:s[9Ԛ;/7'Qf_Z+L+|8}4uL52 @7??'%ѕ(G3 ˧|8 FYvg*#À>[. P(DJ"QD/HBҤ-!iP)RHxhAvp" q 6nK{D;Joji,Aֶī ~˼/:m>$3ð+Ei4!w&*JEZHvqvsYd&U-ɯA kxO}sg}ߐ-uğr_ 1p1sO@|N)Y-DE^QM$6ՋLڂc b)k>G;Bx|*,}/iϪݹ!Iѧ.=D 81|<qSϼ^p)kQJQ5)PzjQo0ˆOZ-X\ft FC@s-c]>YvIIsa9$=LjGI>@Ju] ='tIL~(#W ,&B _^!>%>5<@6iJp2>@lz6E]eђD{Q;`W.JM"4Q]l{c ix{bN܆Ĩ}J)';Ký*)$Էs-yq։̵bm:h {Yī$&s~IX};aLG` |퐌7e@T+jWy18tZx Fj|oLv<04J F 1)3ZgRRMڌ۞\"P#N9YV~~"Yǡ/,:3#j--/#N:Z\TQEwr=ֵy@؜VHBOjx-čyVè[TiJ[?$G1iMQd/;fq g;}ɱ~o4RT9\e;/'Sʴ|5wEE {{vCKU֞Nv?UVqJ]Mim w Uɥ52#)*Iؠt  ƾ*s>K^G WE*KMp+d˓qˑS@@eàkzh;Fu6RԜ w=8b"UiJC),vzZv> RDJ"QD%(DJ"QD%(DJ"QP쨇EI1+Mz!nD֟7)#Ju<\h]#28Án$SlG v&mS2TBRеT 9 ֚u|gs9m[%T7&+y%J($eJCV+v8jΐIldK9Gk}O 'k~z $I=ƺ<@n\]N)DS/X22r/Z_Կ"y_Fo*3^+ [26ڄ1$F}\G⎼4-H^YtU)DJ"QWDS?| n#mGXB:R9PW!^#MtvHRf !q cm_ kM:[>)$wwBX=#րo0W5JJ"Q׆ J.~ OMyK[kJyQRE{Ψ< ^eHq |]]7i,ן(י0:Uї2f>_*E?RΣ}qg`痳ฝ~i,U9?YjBӷ¯R<w巣3UC/=%ܱI}m;ͤ-BRB}:mʸ *3ŧĿ|,E>͇Yyiʴi髄G>a 1_O&X.?8];eҤˌUb*ZaREjo_+SCߍ|_g'¼mݏ{>)OnĹOX[X&GϾo? +3}u/'n-Vf25myp$-yH#GO\N}*My/{ #Ds8|V%~LT~bk :vt+Zލosq91--4ص_:K3!Mk @ )Jx(%ZrTiJka{<7tsΧs4Gq0#|2}ݍ6txw&i ̍,D 88׸k\q˫d?aiht?|fdL9ՆnM\V ׳NOwIsOJIVܗ1 ¶aŏ|;yof-=J?kƒ«Kbx4aLJ t<99@N8tD+ qKkUĄ,+SKtLq-R]);ĝAVYlL򱸓q~A-)vTݪLq lkFN*t,m2Z֕ET\F̑ý |BBA+u֡uH/p>ӡBh m4  ɝ瑎;)0pZhJ"QQ I`yP,{1ӡaǒN!iKѲu^)B/t6N$aXI0d0`YulP "0#i rW$*ݒ&Y%yZқHRJI"Nt3Sl$ѳsu|1ۈ#t+WD%(nmv Dj\!>ʯ&MW)Ŏf%wdyLjiZv7VJqɘ=9 U;xHZ{RBx\rϷ>{K^>q KuE|ϐ8g򎑵w/*QacLf_"OS{6'beD<ѥ#_*K ?{}t+:EޑRusN@ ՞u##7a۹axV%(DJ"QD%(DJ"QD%(DJ"Qz`܌!hKa[WbhZ#׆^$- 5<Ⳬ?+4a˞!o /JSՓrxVxDL"`i½Š"=N2[Aۋ֤n!/+R G`E^h0Z?ֶ = ) KxBlƖBD%d87;0,ոZK!5KhN:Gxmr[&\Kt D+u.I2gǤfZָa\f9'qQ \:|*R5v2[tx\|Nw֎ƅVmui\y!CGm#_R{Q5w[f݀|y$d)YO+fgq謖kCvU6ry,D:G5$V*)&H{I[[*C0c$|!h=ީRꛐݴȐFPԍu:!뮜o8 ;vѺ5̷ZKsA%5[8V-nY-Ĕ @|EGPަ+S3hZ>}䒺.fhe3aYwpU^D%(DJ"QD%*Qp8zi.hJJTų\كb׬!YK`]pFO8>Ysnrey0O*vKR̨G8Df-2W|rSѩ:% )]}lJS2P!iN$U&*Q4$Acp_ Q_;e?eR^+Rտ"Ƴ,V՜9F}kϲ嶩{CQ2^U=5!{[[u6[aiV)K;yn%{A^JT(DJ"NmK'@y!KhmAHZOq ;|NLD WΒ#a8+ٍ̍XL+3m^bcȡ6x7-̐{O:~]II5N:^83ޖw &umVJ>)m)לKM-ŞT;I'.0sDNKSui-jU9С*'DVOoWt ;]z+}"d uhJ'5\N']p> xj+d ; Xwq Ns Iz:--_ > M'ɁOrV!Y}tDCwkuin@\^b4Dho)Y]RKihqw1X^P;_I}YZ=ZY%6[yZd\IW㯏OG <=AH$RE sRDJ"QPiטqulʃ+I*JFH[1ǯNzM)En mG4;}cԅr ZU×<|f–Yq֗Zu  RB%ˇ3gJj8.IMvKQ xBmtô Js $ΆCA] qM(TSO]ڝǞ6#v̇.R[2TR6ӕT}u=cU]gfHTe; |*%k V%] ^tg?eT^*V|dZH=|4jec^Ӱ*HXU=/ #qP0* nWOxYv'mjh6s5;GZD]J%gF n6KhkS~L|k)bS[Ǭx6LL>IZ.V鷼޸bߴԾ>VQ̱&JPD-[pګbjHӪ$Ja:)}`{lG:ՈɚǏe!^5VS ߕ}X3&ޟu|Q%:!Ry\ove3ZD1^U]{i09;gm?ٚ܉Aa:1lL:#WXs|6ھ}D%(RK1^\~I<JP=(l'Q*'U8y oK=p%j_%$Ҵ.wCpǤ/ʴ`0!+W2c䀥Iŋ.@À[,w&WbIc:='|ݪqZBuRēiI݌z{i$vaXp;hr۫:UIVGg'+5 }#w:Wuzwa8mnh>wi9UlzSJfLA!$ mqSܓXW;*YfYׇPJC0wA~G; 0(ZlD%(DJ"QD%(DJ"QDRxukzmͺGK2Sp%[>CKmn;=}{/8}g_w92ub0=jVAjr*E2_)s*"^jֿ"Q$[w\*dKFjݺ#Wt hUtѿ-\U5H*ӿkJ∔D%*-m3NƯ2 #,x|k zoͽ3wo-<a旺w_g?dtFةucŝٙlJS~aϿɨ+;kTAF.8%Kl\I$9ȃc(ϔ9no⯃n%)-‹m< C9ۼv7q>(Y/hwz5^^;+t**Q(DJ"QD%(DJ"Θ6R.&| ]},%|R)IФiu 5Cs5S>a1[n)&a"2QO~1w ˋ3-l:^\q*RAs [7D\6Sf`I\2MAs* s10cXnf'oWq2lfԕ-7y(4è@'ଶ _6IۅGf&_dY\X+b5.shQRR >)Xo AJkRDJ"Q*;^ØXށsڣ;\>C >zʿ۵EʂLf: )1u92khw-֣}j.45 $Z=(cs !8`6̳GN{eTJk@Iff8vAXGҴ4T)J"Q + 5 F*=nMoÅ9M؄+辫j䧕Dg1҇#޴a[<'zm״Lo/[BB8>cZG/n?x1sO >];}W \^[,zMhf޼7ntЏAs,> U"T/zezbWNyZ |TII'TFtJZmYo1{@4euCgh Zhf :IIv}R{;e^V܅J|?Lg r1#0ⶒ0P4Kܣ[ [s,ͼp =>o Fz\1ޠvoH1PD%(DJ"QD%(DJ"QQ&(ŊUmV]me)HZhmW:c$?qc"1$GqTQ nQ1֬ݷ\,^E55 TD$+jI*!jYPx+Pp2eHA瞌1ȭ>, #O_&;{x?k)]B @z;}Q/@hRU7m}3dl3\|~kBEoTQ(DJ"QD%(DJ"QD%*Qt1`dW%AzljYAW(M}ts:͚+%Ӿ|ǩRNC|_n ~dԷI#-su ']׀4R2PXGϷzɕs>a׳gb_"QE2_)s*"^j׿"Qp eFB/Jm,*I 4"uХۨ2.-z cILrN{mʧ}*N5 TQ hDUQ;_E ݥ!TQD%(DJ"QD%)ҁ}1&J$)-nS Sn$56S'7cAiIS]-$n_KZTē~:;_T(DJ"QD%*Hu0)nFrj^OioV]I4ɶTf$ʯ~WƸ4uQ]cDB[}cc,W)RK%'r*5O [4N yde kԶ4aFՏ_cQ3 PRǸ>$"շObyͤ2Daʅ$GUi.6Ky҇H^!jv &z-cx㰅h]:nbddI11.X8m0نثS}JHJQD%(DJ&K#3`(zm\ӃQV84=CWK5u2|杹VŦMҙm2#So.޾ $CW%8hSzOͿ\Q-[tѵ\1 y{Awi-;Z2"BR~WJGbIӱ!Zj?9Uctɴ ͯpqm~ӳ=I(xխVqEn8T(NZu.$VkCD`8T*D%(DJ"QD%(DJH`ƿW qMj D>s#gXgy%e9x.WSz[[‹8> -v|O~^8v?U_*M~tLTQE2_)s*"^jп"Qx2umk[Hyu%4N%hZI Jv&uQL7!c[WKs{DHRVPP!@#ֻdrܸ-u-W։w*yģ:jT޼:\υ0LGox4Vig;|]X6?MK1.RyX-)x7/'Vosmg+lY<@\dfn~ =<BRB(ZH!@GvKLYp8׻ơJT"Te :Ć!P.$) J* G  ,psp#"6*\C tdBMuZuY,nyG L]Q;kji9eW6_wZPo"3h0>c8*0ܛem'J]AӝRJOHkiݳ+UMiPlGꝣ]mrǮRR&Rx=IU]"kCAɿxRUͥҏ+b}9y0\VnEt1>FgjN4ΑE|:ɚOͲV-8޳cXGoPjp\>WEmpn&V;=`}[`{_VM#< ^('qu]dt>blGG+:ڊV$F֒gs2Yk Db]%sIA|҈D%(DJ"QD%(DJ:C܋Lm! ^m~nqas8UU:#_iց[ONP.-%#;+Dȹy[ MM+O- RD%(DJ"Q;;h5H*(DJ"QD%(DJ"QD%J޳\1aU>. J}nGrʆFY+[p޵|wNvU& hY o7xꕎ5[if>SKGдk. 1lǂw8Crm-3y;My5kqze𯱚S4tLwұk|LuC]t+pDk髕5VHces@hVꊩ.=Ki]u}+(DJ"Q}6̧u̪\օyWѿ"QD-A"V:mVaVf[ٌRtQ$%;B*NYc&Ibi)j!3$G]y!{x`U*.&xKlaTr ?%N5z|?cSw"?P63TO۳c>~"mٱ?CrDCϟ9H~ivlgQ?P63R(v~ݛ?)O;m?n͌㔊'f|EO۳c>~"mٱ?CrDCϟ9H~ivlgQ?P63R(v~ݛ?)O;m?n͌㔊'f|EO۳c>~"mٱ?CrDCϟ9H~ivlgQ?P63R(v~ݛ?)O;m?n͌㔊'f|EO۳c>~"mٱ?CrDCϟ9H~ivlgQ?P63R(v~ݛ?*bemE{{F-{ֆdHumY-J|;!&R+;cZ_1;0kqaњ4c.R2[n.va-A߄բ?cRKn޵_T;;ÙSҟjN]Mav;U `irm;NM,Ƙ#/b-3Fxs"=ʥ{=5hZct"Ǯ[2V:OM^?Sҽz~SŸsgj~ƥNJ~:??A߄K/?޵_Tw_{;~?QԱ*o|})֫tO1t*o1eF^ݢD t{ TX4mL{}I61qh&#AYoDY.<@z6YwIK٦,%Qː')mK ^+߄K/?޵_T+}l]˽Bg뫭rBC9ZJBݤV|Ζ ,s2;#"9cKOMdIy=Ϙm~"mٱ?CrDCϟ9H~ivlgQ?P63R(v~ݛ?)O;m?n͌㔊'f|EO۳c>~"mٱ?CrDCϟ9H~ivlgQ?P63R(v~ݛ?(J}c6ܪpi$)I~3: 4ܲ ((֭T&K-l4 `G+uLokAhh< 3VD ۃQӎ sӴ='M {cۭk #mw_;;ÙK/>WZӪ}SOMOԿO޵_T;;ÙSҟjNOv9w?35?cRK?z~SŸsgj~ƥNJ~:??A߄K/>UuO ~ 9:_|})֫pc~s?S5/tSW>)?'j_}ZӪ}SOMOԿO޵_T;;ÙSҟjNOv9w?35?cRK?z~SŸsgj~ƥNJ~:??A߄K/>UuO ~ 9:_|})֫pc~s?S5/tSW>)?'j_}ZӪ}SOMOԿO޵_T;;ÙSҟjNOv9w?35?cRK?z~SŸsgj~ƥNJ~:??A߄K/>UuO ~ 9:_|})֫pc~s?S5/tSW>)?'j_}ZӪ}SOMOԿO޵_T;;ÙSҟjNOv9w?35?cRKğjN_$Rŷ|0!p,BT!ғ\ w+M@{H<*~X6ý2^So#-0w(k+[%ty, vVd%Հ$@Fi] ke,Ym2@yH-3ʴEmLʇ8M' ,<Cϟ9W?P63R(v~ݛ?)O;m?n͌㔊'f|EO۳c>~"mٱ?CrDCϟ9H}&tmQeZmøXfJv.]ɹ.ADv(,Wο?{1_elracodelangela/images/sort_desc.png0000755000176700017710000000031111061563454020364 0ustar essawireessawirePNG  IHDR [AtEXtCreation Time - &PptIME 3JH pHYs  ~ PLTETtRNS@f%IDATxc0) R`@Ppe R@y?5gIENDB`elracodelangela/images/apply_f2.png0000755000176700017710000000251011061563454020116 0ustar essawireessawirePNG  IHDR DsBITOwPLTE۵ܻ̬ơɝ㣼֖ˊԄ~}zuqnp~ދjesft`]h~Zx~o|UySvrw]uRuOsjsMqbq`odpVoIlNiffDg\fGd@cScE`N_>\9\>ZM\HZ5Y;X3X2V@U4R1R:S5Q+Nomn,}tRNS1 pHYs B4%tEXtSoftwareMacromedia Fireworks MX 2004vIDATxem[0R":2VT([mb8T&06aWaK(}s\Ii*}т.3>^N)NsN^Zv'?]%8_4~5z2mCMPv! \ sa HRaE86 xI8 - 5)F<%뾇q<< Æq~ӭEYF%[(|XAdeX;*t%FPB{%;&x<.0(JmG@d8.W|~{g"Xw@94oy#~ZUu<~NuL:%Ww %/7Xhz4oq"Rrs%6Ya/U 2^4YPӮ/‚(ah,"#e!b: D()hhW+,>0  ifLF;u-fO"ߖ5\T<2'MmjrZmtծo 'M멪څڟ'8D>_޶'+.3x-m>A _ֻ@g$dIENDB`elracodelangela/cgi-bin/0000755000176700017710000000000011072634011015724 5ustar essawireessawireelracodelangela/libraries/0000755000176700017710000000000011061563616016402 5ustar essawireessawireelracodelangela/libraries/simplepie/0000755000176700017710000000000011061563617020372 5ustar essawireessawireelracodelangela/libraries/simplepie/idn/0000755000176700017710000000000011061563617021144 5ustar essawireessawireelracodelangela/libraries/simplepie/idn/ReadMe.txt0000755000176700017710000001124411061563475023051 0ustar essawireessawire******************************************************************************* * * * IDNA Convert (idna_convert.class.php) * * * * http://idnaconv.phlymail.de mailto:phlymail@phlylabs.de * ******************************************************************************* * (c) 2004-2007 phlyLabs, Berlin * * This file is encoded in UTF-8 * ******************************************************************************* Introduction ------------ The class idna_convert allows to convert internationalized domain names (see RFC 3490, 3491, 3492 and 3454 for detials) as they can be used with various registries worldwide to be translated between their original (localized) form and their encoded form as it will be used in the DNS (Domain Name System). The class provides two public methods, encode() and decode(), which do exactly what you would expect them to do. You are allowed to use complete domain names, simple strings and complete email addresses as well. That means, that you might use any of the following notations: - www.nörgler.com - xn--nrgler-wxa - xn--brse-5qa.xn--knrz-1ra.info Errors, incorrectly encoded or invalid strings will lead to either a FALSE response (when in strict mode) or to only partially converted strings. You can query the occured error by calling the method get_last_error(). Unicode strings are expected to be either UTF-8 strings, UCS-4 strings or UCS-4 arrays. The default format is UTF-8. For setting different encodings, you can call the method setParams() - please see the inline documentation for details. ACE strings (the Punycode form) are always 7bit ASCII strings. ATTENTION: We no longer supply the PHP5 version of the class. It is not necessary for achieving a successfull conversion, since the supplied PHP code is compatible with both PHP4 and PHP5. We expect to see no compatibility issues with the upcoming PHP6, too. Files ----- idna_convert.class.php - The actual class idna_convert.create.npdata.php - Useful for (re)creating the NPData file npdata.ser - Serialized data for NamePrep example.php - An example web page for converting ReadMe.txt - This file LICENCE - The LGPL licence file The class is contained in idna_convert.class.php. MAKE SURE to copy the npdata.ser file into the same folder as the class file itself! Examples -------- 1. Say we wish to encode the domain name nörgler.com: // Include the class include_once('idna_convert.class.php'); // Instantiate it * $IDN = new idna_convert(); // The input string, if input is not UTF-8 or UCS-4, it must be converted before $input = utf8_encode('nörgler.com'); // Encode it to its punycode presentation $output = $IDN->encode($input); // Output, what we got now echo $output; // This will read: xn--nrgler-wxa.com 2. We received an email from a punycoded domain and are willing to learn, how the domain name reads originally // Include the class include_once('idna_convert.class.php'); // Instantiate it (depending on the version you are using) with $IDN = new idna_convert(); // The input string $input = 'andre@xn--brse-5qa.xn--knrz-1ra.info'; // Encode it to its punycode presentation $output = $IDN->decode($input); // Output, what we got now, if output should be in a format different to UTF-8 // or UCS-4, you will have to convert it before outputting it echo utf8_decode($output); // This will read: andre@börse.knörz.info 3. The input is read from a UCS-4 coded file and encoded line by line. By appending the optional second parameter we tell enode() about the input format to be used // Include the class include_once('idna_convert.class.php'); // Instantiate it $IDN = new dinca_convert(); // Iterate through the input file line by line foreach (file('ucs4-domains.txt') as $line) { echo $IDN->encode(trim($line), 'ucs4_string'); echo "\n"; } NPData ------ Should you need to recreate the npdata.ser file, which holds all necessary translation tables in a serialized format, you can run the file idna_convert.create.npdata.php, which creates the file for you and stores it in the same folder, where it is placed. Should you need to do changes to the tables you can do so, but beware of the consequences. Contact us ---------- In case of errors, bugs, questions, wishes, please don't hesitate to contact us under the email address above. The team of phlyLabs http://phlylabs.de mailto:phlymail@phlylabs.deelracodelangela/libraries/simplepie/idn/LICENCE0000755000176700017710000006362311061563475022150 0ustar essawireessawire GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! elracodelangela/libraries/simplepie/idn/index.html0000755000176700017710000000005411061563475023145 0ustar essawireessawireelracodelangela/libraries/simplepie/idn/npdata.ser0000755000176700017710000012260111061563475023135 0ustar essawireessawirea:6:{s:11:"map_nothing";a:27:{i:0;i:173;i:1;i:847;i:2;i:6150;i:3;i:6155;i:4;i:6156;i:5;i:6157;i:6;i:8203;i:7;i:8204;i:8;i:8205;i:9;i:8288;i:10;i:65024;i:11;i:65025;i:12;i:65026;i:13;i:65027;i:14;i:65028;i:15;i:65029;i:16;i:65030;i:17;i:65031;i:18;i:65032;i:19;i:65033;i:20;i:65034;i:21;i:65035;i:22;i:65036;i:23;i:65037;i:24;i:65038;i:25;i:65039;i:26;i:65279;}s:18:"general_prohibited";a:64:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;i:10;i:10;i:11;i:11;i:12;i:12;i:13;i:13;i:14;i:14;i:15;i:15;i:16;i:16;i:17;i:17;i:18;i:18;i:19;i:19;i:20;i:20;i:21;i:21;i:22;i:22;i:23;i:23;i:24;i:24;i:25;i:25;i:26;i:26;i:27;i:27;i:28;i:28;i:29;i:29;i:30;i:30;i:31;i:31;i:32;i:32;i:33;i:33;i:34;i:34;i:35;i:35;i:36;i:36;i:37;i:37;i:38;i:38;i:39;i:39;i:40;i:40;i:41;i:41;i:42;i:42;i:43;i:43;i:44;i:44;i:45;i:47;i:46;i:59;i:47;i:60;i:48;i:61;i:49;i:62;i:50;i:63;i:51;i:64;i:52;i:91;i:53;i:92;i:54;i:93;i:55;i:94;i:56;i:95;i:57;i:96;i:58;i:123;i:59;i:124;i:60;i:125;i:61;i:126;i:62;i:127;i:63;i:12290;}s:8:"prohibit";a:84:{i:0;i:160;i:1;i:5760;i:2;i:8192;i:3;i:8193;i:4;i:8194;i:5;i:8195;i:6;i:8196;i:7;i:8197;i:8;i:8198;i:9;i:8199;i:10;i:8200;i:11;i:8201;i:12;i:8202;i:13;i:8203;i:14;i:8239;i:15;i:8287;i:16;i:12288;i:17;i:1757;i:18;i:1807;i:19;i:6158;i:20;i:8204;i:21;i:8205;i:22;i:8232;i:23;i:8233;i:24;i:65279;i:25;i:65529;i:26;i:65530;i:27;i:65531;i:28;i:65532;i:29;i:65534;i:30;i:65535;i:31;i:131070;i:32;i:131071;i:33;i:196606;i:34;i:196607;i:35;i:262142;i:36;i:262143;i:37;i:327678;i:38;i:327679;i:39;i:393214;i:40;i:393215;i:41;i:458750;i:42;i:458751;i:43;i:524286;i:44;i:524287;i:45;i:589822;i:46;i:589823;i:47;i:655358;i:48;i:655359;i:49;i:720894;i:50;i:720895;i:51;i:786430;i:52;i:786431;i:53;i:851966;i:54;i:851967;i:55;i:917502;i:56;i:917503;i:57;i:983038;i:58;i:983039;i:59;i:1048574;i:60;i:1048575;i:61;i:1114110;i:62;i:1114111;i:63;i:65529;i:64;i:65530;i:65;i:65531;i:66;i:65532;i:67;i:65533;i:68;i:832;i:69;i:833;i:70;i:8206;i:71;i:8207;i:72;i:8234;i:73;i:8235;i:74;i:8236;i:75;i:8237;i:76;i:8238;i:77;i:8298;i:78;i:8299;i:79;i:8300;i:80;i:8301;i:81;i:8302;i:82;i:8303;i:83;i:917505;}s:15:"prohibit_ranges";a:10:{i:0;a:2:{i:0;i:128;i:1;i:159;}i:1;a:2:{i:0;i:8288;i:1;i:8303;}i:2;a:2:{i:0;i:119155;i:1;i:119162;}i:3;a:2:{i:0;i:57344;i:1;i:63743;}i:4;a:2:{i:0;i:983040;i:1;i:1048573;}i:5;a:2:{i:0;i:1048576;i:1;i:1114109;}i:6;a:2:{i:0;i:64976;i:1;i:65007;}i:7;a:2:{i:0;i:55296;i:1;i:57343;}i:8;a:2:{i:0;i:12272;i:1;i:12283;}i:9;a:2:{i:0;i:917536;i:1;i:917631;}}s:11:"replacemaps";a:1401:{i:65;a:1:{i:0;i:97;}i:66;a:1:{i:0;i:98;}i:67;a:1:{i:0;i:99;}i:68;a:1:{i:0;i:100;}i:69;a:1:{i:0;i:101;}i:70;a:1:{i:0;i:102;}i:71;a:1:{i:0;i:103;}i:72;a:1:{i:0;i:104;}i:73;a:1:{i:0;i:105;}i:74;a:1:{i:0;i:106;}i:75;a:1:{i:0;i:107;}i:76;a:1:{i:0;i:108;}i:77;a:1:{i:0;i:109;}i:78;a:1:{i:0;i:110;}i:79;a:1:{i:0;i:111;}i:80;a:1:{i:0;i:112;}i:81;a:1:{i:0;i:113;}i:82;a:1:{i:0;i:114;}i:83;a:1:{i:0;i:115;}i:84;a:1:{i:0;i:116;}i:85;a:1:{i:0;i:117;}i:86;a:1:{i:0;i:118;}i:87;a:1:{i:0;i:119;}i:88;a:1:{i:0;i:120;}i:89;a:1:{i:0;i:121;}i:90;a:1:{i:0;i:122;}i:181;a:1:{i:0;i:956;}i:192;a:1:{i:0;i:224;}i:193;a:1:{i:0;i:225;}i:194;a:1:{i:0;i:226;}i:195;a:1:{i:0;i:227;}i:196;a:1:{i:0;i:228;}i:197;a:1:{i:0;i:229;}i:198;a:1:{i:0;i:230;}i:199;a:1:{i:0;i:231;}i:200;a:1:{i:0;i:232;}i:201;a:1:{i:0;i:233;}i:202;a:1:{i:0;i:234;}i:203;a:1:{i:0;i:235;}i:204;a:1:{i:0;i:236;}i:205;a:1:{i:0;i:237;}i:206;a:1:{i:0;i:238;}i:207;a:1:{i:0;i:239;}i:208;a:1:{i:0;i:240;}i:209;a:1:{i:0;i:241;}i:210;a:1:{i:0;i:242;}i:211;a:1:{i:0;i:243;}i:212;a:1:{i:0;i:244;}i:213;a:1:{i:0;i:245;}i:214;a:1:{i:0;i:246;}i:216;a:1:{i:0;i:248;}i:217;a:1:{i:0;i:249;}i:218;a:1:{i:0;i:250;}i:219;a:1:{i:0;i:251;}i:220;a:1:{i:0;i:252;}i:221;a:1:{i:0;i:253;}i:222;a:1:{i:0;i:254;}i:223;a:2:{i:0;i:115;i:1;i:115;}i:256;a:1:{i:0;i:257;}i:258;a:1:{i:0;i:259;}i:260;a:1:{i:0;i:261;}i:262;a:1:{i:0;i:263;}i:264;a:1:{i:0;i:265;}i:266;a:1:{i:0;i:267;}i:268;a:1:{i:0;i:269;}i:270;a:1:{i:0;i:271;}i:272;a:1:{i:0;i:273;}i:274;a:1:{i:0;i:275;}i:276;a:1:{i:0;i:277;}i:278;a:1:{i:0;i:279;}i:280;a:1:{i:0;i:281;}i:282;a:1:{i:0;i:283;}i:284;a:1:{i:0;i:285;}i:286;a:1:{i:0;i:287;}i:288;a:1:{i:0;i:289;}i:290;a:1:{i:0;i:291;}i:292;a:1:{i:0;i:293;}i:294;a:1:{i:0;i:295;}i:296;a:1:{i:0;i:297;}i:298;a:1:{i:0;i:299;}i:300;a:1:{i:0;i:301;}i:302;a:1:{i:0;i:303;}i:304;a:2:{i:0;i:105;i:1;i:775;}i:306;a:1:{i:0;i:307;}i:308;a:1:{i:0;i:309;}i:310;a:1:{i:0;i:311;}i:313;a:1:{i:0;i:314;}i:315;a:1:{i:0;i:316;}i:317;a:1:{i:0;i:318;}i:319;a:1:{i:0;i:320;}i:321;a:1:{i:0;i:322;}i:323;a:1:{i:0;i:324;}i:325;a:1:{i:0;i:326;}i:327;a:1:{i:0;i:328;}i:329;a:2:{i:0;i:700;i:1;i:110;}i:330;a:1:{i:0;i:331;}i:332;a:1:{i:0;i:333;}i:334;a:1:{i:0;i:335;}i:336;a:1:{i:0;i:337;}i:338;a:1:{i:0;i:339;}i:340;a:1:{i:0;i:341;}i:342;a:1:{i:0;i:343;}i:344;a:1:{i:0;i:345;}i:346;a:1:{i:0;i:347;}i:348;a:1:{i:0;i:349;}i:350;a:1:{i:0;i:351;}i:352;a:1:{i:0;i:353;}i:354;a:1:{i:0;i:355;}i:356;a:1:{i:0;i:357;}i:358;a:1:{i:0;i:359;}i:360;a:1:{i:0;i:361;}i:362;a:1:{i:0;i:363;}i:364;a:1:{i:0;i:365;}i:366;a:1:{i:0;i:367;}i:368;a:1:{i:0;i:369;}i:370;a:1:{i:0;i:371;}i:372;a:1:{i:0;i:373;}i:374;a:1:{i:0;i:375;}i:376;a:1:{i:0;i:255;}i:377;a:1:{i:0;i:378;}i:379;a:1:{i:0;i:380;}i:381;a:1:{i:0;i:382;}i:383;a:1:{i:0;i:115;}i:385;a:1:{i:0;i:595;}i:386;a:1:{i:0;i:387;}i:388;a:1:{i:0;i:389;}i:390;a:1:{i:0;i:596;}i:391;a:1:{i:0;i:392;}i:393;a:1:{i:0;i:598;}i:394;a:1:{i:0;i:599;}i:395;a:1:{i:0;i:396;}i:398;a:1:{i:0;i:477;}i:399;a:1:{i:0;i:601;}i:400;a:1:{i:0;i:603;}i:401;a:1:{i:0;i:402;}i:403;a:1:{i:0;i:608;}i:404;a:1:{i:0;i:611;}i:406;a:1:{i:0;i:617;}i:407;a:1:{i:0;i:616;}i:408;a:1:{i:0;i:409;}i:412;a:1:{i:0;i:623;}i:413;a:1:{i:0;i:626;}i:415;a:1:{i:0;i:629;}i:416;a:1:{i:0;i:417;}i:418;a:1:{i:0;i:419;}i:420;a:1:{i:0;i:421;}i:422;a:1:{i:0;i:640;}i:423;a:1:{i:0;i:424;}i:425;a:1:{i:0;i:643;}i:428;a:1:{i:0;i:429;}i:430;a:1:{i:0;i:648;}i:431;a:1:{i:0;i:432;}i:433;a:1:{i:0;i:650;}i:434;a:1:{i:0;i:651;}i:435;a:1:{i:0;i:436;}i:437;a:1:{i:0;i:438;}i:439;a:1:{i:0;i:658;}i:440;a:1:{i:0;i:441;}i:444;a:1:{i:0;i:445;}i:452;a:1:{i:0;i:454;}i:453;a:1:{i:0;i:454;}i:455;a:1:{i:0;i:457;}i:456;a:1:{i:0;i:457;}i:458;a:1:{i:0;i:460;}i:459;a:1:{i:0;i:460;}i:461;a:1:{i:0;i:462;}i:463;a:1:{i:0;i:464;}i:465;a:1:{i:0;i:466;}i:467;a:1:{i:0;i:468;}i:469;a:1:{i:0;i:470;}i:471;a:1:{i:0;i:472;}i:473;a:1:{i:0;i:474;}i:475;a:1:{i:0;i:476;}i:478;a:1:{i:0;i:479;}i:480;a:1:{i:0;i:481;}i:482;a:1:{i:0;i:483;}i:484;a:1:{i:0;i:485;}i:486;a:1:{i:0;i:487;}i:488;a:1:{i:0;i:489;}i:490;a:1:{i:0;i:491;}i:492;a:1:{i:0;i:493;}i:494;a:1:{i:0;i:495;}i:496;a:2:{i:0;i:106;i:1;i:780;}i:497;a:1:{i:0;i:499;}i:498;a:1:{i:0;i:499;}i:500;a:1:{i:0;i:501;}i:502;a:1:{i:0;i:405;}i:503;a:1:{i:0;i:447;}i:504;a:1:{i:0;i:505;}i:506;a:1:{i:0;i:507;}i:508;a:1:{i:0;i:509;}i:510;a:1:{i:0;i:511;}i:512;a:1:{i:0;i:513;}i:514;a:1:{i:0;i:515;}i:516;a:1:{i:0;i:517;}i:518;a:1:{i:0;i:519;}i:520;a:1:{i:0;i:521;}i:522;a:1:{i:0;i:523;}i:524;a:1:{i:0;i:525;}i:526;a:1:{i:0;i:527;}i:528;a:1:{i:0;i:529;}i:530;a:1:{i:0;i:531;}i:532;a:1:{i:0;i:533;}i:534;a:1:{i:0;i:535;}i:536;a:1:{i:0;i:537;}i:538;a:1:{i:0;i:539;}i:540;a:1:{i:0;i:541;}i:542;a:1:{i:0;i:543;}i:544;a:1:{i:0;i:414;}i:546;a:1:{i:0;i:547;}i:548;a:1:{i:0;i:549;}i:550;a:1:{i:0;i:551;}i:552;a:1:{i:0;i:553;}i:554;a:1:{i:0;i:555;}i:556;a:1:{i:0;i:557;}i:558;a:1:{i:0;i:559;}i:560;a:1:{i:0;i:561;}i:562;a:1:{i:0;i:563;}i:837;a:1:{i:0;i:953;}i:890;a:2:{i:0;i:32;i:1;i:953;}i:902;a:1:{i:0;i:940;}i:904;a:1:{i:0;i:941;}i:905;a:1:{i:0;i:942;}i:906;a:1:{i:0;i:943;}i:908;a:1:{i:0;i:972;}i:910;a:1:{i:0;i:973;}i:911;a:1:{i:0;i:974;}i:912;a:3:{i:0;i:953;i:1;i:776;i:2;i:769;}i:913;a:1:{i:0;i:945;}i:914;a:1:{i:0;i:946;}i:915;a:1:{i:0;i:947;}i:916;a:1:{i:0;i:948;}i:917;a:1:{i:0;i:949;}i:918;a:1:{i:0;i:950;}i:919;a:1:{i:0;i:951;}i:920;a:1:{i:0;i:952;}i:921;a:1:{i:0;i:953;}i:922;a:1:{i:0;i:954;}i:923;a:1:{i:0;i:955;}i:924;a:1:{i:0;i:956;}i:925;a:1:{i:0;i:957;}i:926;a:1:{i:0;i:958;}i:927;a:1:{i:0;i:959;}i:928;a:1:{i:0;i:960;}i:929;a:1:{i:0;i:961;}i:931;a:1:{i:0;i:963;}i:932;a:1:{i:0;i:964;}i:933;a:1:{i:0;i:965;}i:934;a:1:{i:0;i:966;}i:935;a:1:{i:0;i:967;}i:936;a:1:{i:0;i:968;}i:937;a:1:{i:0;i:969;}i:938;a:1:{i:0;i:970;}i:939;a:1:{i:0;i:971;}i:944;a:3:{i:0;i:965;i:1;i:776;i:2;i:769;}i:962;a:1:{i:0;i:963;}i:976;a:1:{i:0;i:946;}i:977;a:1:{i:0;i:952;}i:978;a:1:{i:0;i:965;}i:979;a:1:{i:0;i:973;}i:980;a:1:{i:0;i:971;}i:981;a:1:{i:0;i:966;}i:982;a:1:{i:0;i:960;}i:984;a:1:{i:0;i:985;}i:986;a:1:{i:0;i:987;}i:988;a:1:{i:0;i:989;}i:990;a:1:{i:0;i:991;}i:992;a:1:{i:0;i:993;}i:994;a:1:{i:0;i:995;}i:996;a:1:{i:0;i:997;}i:998;a:1:{i:0;i:999;}i:1000;a:1:{i:0;i:1001;}i:1002;a:1:{i:0;i:1003;}i:1004;a:1:{i:0;i:1005;}i:1006;a:1:{i:0;i:1007;}i:1008;a:1:{i:0;i:954;}i:1009;a:1:{i:0;i:961;}i:1010;a:1:{i:0;i:963;}i:1012;a:1:{i:0;i:952;}i:1013;a:1:{i:0;i:949;}i:1024;a:1:{i:0;i:1104;}i:1025;a:1:{i:0;i:1105;}i:1026;a:1:{i:0;i:1106;}i:1027;a:1:{i:0;i:1107;}i:1028;a:1:{i:0;i:1108;}i:1029;a:1:{i:0;i:1109;}i:1030;a:1:{i:0;i:1110;}i:1031;a:1:{i:0;i:1111;}i:1032;a:1:{i:0;i:1112;}i:1033;a:1:{i:0;i:1113;}i:1034;a:1:{i:0;i:1114;}i:1035;a:1:{i:0;i:1115;}i:1036;a:1:{i:0;i:1116;}i:1037;a:1:{i:0;i:1117;}i:1038;a:1:{i:0;i:1118;}i:1039;a:1:{i:0;i:1119;}i:1040;a:1:{i:0;i:1072;}i:1041;a:1:{i:0;i:1073;}i:1042;a:1:{i:0;i:1074;}i:1043;a:1:{i:0;i:1075;}i:1044;a:1:{i:0;i:1076;}i:1045;a:1:{i:0;i:1077;}i:1046;a:1:{i:0;i:1078;}i:1047;a:1:{i:0;i:1079;}i:1048;a:1:{i:0;i:1080;}i:1049;a:1:{i:0;i:1081;}i:1050;a:1:{i:0;i:1082;}i:1051;a:1:{i:0;i:1083;}i:1052;a:1:{i:0;i:1084;}i:1053;a:1:{i:0;i:1085;}i:1054;a:1:{i:0;i:1086;}i:1055;a:1:{i:0;i:1087;}i:1056;a:1:{i:0;i:1088;}i:1057;a:1:{i:0;i:1089;}i:1058;a:1:{i:0;i:1090;}i:1059;a:1:{i:0;i:1091;}i:1060;a:1:{i:0;i:1092;}i:1061;a:1:{i:0;i:1093;}i:1062;a:1:{i:0;i:1094;}i:1063;a:1:{i:0;i:1095;}i:1064;a:1:{i:0;i:1096;}i:1065;a:1:{i:0;i:1097;}i:1066;a:1:{i:0;i:1098;}i:1067;a:1:{i:0;i:1099;}i:1068;a:1:{i:0;i:1100;}i:1069;a:1:{i:0;i:1101;}i:1070;a:1:{i:0;i:1102;}i:1071;a:1:{i:0;i:1103;}i:1120;a:1:{i:0;i:1121;}i:1122;a:1:{i:0;i:1123;}i:1124;a:1:{i:0;i:1125;}i:1126;a:1:{i:0;i:1127;}i:1128;a:1:{i:0;i:1129;}i:1130;a:1:{i:0;i:1131;}i:1132;a:1:{i:0;i:1133;}i:1134;a:1:{i:0;i:1135;}i:1136;a:1:{i:0;i:1137;}i:1138;a:1:{i:0;i:1139;}i:1140;a:1:{i:0;i:1141;}i:1142;a:1:{i:0;i:1143;}i:1144;a:1:{i:0;i:1145;}i:1146;a:1:{i:0;i:1147;}i:1148;a:1:{i:0;i:1149;}i:1150;a:1:{i:0;i:1151;}i:1152;a:1:{i:0;i:1153;}i:1162;a:1:{i:0;i:1163;}i:1164;a:1:{i:0;i:1165;}i:1166;a:1:{i:0;i:1167;}i:1168;a:1:{i:0;i:1169;}i:1170;a:1:{i:0;i:1171;}i:1172;a:1:{i:0;i:1173;}i:1174;a:1:{i:0;i:1175;}i:1176;a:1:{i:0;i:1177;}i:1178;a:1:{i:0;i:1179;}i:1180;a:1:{i:0;i:1181;}i:1182;a:1:{i:0;i:1183;}i:1184;a:1:{i:0;i:1185;}i:1186;a:1:{i:0;i:1187;}i:1188;a:1:{i:0;i:1189;}i:1190;a:1:{i:0;i:1191;}i:1192;a:1:{i:0;i:1193;}i:1194;a:1:{i:0;i:1195;}i:1196;a:1:{i:0;i:1197;}i:1198;a:1:{i:0;i:1199;}i:1200;a:1:{i:0;i:1201;}i:1202;a:1:{i:0;i:1203;}i:1204;a:1:{i:0;i:1205;}i:1206;a:1:{i:0;i:1207;}i:1208;a:1:{i:0;i:1209;}i:1210;a:1:{i:0;i:1211;}i:1212;a:1:{i:0;i:1213;}i:1214;a:1:{i:0;i:1215;}i:1217;a:1:{i:0;i:1218;}i:1219;a:1:{i:0;i:1220;}i:1221;a:1:{i:0;i:1222;}i:1223;a:1:{i:0;i:1224;}i:1225;a:1:{i:0;i:1226;}i:1227;a:1:{i:0;i:1228;}i:1229;a:1:{i:0;i:1230;}i:1232;a:1:{i:0;i:1233;}i:1234;a:1:{i:0;i:1235;}i:1236;a:1:{i:0;i:1237;}i:1238;a:1:{i:0;i:1239;}i:1240;a:1:{i:0;i:1241;}i:1242;a:1:{i:0;i:1243;}i:1244;a:1:{i:0;i:1245;}i:1246;a:1:{i:0;i:1247;}i:1248;a:1:{i:0;i:1249;}i:1250;a:1:{i:0;i:1251;}i:1252;a:1:{i:0;i:1253;}i:1254;a:1:{i:0;i:1255;}i:1256;a:1:{i:0;i:1257;}i:1258;a:1:{i:0;i:1259;}i:1260;a:1:{i:0;i:1261;}i:1262;a:1:{i:0;i:1263;}i:1264;a:1:{i:0;i:1265;}i:1266;a:1:{i:0;i:1267;}i:1268;a:1:{i:0;i:1269;}i:1272;a:1:{i:0;i:1273;}i:1280;a:1:{i:0;i:1281;}i:1282;a:1:{i:0;i:1283;}i:1284;a:1:{i:0;i:1285;}i:1286;a:1:{i:0;i:1287;}i:1288;a:1:{i:0;i:1289;}i:1290;a:1:{i:0;i:1291;}i:1292;a:1:{i:0;i:1293;}i:1294;a:1:{i:0;i:1295;}i:1329;a:1:{i:0;i:1377;}i:1330;a:1:{i:0;i:1378;}i:1331;a:1:{i:0;i:1379;}i:1332;a:1:{i:0;i:1380;}i:1333;a:1:{i:0;i:1381;}i:1334;a:1:{i:0;i:1382;}i:1335;a:1:{i:0;i:1383;}i:1336;a:1:{i:0;i:1384;}i:1337;a:1:{i:0;i:1385;}i:1338;a:1:{i:0;i:1386;}i:1339;a:1:{i:0;i:1387;}i:1340;a:1:{i:0;i:1388;}i:1341;a:1:{i:0;i:1389;}i:1342;a:1:{i:0;i:1390;}i:1343;a:1:{i:0;i:1391;}i:1344;a:1:{i:0;i:1392;}i:1345;a:1:{i:0;i:1393;}i:1346;a:1:{i:0;i:1394;}i:1347;a:1:{i:0;i:1395;}i:1348;a:1:{i:0;i:1396;}i:1349;a:1:{i:0;i:1397;}i:1350;a:1:{i:0;i:1398;}i:1351;a:1:{i:0;i:1399;}i:1352;a:1:{i:0;i:1400;}i:1353;a:1:{i:0;i:1401;}i:1354;a:1:{i:0;i:1402;}i:1355;a:1:{i:0;i:1403;}i:1356;a:1:{i:0;i:1404;}i:1357;a:1:{i:0;i:1405;}i:1358;a:1:{i:0;i:1406;}i:1359;a:1:{i:0;i:1407;}i:1360;a:1:{i:0;i:1408;}i:1361;a:1:{i:0;i:1409;}i:1362;a:1:{i:0;i:1410;}i:1363;a:1:{i:0;i:1411;}i:1364;a:1:{i:0;i:1412;}i:1365;a:1:{i:0;i:1413;}i:1366;a:1:{i:0;i:1414;}i:1415;a:2:{i:0;i:1381;i:1;i:1410;}i:7680;a:1:{i:0;i:7681;}i:7682;a:1:{i:0;i:7683;}i:7684;a:1:{i:0;i:7685;}i:7686;a:1:{i:0;i:7687;}i:7688;a:1:{i:0;i:7689;}i:7690;a:1:{i:0;i:7691;}i:7692;a:1:{i:0;i:7693;}i:7694;a:1:{i:0;i:7695;}i:7696;a:1:{i:0;i:7697;}i:7698;a:1:{i:0;i:7699;}i:7700;a:1:{i:0;i:7701;}i:7702;a:1:{i:0;i:7703;}i:7704;a:1:{i:0;i:7705;}i:7706;a:1:{i:0;i:7707;}i:7708;a:1:{i:0;i:7709;}i:7710;a:1:{i:0;i:7711;}i:7712;a:1:{i:0;i:7713;}i:7714;a:1:{i:0;i:7715;}i:7716;a:1:{i:0;i:7717;}i:7718;a:1:{i:0;i:7719;}i:7720;a:1:{i:0;i:7721;}i:7722;a:1:{i:0;i:7723;}i:7724;a:1:{i:0;i:7725;}i:7726;a:1:{i:0;i:7727;}i:7728;a:1:{i:0;i:7729;}i:7730;a:1:{i:0;i:7731;}i:7732;a:1:{i:0;i:7733;}i:7734;a:1:{i:0;i:7735;}i:7736;a:1:{i:0;i:7737;}i:7738;a:1:{i:0;i:7739;}i:7740;a:1:{i:0;i:7741;}i:7742;a:1:{i:0;i:7743;}i:7744;a:1:{i:0;i:7745;}i:7746;a:1:{i:0;i:7747;}i:7748;a:1:{i:0;i:7749;}i:7750;a:1:{i:0;i:7751;}i:7752;a:1:{i:0;i:7753;}i:7754;a:1:{i:0;i:7755;}i:7756;a:1:{i:0;i:7757;}i:7758;a:1:{i:0;i:7759;}i:7760;a:1:{i:0;i:7761;}i:7762;a:1:{i:0;i:7763;}i:7764;a:1:{i:0;i:7765;}i:7766;a:1:{i:0;i:7767;}i:7768;a:1:{i:0;i:7769;}i:7770;a:1:{i:0;i:7771;}i:7772;a:1:{i:0;i:7773;}i:7774;a:1:{i:0;i:7775;}i:7776;a:1:{i:0;i:7777;}i:7778;a:1:{i:0;i:7779;}i:7780;a:1:{i:0;i:7781;}i:7782;a:1:{i:0;i:7783;}i:7784;a:1:{i:0;i:7785;}i:7786;a:1:{i:0;i:7787;}i:7788;a:1:{i:0;i:7789;}i:7790;a:1:{i:0;i:7791;}i:7792;a:1:{i:0;i:7793;}i:7794;a:1:{i:0;i:7795;}i:7796;a:1:{i:0;i:7797;}i:7798;a:1:{i:0;i:7799;}i:7800;a:1:{i:0;i:7801;}i:7802;a:1:{i:0;i:7803;}i:7804;a:1:{i:0;i:7805;}i:7806;a:1:{i:0;i:7807;}i:7808;a:1:{i:0;i:7809;}i:7810;a:1:{i:0;i:7811;}i:7812;a:1:{i:0;i:7813;}i:7814;a:1:{i:0;i:7815;}i:7816;a:1:{i:0;i:7817;}i:7818;a:1:{i:0;i:7819;}i:7820;a:1:{i:0;i:7821;}i:7822;a:1:{i:0;i:7823;}i:7824;a:1:{i:0;i:7825;}i:7826;a:1:{i:0;i:7827;}i:7828;a:1:{i:0;i:7829;}i:7830;a:2:{i:0;i:104;i:1;i:817;}i:7831;a:2:{i:0;i:116;i:1;i:776;}i:7832;a:2:{i:0;i:119;i:1;i:778;}i:7833;a:2:{i:0;i:121;i:1;i:778;}i:7834;a:2:{i:0;i:97;i:1;i:702;}i:7835;a:1:{i:0;i:7777;}i:7840;a:1:{i:0;i:7841;}i:7842;a:1:{i:0;i:7843;}i:7844;a:1:{i:0;i:7845;}i:7846;a:1:{i:0;i:7847;}i:7848;a:1:{i:0;i:7849;}i:7850;a:1:{i:0;i:7851;}i:7852;a:1:{i:0;i:7853;}i:7854;a:1:{i:0;i:7855;}i:7856;a:1:{i:0;i:7857;}i:7858;a:1:{i:0;i:7859;}i:7860;a:1:{i:0;i:7861;}i:7862;a:1:{i:0;i:7863;}i:7864;a:1:{i:0;i:7865;}i:7866;a:1:{i:0;i:7867;}i:7868;a:1:{i:0;i:7869;}i:7870;a:1:{i:0;i:7871;}i:7872;a:1:{i:0;i:7873;}i:7874;a:1:{i:0;i:7875;}i:7876;a:1:{i:0;i:7877;}i:7878;a:1:{i:0;i:7879;}i:7880;a:1:{i:0;i:7881;}i:7882;a:1:{i:0;i:7883;}i:7884;a:1:{i:0;i:7885;}i:7886;a:1:{i:0;i:7887;}i:7888;a:1:{i:0;i:7889;}i:7890;a:1:{i:0;i:7891;}i:7892;a:1:{i:0;i:7893;}i:7894;a:1:{i:0;i:7895;}i:7896;a:1:{i:0;i:7897;}i:7898;a:1:{i:0;i:7899;}i:7900;a:1:{i:0;i:7901;}i:7902;a:1:{i:0;i:7903;}i:7904;a:1:{i:0;i:7905;}i:7906;a:1:{i:0;i:7907;}i:7908;a:1:{i:0;i:7909;}i:7910;a:1:{i:0;i:7911;}i:7912;a:1:{i:0;i:7913;}i:7914;a:1:{i:0;i:7915;}i:7916;a:1:{i:0;i:7917;}i:7918;a:1:{i:0;i:7919;}i:7920;a:1:{i:0;i:7921;}i:7922;a:1:{i:0;i:7923;}i:7924;a:1:{i:0;i:7925;}i:7926;a:1:{i:0;i:7927;}i:7928;a:1:{i:0;i:7929;}i:7944;a:1:{i:0;i:7936;}i:7945;a:1:{i:0;i:7937;}i:7946;a:1:{i:0;i:7938;}i:7947;a:1:{i:0;i:7939;}i:7948;a:1:{i:0;i:7940;}i:7949;a:1:{i:0;i:7941;}i:7950;a:1:{i:0;i:7942;}i:7951;a:1:{i:0;i:7943;}i:7960;a:1:{i:0;i:7952;}i:7961;a:1:{i:0;i:7953;}i:7962;a:1:{i:0;i:7954;}i:7963;a:1:{i:0;i:7955;}i:7964;a:1:{i:0;i:7956;}i:7965;a:1:{i:0;i:7957;}i:7976;a:1:{i:0;i:7968;}i:7977;a:1:{i:0;i:7969;}i:7978;a:1:{i:0;i:7970;}i:7979;a:1:{i:0;i:7971;}i:7980;a:1:{i:0;i:7972;}i:7981;a:1:{i:0;i:7973;}i:7982;a:1:{i:0;i:7974;}i:7983;a:1:{i:0;i:7975;}i:7992;a:1:{i:0;i:7984;}i:7993;a:1:{i:0;i:7985;}i:7994;a:1:{i:0;i:7986;}i:7995;a:1:{i:0;i:7987;}i:7996;a:1:{i:0;i:7988;}i:7997;a:1:{i:0;i:7989;}i:7998;a:1:{i:0;i:7990;}i:7999;a:1:{i:0;i:7991;}i:8008;a:1:{i:0;i:8000;}i:8009;a:1:{i:0;i:8001;}i:8010;a:1:{i:0;i:8002;}i:8011;a:1:{i:0;i:8003;}i:8012;a:1:{i:0;i:8004;}i:8013;a:1:{i:0;i:8005;}i:8016;a:2:{i:0;i:965;i:1;i:787;}i:8018;a:3:{i:0;i:965;i:1;i:787;i:2;i:768;}i:8020;a:3:{i:0;i:965;i:1;i:787;i:2;i:769;}i:8022;a:3:{i:0;i:965;i:1;i:787;i:2;i:834;}i:8025;a:1:{i:0;i:8017;}i:8027;a:1:{i:0;i:8019;}i:8029;a:1:{i:0;i:8021;}i:8031;a:1:{i:0;i:8023;}i:8040;a:1:{i:0;i:8032;}i:8041;a:1:{i:0;i:8033;}i:8042;a:1:{i:0;i:8034;}i:8043;a:1:{i:0;i:8035;}i:8044;a:1:{i:0;i:8036;}i:8045;a:1:{i:0;i:8037;}i:8046;a:1:{i:0;i:8038;}i:8047;a:1:{i:0;i:8039;}i:8064;a:2:{i:0;i:7936;i:1;i:953;}i:8065;a:2:{i:0;i:7937;i:1;i:953;}i:8066;a:2:{i:0;i:7938;i:1;i:953;}i:8067;a:2:{i:0;i:7939;i:1;i:953;}i:8068;a:2:{i:0;i:7940;i:1;i:953;}i:8069;a:2:{i:0;i:7941;i:1;i:953;}i:8070;a:2:{i:0;i:7942;i:1;i:953;}i:8071;a:2:{i:0;i:7943;i:1;i:953;}i:8072;a:2:{i:0;i:7936;i:1;i:953;}i:8073;a:2:{i:0;i:7937;i:1;i:953;}i:8074;a:2:{i:0;i:7938;i:1;i:953;}i:8075;a:2:{i:0;i:7939;i:1;i:953;}i:8076;a:2:{i:0;i:7940;i:1;i:953;}i:8077;a:2:{i:0;i:7941;i:1;i:953;}i:8078;a:2:{i:0;i:7942;i:1;i:953;}i:8079;a:2:{i:0;i:7943;i:1;i:953;}i:8080;a:2:{i:0;i:7968;i:1;i:953;}i:8081;a:2:{i:0;i:7969;i:1;i:953;}i:8082;a:2:{i:0;i:7970;i:1;i:953;}i:8083;a:2:{i:0;i:7971;i:1;i:953;}i:8084;a:2:{i:0;i:7972;i:1;i:953;}i:8085;a:2:{i:0;i:7973;i:1;i:953;}i:8086;a:2:{i:0;i:7974;i:1;i:953;}i:8087;a:2:{i:0;i:7975;i:1;i:953;}i:8088;a:2:{i:0;i:7968;i:1;i:953;}i:8089;a:2:{i:0;i:7969;i:1;i:953;}i:8090;a:2:{i:0;i:7970;i:1;i:953;}i:8091;a:2:{i:0;i:7971;i:1;i:953;}i:8092;a:2:{i:0;i:7972;i:1;i:953;}i:8093;a:2:{i:0;i:7973;i:1;i:953;}i:8094;a:2:{i:0;i:7974;i:1;i:953;}i:8095;a:2:{i:0;i:7975;i:1;i:953;}i:8096;a:2:{i:0;i:8032;i:1;i:953;}i:8097;a:2:{i:0;i:8033;i:1;i:953;}i:8098;a:2:{i:0;i:8034;i:1;i:953;}i:8099;a:2:{i:0;i:8035;i:1;i:953;}i:8100;a:2:{i:0;i:8036;i:1;i:953;}i:8101;a:2:{i:0;i:8037;i:1;i:953;}i:8102;a:2:{i:0;i:8038;i:1;i:953;}i:8103;a:2:{i:0;i:8039;i:1;i:953;}i:8104;a:2:{i:0;i:8032;i:1;i:953;}i:8105;a:2:{i:0;i:8033;i:1;i:953;}i:8106;a:2:{i:0;i:8034;i:1;i:953;}i:8107;a:2:{i:0;i:8035;i:1;i:953;}i:8108;a:2:{i:0;i:8036;i:1;i:953;}i:8109;a:2:{i:0;i:8037;i:1;i:953;}i:8110;a:2:{i:0;i:8038;i:1;i:953;}i:8111;a:2:{i:0;i:8039;i:1;i:953;}i:8114;a:2:{i:0;i:8048;i:1;i:953;}i:8115;a:2:{i:0;i:945;i:1;i:953;}i:8116;a:2:{i:0;i:940;i:1;i:953;}i:8118;a:2:{i:0;i:945;i:1;i:834;}i:8119;a:3:{i:0;i:945;i:1;i:834;i:2;i:953;}i:8120;a:1:{i:0;i:8112;}i:8121;a:1:{i:0;i:8113;}i:8122;a:1:{i:0;i:8048;}i:8123;a:1:{i:0;i:8049;}i:8124;a:2:{i:0;i:945;i:1;i:953;}i:8126;a:1:{i:0;i:953;}i:8130;a:2:{i:0;i:8052;i:1;i:953;}i:8131;a:2:{i:0;i:951;i:1;i:953;}i:8132;a:2:{i:0;i:942;i:1;i:953;}i:8134;a:2:{i:0;i:951;i:1;i:834;}i:8135;a:3:{i:0;i:951;i:1;i:834;i:2;i:953;}i:8136;a:1:{i:0;i:8050;}i:8137;a:1:{i:0;i:8051;}i:8138;a:1:{i:0;i:8052;}i:8139;a:1:{i:0;i:8053;}i:8140;a:2:{i:0;i:951;i:1;i:953;}i:8146;a:3:{i:0;i:953;i:1;i:776;i:2;i:768;}i:8147;a:3:{i:0;i:953;i:1;i:776;i:2;i:769;}i:8150;a:2:{i:0;i:953;i:1;i:834;}i:8151;a:3:{i:0;i:953;i:1;i:776;i:2;i:834;}i:8152;a:1:{i:0;i:8144;}i:8153;a:1:{i:0;i:8145;}i:8154;a:1:{i:0;i:8054;}i:8155;a:1:{i:0;i:8055;}i:8162;a:3:{i:0;i:965;i:1;i:776;i:2;i:768;}i:8163;a:3:{i:0;i:965;i:1;i:776;i:2;i:769;}i:8164;a:2:{i:0;i:961;i:1;i:787;}i:8166;a:2:{i:0;i:965;i:1;i:834;}i:8167;a:3:{i:0;i:965;i:1;i:776;i:2;i:834;}i:8168;a:1:{i:0;i:8160;}i:8169;a:1:{i:0;i:8161;}i:8170;a:1:{i:0;i:8058;}i:8171;a:1:{i:0;i:8059;}i:8172;a:1:{i:0;i:8165;}i:8178;a:2:{i:0;i:8060;i:1;i:953;}i:8179;a:2:{i:0;i:969;i:1;i:953;}i:8180;a:2:{i:0;i:974;i:1;i:953;}i:8182;a:2:{i:0;i:969;i:1;i:834;}i:8183;a:3:{i:0;i:969;i:1;i:834;i:2;i:953;}i:8184;a:1:{i:0;i:8056;}i:8185;a:1:{i:0;i:8057;}i:8186;a:1:{i:0;i:8060;}i:8187;a:1:{i:0;i:8061;}i:8188;a:2:{i:0;i:969;i:1;i:953;}i:8360;a:2:{i:0;i:114;i:1;i:115;}i:8450;a:1:{i:0;i:99;}i:8451;a:2:{i:0;i:176;i:1;i:99;}i:8455;a:1:{i:0;i:603;}i:8457;a:2:{i:0;i:176;i:1;i:102;}i:8459;a:1:{i:0;i:104;}i:8460;a:1:{i:0;i:104;}i:8461;a:1:{i:0;i:104;}i:8464;a:1:{i:0;i:105;}i:8465;a:1:{i:0;i:105;}i:8466;a:1:{i:0;i:108;}i:8469;a:1:{i:0;i:110;}i:8470;a:2:{i:0;i:110;i:1;i:111;}i:8473;a:1:{i:0;i:112;}i:8474;a:1:{i:0;i:113;}i:8475;a:1:{i:0;i:114;}i:8476;a:1:{i:0;i:114;}i:8477;a:1:{i:0;i:114;}i:8480;a:2:{i:0;i:115;i:1;i:109;}i:8481;a:3:{i:0;i:116;i:1;i:101;i:2;i:108;}i:8482;a:2:{i:0;i:116;i:1;i:109;}i:8484;a:1:{i:0;i:122;}i:8486;a:1:{i:0;i:969;}i:8488;a:1:{i:0;i:122;}i:8490;a:1:{i:0;i:107;}i:8491;a:1:{i:0;i:229;}i:8492;a:1:{i:0;i:98;}i:8493;a:1:{i:0;i:99;}i:8496;a:1:{i:0;i:101;}i:8497;a:1:{i:0;i:102;}i:8499;a:1:{i:0;i:109;}i:8510;a:1:{i:0;i:947;}i:8511;a:1:{i:0;i:960;}i:8517;a:1:{i:0;i:100;}i:8544;a:1:{i:0;i:8560;}i:8545;a:1:{i:0;i:8561;}i:8546;a:1:{i:0;i:8562;}i:8547;a:1:{i:0;i:8563;}i:8548;a:1:{i:0;i:8564;}i:8549;a:1:{i:0;i:8565;}i:8550;a:1:{i:0;i:8566;}i:8551;a:1:{i:0;i:8567;}i:8552;a:1:{i:0;i:8568;}i:8553;a:1:{i:0;i:8569;}i:8554;a:1:{i:0;i:8570;}i:8555;a:1:{i:0;i:8571;}i:8556;a:1:{i:0;i:8572;}i:8557;a:1:{i:0;i:8573;}i:8558;a:1:{i:0;i:8574;}i:8559;a:1:{i:0;i:8575;}i:9398;a:1:{i:0;i:9424;}i:9399;a:1:{i:0;i:9425;}i:9400;a:1:{i:0;i:9426;}i:9401;a:1:{i:0;i:9427;}i:9402;a:1:{i:0;i:9428;}i:9403;a:1:{i:0;i:9429;}i:9404;a:1:{i:0;i:9430;}i:9405;a:1:{i:0;i:9431;}i:9406;a:1:{i:0;i:9432;}i:9407;a:1:{i:0;i:9433;}i:9408;a:1:{i:0;i:9434;}i:9409;a:1:{i:0;i:9435;}i:9410;a:1:{i:0;i:9436;}i:9411;a:1:{i:0;i:9437;}i:9412;a:1:{i:0;i:9438;}i:9413;a:1:{i:0;i:9439;}i:9414;a:1:{i:0;i:9440;}i:9415;a:1:{i:0;i:9441;}i:9416;a:1:{i:0;i:9442;}i:9417;a:1:{i:0;i:9443;}i:9418;a:1:{i:0;i:9444;}i:9419;a:1:{i:0;i:9445;}i:9420;a:1:{i:0;i:9446;}i:9421;a:1:{i:0;i:9447;}i:9422;a:1:{i:0;i:9448;}i:9423;a:1:{i:0;i:9449;}i:13169;a:3:{i:0;i:104;i:1;i:112;i:2;i:97;}i:13171;a:2:{i:0;i:97;i:1;i:117;}i:13173;a:2:{i:0;i:111;i:1;i:118;}i:13184;a:2:{i:0;i:112;i:1;i:97;}i:13185;a:2:{i:0;i:110;i:1;i:97;}i:13186;a:2:{i:0;i:956;i:1;i:97;}i:13187;a:2:{i:0;i:109;i:1;i:97;}i:13188;a:2:{i:0;i:107;i:1;i:97;}i:13189;a:2:{i:0;i:107;i:1;i:98;}i:13190;a:2:{i:0;i:109;i:1;i:98;}i:13191;a:2:{i:0;i:103;i:1;i:98;}i:13194;a:2:{i:0;i:112;i:1;i:102;}i:13195;a:2:{i:0;i:110;i:1;i:102;}i:13196;a:2:{i:0;i:956;i:1;i:102;}i:13200;a:2:{i:0;i:104;i:1;i:122;}i:13201;a:3:{i:0;i:107;i:1;i:104;i:2;i:122;}i:13202;a:3:{i:0;i:109;i:1;i:104;i:2;i:122;}i:13203;a:3:{i:0;i:103;i:1;i:104;i:2;i:122;}i:13204;a:3:{i:0;i:116;i:1;i:104;i:2;i:122;}i:13225;a:2:{i:0;i:112;i:1;i:97;}i:13226;a:3:{i:0;i:107;i:1;i:112;i:2;i:97;}i:13227;a:3:{i:0;i:109;i:1;i:112;i:2;i:97;}i:13228;a:3:{i:0;i:103;i:1;i:112;i:2;i:97;}i:13236;a:2:{i:0;i:112;i:1;i:118;}i:13237;a:2:{i:0;i:110;i:1;i:118;}i:13238;a:2:{i:0;i:956;i:1;i:118;}i:13239;a:2:{i:0;i:109;i:1;i:118;}i:13240;a:2:{i:0;i:107;i:1;i:118;}i:13241;a:2:{i:0;i:109;i:1;i:118;}i:13242;a:2:{i:0;i:112;i:1;i:119;}i:13243;a:2:{i:0;i:110;i:1;i:119;}i:13244;a:2:{i:0;i:956;i:1;i:119;}i:13245;a:2:{i:0;i:109;i:1;i:119;}i:13246;a:2:{i:0;i:107;i:1;i:119;}i:13247;a:2:{i:0;i:109;i:1;i:119;}i:13248;a:2:{i:0;i:107;i:1;i:969;}i:13249;a:2:{i:0;i:109;i:1;i:969;}i:13251;a:2:{i:0;i:98;i:1;i:113;}i:13254;a:4:{i:0;i:99;i:1;i:8725;i:2;i:107;i:3;i:103;}i:13255;a:3:{i:0;i:99;i:1;i:111;i:2;i:46;}i:13256;a:2:{i:0;i:100;i:1;i:98;}i:13257;a:2:{i:0;i:103;i:1;i:121;}i:13259;a:2:{i:0;i:104;i:1;i:112;}i:13261;a:2:{i:0;i:107;i:1;i:107;}i:13262;a:2:{i:0;i:107;i:1;i:109;}i:13271;a:2:{i:0;i:112;i:1;i:104;}i:13273;a:3:{i:0;i:112;i:1;i:112;i:2;i:109;}i:13274;a:2:{i:0;i:112;i:1;i:114;}i:13276;a:2:{i:0;i:115;i:1;i:118;}i:13277;a:2:{i:0;i:119;i:1;i:98;}i:64256;a:2:{i:0;i:102;i:1;i:102;}i:64257;a:2:{i:0;i:102;i:1;i:105;}i:64258;a:2:{i:0;i:102;i:1;i:108;}i:64259;a:3:{i:0;i:102;i:1;i:102;i:2;i:105;}i:64260;a:3:{i:0;i:102;i:1;i:102;i:2;i:108;}i:64261;a:2:{i:0;i:115;i:1;i:116;}i:64262;a:2:{i:0;i:115;i:1;i:116;}i:64275;a:2:{i:0;i:1396;i:1;i:1398;}i:64276;a:2:{i:0;i:1396;i:1;i:1381;}i:64277;a:2:{i:0;i:1396;i:1;i:1387;}i:64278;a:2:{i:0;i:1406;i:1;i:1398;}i:64279;a:2:{i:0;i:1396;i:1;i:1389;}i:65313;a:1:{i:0;i:65345;}i:65314;a:1:{i:0;i:65346;}i:65315;a:1:{i:0;i:65347;}i:65316;a:1:{i:0;i:65348;}i:65317;a:1:{i:0;i:65349;}i:65318;a:1:{i:0;i:65350;}i:65319;a:1:{i:0;i:65351;}i:65320;a:1:{i:0;i:65352;}i:65321;a:1:{i:0;i:65353;}i:65322;a:1:{i:0;i:65354;}i:65323;a:1:{i:0;i:65355;}i:65324;a:1:{i:0;i:65356;}i:65325;a:1:{i:0;i:65357;}i:65326;a:1:{i:0;i:65358;}i:65327;a:1:{i:0;i:65359;}i:65328;a:1:{i:0;i:65360;}i:65329;a:1:{i:0;i:65361;}i:65330;a:1:{i:0;i:65362;}i:65331;a:1:{i:0;i:65363;}i:65332;a:1:{i:0;i:65364;}i:65333;a:1:{i:0;i:65365;}i:65334;a:1:{i:0;i:65366;}i:65335;a:1:{i:0;i:65367;}i:65336;a:1:{i:0;i:65368;}i:65337;a:1:{i:0;i:65369;}i:65338;a:1:{i:0;i:65370;}i:66560;a:1:{i:0;i:66600;}i:66561;a:1:{i:0;i:66601;}i:66562;a:1:{i:0;i:66602;}i:66563;a:1:{i:0;i:66603;}i:66564;a:1:{i:0;i:66604;}i:66565;a:1:{i:0;i:66605;}i:66566;a:1:{i:0;i:66606;}i:66567;a:1:{i:0;i:66607;}i:66568;a:1:{i:0;i:66608;}i:66569;a:1:{i:0;i:66609;}i:66570;a:1:{i:0;i:66610;}i:66571;a:1:{i:0;i:66611;}i:66572;a:1:{i:0;i:66612;}i:66573;a:1:{i:0;i:66613;}i:66574;a:1:{i:0;i:66614;}i:66575;a:1:{i:0;i:66615;}i:66576;a:1:{i:0;i:66616;}i:66577;a:1:{i:0;i:66617;}i:66578;a:1:{i:0;i:66618;}i:66579;a:1:{i:0;i:66619;}i:66580;a:1:{i:0;i:66620;}i:66581;a:1:{i:0;i:66621;}i:66582;a:1:{i:0;i:66622;}i:66583;a:1:{i:0;i:66623;}i:66584;a:1:{i:0;i:66624;}i:66585;a:1:{i:0;i:66625;}i:66586;a:1:{i:0;i:66626;}i:66587;a:1:{i:0;i:66627;}i:66588;a:1:{i:0;i:66628;}i:66589;a:1:{i:0;i:66629;}i:66590;a:1:{i:0;i:66630;}i:66591;a:1:{i:0;i:66631;}i:66592;a:1:{i:0;i:66632;}i:66593;a:1:{i:0;i:66633;}i:66594;a:1:{i:0;i:66634;}i:66595;a:1:{i:0;i:66635;}i:66596;a:1:{i:0;i:66636;}i:66597;a:1:{i:0;i:66637;}i:119808;a:1:{i:0;i:97;}i:119809;a:1:{i:0;i:98;}i:119810;a:1:{i:0;i:99;}i:119811;a:1:{i:0;i:100;}i:119812;a:1:{i:0;i:101;}i:119813;a:1:{i:0;i:102;}i:119814;a:1:{i:0;i:103;}i:119815;a:1:{i:0;i:104;}i:119816;a:1:{i:0;i:105;}i:119817;a:1:{i:0;i:106;}i:119818;a:1:{i:0;i:107;}i:119819;a:1:{i:0;i:108;}i:119820;a:1:{i:0;i:109;}i:119821;a:1:{i:0;i:110;}i:119822;a:1:{i:0;i:111;}i:119823;a:1:{i:0;i:112;}i:119824;a:1:{i:0;i:113;}i:119825;a:1:{i:0;i:114;}i:119826;a:1:{i:0;i:115;}i:119827;a:1:{i:0;i:116;}i:119828;a:1:{i:0;i:117;}i:119829;a:1:{i:0;i:118;}i:119830;a:1:{i:0;i:119;}i:119831;a:1:{i:0;i:120;}i:119832;a:1:{i:0;i:121;}i:119833;a:1:{i:0;i:122;}i:119860;a:1:{i:0;i:97;}i:119861;a:1:{i:0;i:98;}i:119862;a:1:{i:0;i:99;}i:119863;a:1:{i:0;i:100;}i:119864;a:1:{i:0;i:101;}i:119865;a:1:{i:0;i:102;}i:119866;a:1:{i:0;i:103;}i:119867;a:1:{i:0;i:104;}i:119868;a:1:{i:0;i:105;}i:119869;a:1:{i:0;i:106;}i:119870;a:1:{i:0;i:107;}i:119871;a:1:{i:0;i:108;}i:119872;a:1:{i:0;i:109;}i:119873;a:1:{i:0;i:110;}i:119874;a:1:{i:0;i:111;}i:119875;a:1:{i:0;i:112;}i:119876;a:1:{i:0;i:113;}i:119877;a:1:{i:0;i:114;}i:119878;a:1:{i:0;i:115;}i:119879;a:1:{i:0;i:116;}i:119880;a:1:{i:0;i:117;}i:119881;a:1:{i:0;i:118;}i:119882;a:1:{i:0;i:119;}i:119883;a:1:{i:0;i:120;}i:119884;a:1:{i:0;i:121;}i:119885;a:1:{i:0;i:122;}i:119912;a:1:{i:0;i:97;}i:119913;a:1:{i:0;i:98;}i:119914;a:1:{i:0;i:99;}i:119915;a:1:{i:0;i:100;}i:119916;a:1:{i:0;i:101;}i:119917;a:1:{i:0;i:102;}i:119918;a:1:{i:0;i:103;}i:119919;a:1:{i:0;i:104;}i:119920;a:1:{i:0;i:105;}i:119921;a:1:{i:0;i:106;}i:119922;a:1:{i:0;i:107;}i:119923;a:1:{i:0;i:108;}i:119924;a:1:{i:0;i:109;}i:119925;a:1:{i:0;i:110;}i:119926;a:1:{i:0;i:111;}i:119927;a:1:{i:0;i:112;}i:119928;a:1:{i:0;i:113;}i:119929;a:1:{i:0;i:114;}i:119930;a:1:{i:0;i:115;}i:119931;a:1:{i:0;i:116;}i:119932;a:1:{i:0;i:117;}i:119933;a:1:{i:0;i:118;}i:119934;a:1:{i:0;i:119;}i:119935;a:1:{i:0;i:120;}i:119936;a:1:{i:0;i:121;}i:119937;a:1:{i:0;i:122;}i:119964;a:1:{i:0;i:97;}i:119966;a:1:{i:0;i:99;}i:119967;a:1:{i:0;i:100;}i:119970;a:1:{i:0;i:103;}i:119973;a:1:{i:0;i:106;}i:119974;a:1:{i:0;i:107;}i:119977;a:1:{i:0;i:110;}i:119978;a:1:{i:0;i:111;}i:119979;a:1:{i:0;i:112;}i:119980;a:1:{i:0;i:113;}i:119982;a:1:{i:0;i:115;}i:119983;a:1:{i:0;i:116;}i:119984;a:1:{i:0;i:117;}i:119985;a:1:{i:0;i:118;}i:119986;a:1:{i:0;i:119;}i:119987;a:1:{i:0;i:120;}i:119988;a:1:{i:0;i:121;}i:119989;a:1:{i:0;i:122;}i:120016;a:1:{i:0;i:97;}i:120017;a:1:{i:0;i:98;}i:120018;a:1:{i:0;i:99;}i:120019;a:1:{i:0;i:100;}i:120020;a:1:{i:0;i:101;}i:120021;a:1:{i:0;i:102;}i:120022;a:1:{i:0;i:103;}i:120023;a:1:{i:0;i:104;}i:120024;a:1:{i:0;i:105;}i:120025;a:1:{i:0;i:106;}i:120026;a:1:{i:0;i:107;}i:120027;a:1:{i:0;i:108;}i:120028;a:1:{i:0;i:109;}i:120029;a:1:{i:0;i:110;}i:120030;a:1:{i:0;i:111;}i:120031;a:1:{i:0;i:112;}i:120032;a:1:{i:0;i:113;}i:120033;a:1:{i:0;i:114;}i:120034;a:1:{i:0;i:115;}i:120035;a:1:{i:0;i:116;}i:120036;a:1:{i:0;i:117;}i:120037;a:1:{i:0;i:118;}i:120038;a:1:{i:0;i:119;}i:120039;a:1:{i:0;i:120;}i:120040;a:1:{i:0;i:121;}i:120041;a:1:{i:0;i:122;}i:120068;a:1:{i:0;i:97;}i:120069;a:1:{i:0;i:98;}i:120071;a:1:{i:0;i:100;}i:120072;a:1:{i:0;i:101;}i:120073;a:1:{i:0;i:102;}i:120074;a:1:{i:0;i:103;}i:120077;a:1:{i:0;i:106;}i:120078;a:1:{i:0;i:107;}i:120079;a:1:{i:0;i:108;}i:120080;a:1:{i:0;i:109;}i:120081;a:1:{i:0;i:110;}i:120082;a:1:{i:0;i:111;}i:120083;a:1:{i:0;i:112;}i:120084;a:1:{i:0;i:113;}i:120086;a:1:{i:0;i:115;}i:120087;a:1:{i:0;i:116;}i:120088;a:1:{i:0;i:117;}i:120089;a:1:{i:0;i:118;}i:120090;a:1:{i:0;i:119;}i:120091;a:1:{i:0;i:120;}i:120092;a:1:{i:0;i:121;}i:120120;a:1:{i:0;i:97;}i:120121;a:1:{i:0;i:98;}i:120123;a:1:{i:0;i:100;}i:120124;a:1:{i:0;i:101;}i:120125;a:1:{i:0;i:102;}i:120126;a:1:{i:0;i:103;}i:120128;a:1:{i:0;i:105;}i:120129;a:1:{i:0;i:106;}i:120130;a:1:{i:0;i:107;}i:120131;a:1:{i:0;i:108;}i:120132;a:1:{i:0;i:109;}i:120134;a:1:{i:0;i:111;}i:120138;a:1:{i:0;i:115;}i:120139;a:1:{i:0;i:116;}i:120140;a:1:{i:0;i:117;}i:120141;a:1:{i:0;i:118;}i:120142;a:1:{i:0;i:119;}i:120143;a:1:{i:0;i:120;}i:120144;a:1:{i:0;i:121;}i:120172;a:1:{i:0;i:97;}i:120173;a:1:{i:0;i:98;}i:120174;a:1:{i:0;i:99;}i:120175;a:1:{i:0;i:100;}i:120176;a:1:{i:0;i:101;}i:120177;a:1:{i:0;i:102;}i:120178;a:1:{i:0;i:103;}i:120179;a:1:{i:0;i:104;}i:120180;a:1:{i:0;i:105;}i:120181;a:1:{i:0;i:106;}i:120182;a:1:{i:0;i:107;}i:120183;a:1:{i:0;i:108;}i:120184;a:1:{i:0;i:109;}i:120185;a:1:{i:0;i:110;}i:120186;a:1:{i:0;i:111;}i:120187;a:1:{i:0;i:112;}i:120188;a:1:{i:0;i:113;}i:120189;a:1:{i:0;i:114;}i:120190;a:1:{i:0;i:115;}i:120191;a:1:{i:0;i:116;}i:120192;a:1:{i:0;i:117;}i:120193;a:1:{i:0;i:118;}i:120194;a:1:{i:0;i:119;}i:120195;a:1:{i:0;i:120;}i:120196;a:1:{i:0;i:121;}i:120197;a:1:{i:0;i:122;}i:120224;a:1:{i:0;i:97;}i:120225;a:1:{i:0;i:98;}i:120226;a:1:{i:0;i:99;}i:120227;a:1:{i:0;i:100;}i:120228;a:1:{i:0;i:101;}i:120229;a:1:{i:0;i:102;}i:120230;a:1:{i:0;i:103;}i:120231;a:1:{i:0;i:104;}i:120232;a:1:{i:0;i:105;}i:120233;a:1:{i:0;i:106;}i:120234;a:1:{i:0;i:107;}i:120235;a:1:{i:0;i:108;}i:120236;a:1:{i:0;i:109;}i:120237;a:1:{i:0;i:110;}i:120238;a:1:{i:0;i:111;}i:120239;a:1:{i:0;i:112;}i:120240;a:1:{i:0;i:113;}i:120241;a:1:{i:0;i:114;}i:120242;a:1:{i:0;i:115;}i:120243;a:1:{i:0;i:116;}i:120244;a:1:{i:0;i:117;}i:120245;a:1:{i:0;i:118;}i:120246;a:1:{i:0;i:119;}i:120247;a:1:{i:0;i:120;}i:120248;a:1:{i:0;i:121;}i:120249;a:1:{i:0;i:122;}i:120276;a:1:{i:0;i:97;}i:120277;a:1:{i:0;i:98;}i:120278;a:1:{i:0;i:99;}i:120279;a:1:{i:0;i:100;}i:120280;a:1:{i:0;i:101;}i:120281;a:1:{i:0;i:102;}i:120282;a:1:{i:0;i:103;}i:120283;a:1:{i:0;i:104;}i:120284;a:1:{i:0;i:105;}i:120285;a:1:{i:0;i:106;}i:120286;a:1:{i:0;i:107;}i:120287;a:1:{i:0;i:108;}i:120288;a:1:{i:0;i:109;}i:120289;a:1:{i:0;i:110;}i:120290;a:1:{i:0;i:111;}i:120291;a:1:{i:0;i:112;}i:120292;a:1:{i:0;i:113;}i:120293;a:1:{i:0;i:114;}i:120294;a:1:{i:0;i:115;}i:120295;a:1:{i:0;i:116;}i:120296;a:1:{i:0;i:117;}i:120297;a:1:{i:0;i:118;}i:120298;a:1:{i:0;i:119;}i:120299;a:1:{i:0;i:120;}i:120300;a:1:{i:0;i:121;}i:120301;a:1:{i:0;i:122;}i:120328;a:1:{i:0;i:97;}i:120329;a:1:{i:0;i:98;}i:120330;a:1:{i:0;i:99;}i:120331;a:1:{i:0;i:100;}i:120332;a:1:{i:0;i:101;}i:120333;a:1:{i:0;i:102;}i:120334;a:1:{i:0;i:103;}i:120335;a:1:{i:0;i:104;}i:120336;a:1:{i:0;i:105;}i:120337;a:1:{i:0;i:106;}i:120338;a:1:{i:0;i:107;}i:120339;a:1:{i:0;i:108;}i:120340;a:1:{i:0;i:109;}i:120341;a:1:{i:0;i:110;}i:120342;a:1:{i:0;i:111;}i:120343;a:1:{i:0;i:112;}i:120344;a:1:{i:0;i:113;}i:120345;a:1:{i:0;i:114;}i:120346;a:1:{i:0;i:115;}i:120347;a:1:{i:0;i:116;}i:120348;a:1:{i:0;i:117;}i:120349;a:1:{i:0;i:118;}i:120350;a:1:{i:0;i:119;}i:120351;a:1:{i:0;i:120;}i:120352;a:1:{i:0;i:121;}i:120353;a:1:{i:0;i:122;}i:120380;a:1:{i:0;i:97;}i:120381;a:1:{i:0;i:98;}i:120382;a:1:{i:0;i:99;}i:120383;a:1:{i:0;i:100;}i:120384;a:1:{i:0;i:101;}i:120385;a:1:{i:0;i:102;}i:120386;a:1:{i:0;i:103;}i:120387;a:1:{i:0;i:104;}i:120388;a:1:{i:0;i:105;}i:120389;a:1:{i:0;i:106;}i:120390;a:1:{i:0;i:107;}i:120391;a:1:{i:0;i:108;}i:120392;a:1:{i:0;i:109;}i:120393;a:1:{i:0;i:110;}i:120394;a:1:{i:0;i:111;}i:120395;a:1:{i:0;i:112;}i:120396;a:1:{i:0;i:113;}i:120397;a:1:{i:0;i:114;}i:120398;a:1:{i:0;i:115;}i:120399;a:1:{i:0;i:116;}i:120400;a:1:{i:0;i:117;}i:120401;a:1:{i:0;i:118;}i:120402;a:1:{i:0;i:119;}i:120403;a:1:{i:0;i:120;}i:120404;a:1:{i:0;i:121;}i:120405;a:1:{i:0;i:122;}i:120432;a:1:{i:0;i:97;}i:120433;a:1:{i:0;i:98;}i:120434;a:1:{i:0;i:99;}i:120435;a:1:{i:0;i:100;}i:120436;a:1:{i:0;i:101;}i:120437;a:1:{i:0;i:102;}i:120438;a:1:{i:0;i:103;}i:120439;a:1:{i:0;i:104;}i:120440;a:1:{i:0;i:105;}i:120441;a:1:{i:0;i:106;}i:120442;a:1:{i:0;i:107;}i:120443;a:1:{i:0;i:108;}i:120444;a:1:{i:0;i:109;}i:120445;a:1:{i:0;i:110;}i:120446;a:1:{i:0;i:111;}i:120447;a:1:{i:0;i:112;}i:120448;a:1:{i:0;i:113;}i:120449;a:1:{i:0;i:114;}i:120450;a:1:{i:0;i:115;}i:120451;a:1:{i:0;i:116;}i:120452;a:1:{i:0;i:117;}i:120453;a:1:{i:0;i:118;}i:120454;a:1:{i:0;i:119;}i:120455;a:1:{i:0;i:120;}i:120456;a:1:{i:0;i:121;}i:120457;a:1:{i:0;i:122;}i:120488;a:1:{i:0;i:945;}i:120489;a:1:{i:0;i:946;}i:120490;a:1:{i:0;i:947;}i:120491;a:1:{i:0;i:948;}i:120492;a:1:{i:0;i:949;}i:120493;a:1:{i:0;i:950;}i:120494;a:1:{i:0;i:951;}i:120495;a:1:{i:0;i:952;}i:120496;a:1:{i:0;i:953;}i:120497;a:1:{i:0;i:954;}i:120498;a:1:{i:0;i:955;}i:120499;a:1:{i:0;i:956;}i:120500;a:1:{i:0;i:957;}i:120501;a:1:{i:0;i:958;}i:120502;a:1:{i:0;i:959;}i:120503;a:1:{i:0;i:960;}i:120504;a:1:{i:0;i:961;}i:120505;a:1:{i:0;i:952;}i:120506;a:1:{i:0;i:963;}i:120507;a:1:{i:0;i:964;}i:120508;a:1:{i:0;i:965;}i:120509;a:1:{i:0;i:966;}i:120510;a:1:{i:0;i:967;}i:120511;a:1:{i:0;i:968;}i:120512;a:1:{i:0;i:969;}i:120531;a:1:{i:0;i:963;}i:120546;a:1:{i:0;i:945;}i:120547;a:1:{i:0;i:946;}i:120548;a:1:{i:0;i:947;}i:120549;a:1:{i:0;i:948;}i:120550;a:1:{i:0;i:949;}i:120551;a:1:{i:0;i:950;}i:120552;a:1:{i:0;i:951;}i:120553;a:1:{i:0;i:952;}i:120554;a:1:{i:0;i:953;}i:120555;a:1:{i:0;i:954;}i:120556;a:1:{i:0;i:955;}i:120557;a:1:{i:0;i:956;}i:120558;a:1:{i:0;i:957;}i:120559;a:1:{i:0;i:958;}i:120560;a:1:{i:0;i:959;}i:120561;a:1:{i:0;i:960;}i:120562;a:1:{i:0;i:961;}i:120563;a:1:{i:0;i:952;}i:120564;a:1:{i:0;i:963;}i:120565;a:1:{i:0;i:964;}i:120566;a:1:{i:0;i:965;}i:120567;a:1:{i:0;i:966;}i:120568;a:1:{i:0;i:967;}i:120569;a:1:{i:0;i:968;}i:120570;a:1:{i:0;i:969;}i:120589;a:1:{i:0;i:963;}i:120604;a:1:{i:0;i:945;}i:120605;a:1:{i:0;i:946;}i:120606;a:1:{i:0;i:947;}i:120607;a:1:{i:0;i:948;}i:120608;a:1:{i:0;i:949;}i:120609;a:1:{i:0;i:950;}i:120610;a:1:{i:0;i:951;}i:120611;a:1:{i:0;i:952;}i:120612;a:1:{i:0;i:953;}i:120613;a:1:{i:0;i:954;}i:120614;a:1:{i:0;i:955;}i:120615;a:1:{i:0;i:956;}i:120616;a:1:{i:0;i:957;}i:120617;a:1:{i:0;i:958;}i:120618;a:1:{i:0;i:959;}i:120619;a:1:{i:0;i:960;}i:120620;a:1:{i:0;i:961;}i:120621;a:1:{i:0;i:952;}i:120622;a:1:{i:0;i:963;}i:120623;a:1:{i:0;i:964;}i:120624;a:1:{i:0;i:965;}i:120625;a:1:{i:0;i:966;}i:120626;a:1:{i:0;i:967;}i:120627;a:1:{i:0;i:968;}i:120628;a:1:{i:0;i:969;}i:120647;a:1:{i:0;i:963;}i:120662;a:1:{i:0;i:945;}i:120663;a:1:{i:0;i:946;}i:120664;a:1:{i:0;i:947;}i:120665;a:1:{i:0;i:948;}i:120666;a:1:{i:0;i:949;}i:120667;a:1:{i:0;i:950;}i:120668;a:1:{i:0;i:951;}i:120669;a:1:{i:0;i:952;}i:120670;a:1:{i:0;i:953;}i:120671;a:1:{i:0;i:954;}i:120672;a:1:{i:0;i:955;}i:120673;a:1:{i:0;i:956;}i:120674;a:1:{i:0;i:957;}i:120675;a:1:{i:0;i:958;}i:120676;a:1:{i:0;i:959;}i:120677;a:1:{i:0;i:960;}i:120678;a:1:{i:0;i:961;}i:120679;a:1:{i:0;i:952;}i:120680;a:1:{i:0;i:963;}i:120681;a:1:{i:0;i:964;}i:120682;a:1:{i:0;i:965;}i:120683;a:1:{i:0;i:966;}i:120684;a:1:{i:0;i:967;}i:120685;a:1:{i:0;i:968;}i:120686;a:1:{i:0;i:969;}i:120705;a:1:{i:0;i:963;}i:120720;a:1:{i:0;i:945;}i:120721;a:1:{i:0;i:946;}i:120722;a:1:{i:0;i:947;}i:120723;a:1:{i:0;i:948;}i:120724;a:1:{i:0;i:949;}i:120725;a:1:{i:0;i:950;}i:120726;a:1:{i:0;i:951;}i:120727;a:1:{i:0;i:952;}i:120728;a:1:{i:0;i:953;}i:120729;a:1:{i:0;i:954;}i:120730;a:1:{i:0;i:955;}i:120731;a:1:{i:0;i:956;}i:120732;a:1:{i:0;i:957;}i:120733;a:1:{i:0;i:958;}i:120734;a:1:{i:0;i:959;}i:120735;a:1:{i:0;i:960;}i:120736;a:1:{i:0;i:961;}i:120737;a:1:{i:0;i:952;}i:120738;a:1:{i:0;i:963;}i:120739;a:1:{i:0;i:964;}i:120740;a:1:{i:0;i:965;}i:120741;a:1:{i:0;i:966;}i:120742;a:1:{i:0;i:967;}i:120743;a:1:{i:0;i:968;}i:120744;a:1:{i:0;i:969;}i:120763;a:1:{i:0;i:963;}i:1017;a:1:{i:0;i:963;}i:7468;a:1:{i:0;i:97;}i:7469;a:1:{i:0;i:230;}i:7470;a:1:{i:0;i:98;}i:7472;a:1:{i:0;i:100;}i:7473;a:1:{i:0;i:101;}i:7474;a:1:{i:0;i:477;}i:7475;a:1:{i:0;i:103;}i:7476;a:1:{i:0;i:104;}i:7477;a:1:{i:0;i:105;}i:7478;a:1:{i:0;i:106;}i:7479;a:1:{i:0;i:107;}i:7480;a:1:{i:0;i:108;}i:7481;a:1:{i:0;i:109;}i:7482;a:1:{i:0;i:110;}i:7484;a:1:{i:0;i:111;}i:7485;a:1:{i:0;i:547;}i:7486;a:1:{i:0;i:112;}i:7487;a:1:{i:0;i:114;}i:7488;a:1:{i:0;i:116;}i:7489;a:1:{i:0;i:117;}i:7490;a:1:{i:0;i:119;}i:8507;a:3:{i:0;i:102;i:1;i:97;i:2;i:120;}i:12880;a:3:{i:0;i:112;i:1;i:116;i:2;i:101;}i:13004;a:2:{i:0;i:104;i:1;i:103;}i:13006;a:2:{i:0;i:101;i:1;i:118;}i:13007;a:3:{i:0;i:108;i:1;i:116;i:2;i:100;}i:13178;a:2:{i:0;i:105;i:1;i:117;}i:13278;a:3:{i:0;i:118;i:1;i:8725;i:2;i:109;}i:13279;a:3:{i:0;i:97;i:1;i:8725;i:2;i:109;}}s:12:"norm_combcls";a:341:{i:820;i:1;i:821;i:1;i:822;i:1;i:823;i:1;i:824;i:1;i:2364;i:7;i:2492;i:7;i:2620;i:7;i:2748;i:7;i:2876;i:7;i:3260;i:7;i:4151;i:7;i:12441;i:8;i:12442;i:8;i:2381;i:9;i:2509;i:9;i:2637;i:9;i:2765;i:9;i:2893;i:9;i:3021;i:9;i:3149;i:9;i:3277;i:9;i:3405;i:9;i:3530;i:9;i:3642;i:9;i:3972;i:9;i:4153;i:9;i:5908;i:9;i:5940;i:9;i:6098;i:9;i:1456;i:10;i:1457;i:11;i:1458;i:12;i:1459;i:13;i:1460;i:14;i:1461;i:15;i:1462;i:16;i:1463;i:17;i:1464;i:18;i:1465;i:19;i:1467;i:20;i:1468;i:21;i:1469;i:22;i:1471;i:23;i:1473;i:24;i:1474;i:25;i:64286;i:26;i:1611;i:27;i:1612;i:28;i:1613;i:29;i:1614;i:30;i:1615;i:31;i:1616;i:32;i:1617;i:33;i:1618;i:34;i:1648;i:35;i:1809;i:36;i:3157;i:84;i:3158;i:91;i:3640;i:103;i:3641;i:103;i:3656;i:107;i:3657;i:107;i:3658;i:107;i:3659;i:107;i:3768;i:118;i:3769;i:118;i:3784;i:122;i:3785;i:122;i:3786;i:122;i:3787;i:122;i:3953;i:129;i:3954;i:130;i:3962;i:130;i:3963;i:130;i:3964;i:130;i:3965;i:130;i:3968;i:130;i:3956;i:132;i:801;i:202;i:802;i:202;i:807;i:202;i:808;i:202;i:795;i:216;i:3897;i:216;i:119141;i:216;i:119142;i:216;i:119150;i:216;i:119151;i:216;i:119152;i:216;i:119153;i:216;i:119154;i:216;i:12330;i:218;i:790;i:220;i:791;i:220;i:792;i:220;i:793;i:220;i:796;i:220;i:797;i:220;i:798;i:220;i:799;i:220;i:800;i:220;i:803;i:220;i:804;i:220;i:805;i:220;i:806;i:220;i:809;i:220;i:810;i:220;i:811;i:220;i:812;i:220;i:813;i:220;i:814;i:220;i:815;i:220;i:816;i:220;i:817;i:220;i:818;i:220;i:819;i:220;i:825;i:220;i:826;i:220;i:827;i:220;i:828;i:220;i:839;i:220;i:840;i:220;i:841;i:220;i:845;i:220;i:846;i:220;i:851;i:220;i:852;i:220;i:853;i:220;i:854;i:220;i:1425;i:220;i:1430;i:220;i:1435;i:220;i:1443;i:220;i:1444;i:220;i:1445;i:220;i:1446;i:220;i:1447;i:220;i:1450;i:220;i:1621;i:220;i:1622;i:220;i:1763;i:220;i:1770;i:220;i:1773;i:220;i:1841;i:220;i:1844;i:220;i:1847;i:220;i:1848;i:220;i:1849;i:220;i:1851;i:220;i:1852;i:220;i:1854;i:220;i:1858;i:220;i:1860;i:220;i:1862;i:220;i:1864;i:220;i:2386;i:220;i:3864;i:220;i:3865;i:220;i:3893;i:220;i:3895;i:220;i:4038;i:220;i:6459;i:220;i:8424;i:220;i:119163;i:220;i:119164;i:220;i:119165;i:220;i:119166;i:220;i:119167;i:220;i:119168;i:220;i:119169;i:220;i:119170;i:220;i:119178;i:220;i:119179;i:220;i:1434;i:222;i:1453;i:222;i:6441;i:222;i:12333;i:222;i:12334;i:224;i:12335;i:224;i:119149;i:226;i:1454;i:228;i:6313;i:228;i:12331;i:228;i:768;i:230;i:769;i:230;i:770;i:230;i:771;i:230;i:772;i:230;i:773;i:230;i:774;i:230;i:775;i:230;i:776;i:230;i:777;i:230;i:778;i:230;i:779;i:230;i:780;i:230;i:781;i:230;i:782;i:230;i:783;i:230;i:784;i:230;i:785;i:230;i:786;i:230;i:787;i:230;i:788;i:230;i:829;i:230;i:830;i:230;i:831;i:230;i:832;i:230;i:833;i:230;i:834;i:230;i:835;i:230;i:836;i:230;i:838;i:230;i:842;i:230;i:843;i:230;i:844;i:230;i:848;i:230;i:849;i:230;i:850;i:230;i:855;i:230;i:867;i:230;i:868;i:230;i:869;i:230;i:870;i:230;i:871;i:230;i:872;i:230;i:873;i:230;i:874;i:230;i:875;i:230;i:876;i:230;i:877;i:230;i:878;i:230;i:879;i:230;i:1155;i:230;i:1156;i:230;i:1157;i:230;i:1158;i:230;i:1426;i:230;i:1427;i:230;i:1428;i:230;i:1429;i:230;i:1431;i:230;i:1432;i:230;i:1433;i:230;i:1436;i:230;i:1437;i:230;i:1438;i:230;i:1439;i:230;i:1440;i:230;i:1441;i:230;i:1448;i:230;i:1449;i:230;i:1451;i:230;i:1452;i:230;i:1455;i:230;i:1476;i:230;i:1552;i:230;i:1553;i:230;i:1554;i:230;i:1555;i:230;i:1556;i:230;i:1557;i:230;i:1619;i:230;i:1620;i:230;i:1623;i:230;i:1624;i:230;i:1750;i:230;i:1751;i:230;i:1752;i:230;i:1753;i:230;i:1754;i:230;i:1755;i:230;i:1756;i:230;i:1759;i:230;i:1760;i:230;i:1761;i:230;i:1762;i:230;i:1764;i:230;i:1767;i:230;i:1768;i:230;i:1771;i:230;i:1772;i:230;i:1840;i:230;i:1842;i:230;i:1843;i:230;i:1845;i:230;i:1846;i:230;i:1850;i:230;i:1853;i:230;i:1855;i:230;i:1856;i:230;i:1857;i:230;i:1859;i:230;i:1861;i:230;i:1863;i:230;i:1865;i:230;i:1866;i:230;i:2385;i:230;i:2387;i:230;i:2388;i:230;i:3970;i:230;i:3971;i:230;i:3974;i:230;i:3975;i:230;i:5901;i:230;i:6458;i:230;i:8400;i:230;i:8401;i:230;i:8404;i:230;i:8405;i:230;i:8406;i:230;i:8407;i:230;i:8411;i:230;i:8412;i:230;i:8417;i:230;i:8423;i:230;i:8425;i:230;i:65056;i:230;i:65057;i:230;i:65058;i:230;i:65059;i:230;i:119173;i:230;i:119174;i:230;i:119175;i:230;i:119177;i:230;i:119176;i:230;i:119210;i:230;i:119211;i:230;i:119212;i:230;i:119213;i:230;i:789;i:232;i:794;i:232;i:12332;i:232;i:863;i:233;i:866;i:233;i:861;i:234;i:862;i:234;i:864;i:234;i:865;i:234;i:837;i:240;}}elracodelangela/libraries/simplepie/idn/idna_convert.class.php0000755000176700017710000011304611061563475025446 0ustar essawireessawire * @copyright 2004-2007 phlyLabs Berlin, http://phlylabs.de * @version 0.5.1 * */ class idna_convert { /** * Holds all relevant mapping tables, loaded from a seperate file on construct * See RFC3454 for details * * @var array * @access private */ var $NP = array(); // Internal settings, do not mess with them var $_punycode_prefix = 'xn--'; var $_invalid_ucs = 0x80000000; var $_max_ucs = 0x10FFFF; var $_base = 36; var $_tmin = 1; var $_tmax = 26; var $_skew = 38; var $_damp = 700; var $_initial_bias = 72; var $_initial_n = 0x80; var $_sbase = 0xAC00; var $_lbase = 0x1100; var $_vbase = 0x1161; var $_tbase = 0x11A7; var $_lcount = 19; var $_vcount = 21; var $_tcount = 28; var $_ncount = 588; // _vcount * _tcount var $_scount = 11172; // _lcount * _tcount * _vcount var $_error = false; // See {@link set_paramter()} for details of how to change the following // settings from within your script / application var $_api_encoding = 'utf8'; // Default input charset is UTF-8 var $_allow_overlong = false; // Overlong UTF-8 encodings are forbidden var $_strict_mode = false; // Behave strict or not // The constructor function idna_convert($options = false) { $this->slast = $this->_sbase + $this->_lcount * $this->_vcount * $this->_tcount; if (function_exists('file_get_contents')) { $this->NP = unserialize(file_get_contents(dirname(__FILE__).'/npdata.ser')); } else { $this->NP = unserialize(join('', file(dirname(__FILE__).'/npdata.ser'))); } // If parameters are given, pass these to the respective method if (is_array($options)) { return $this->set_parameter($options); } return true; } /** * Sets a new option value. Available options and values: * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8, * 'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8] * [overlong - Unicode does not allow unnecessarily long encodings of chars, * to allow this, set this parameter to true, else to false; * default is false.] * [strict - true: strict mode, good for registration purposes - Causes errors * on failures; false: loose mode, ideal for "wildlife" applications * by silently ignoring errors and returning the original input instead * * @param mixed Parameter to set (string: single parameter; array of Parameter => Value pairs) * @param string Value to use (if parameter 1 is a string) * @return boolean true on success, false otherwise * @access public */ function set_parameter($option, $value = false) { if (!is_array($option)) { $option = array($option => $value); } foreach ($option as $k => $v) { switch ($k) { case 'encoding': switch ($v) { case 'utf8': case 'ucs4_string': case 'ucs4_array': $this->_api_encoding = $v; break; default: $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k); return false; } break; case 'overlong': $this->_allow_overlong = ($v) ? true : false; break; case 'strict': $this->_strict_mode = ($v) ? true : false; break; default: $this->_error('Set Parameter: Unknown option '.$k); return false; } } return true; } /** * Decode a given ACE domain name * @param string Domain name (ACE string) * [@param string Desired output encoding, see {@link set_parameter}] * @return string Decoded Domain name (UTF-8 or UCS-4) * @access public */ function decode($input, $one_time_encoding = false) { // Optionally set if ($one_time_encoding) { switch ($one_time_encoding) { case 'utf8': case 'ucs4_string': case 'ucs4_array': break; default: $this->_error('Unknown encoding '.$one_time_encoding); return false; } } // Make sure to drop any newline characters around $input = trim($input); // Negotiate input and try to determine, whether it is a plain string, // an email address or something like a complete URL if (strpos($input, '@')) { // Maybe it is an email address // No no in strict mode if ($this->_strict_mode) { $this->_error('Only simple domain name parts can be handled in strict mode'); return false; } list ($email_pref, $input) = explode('@', $input, 2); $arr = explode('.', $input); foreach ($arr as $k => $v) { if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) { $conv = $this->_decode($v); if ($conv) $arr[$k] = $conv; } } $input = join('.', $arr); $arr = explode('.', $email_pref); foreach ($arr as $k => $v) { if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) { $conv = $this->_decode($v); if ($conv) $arr[$k] = $conv; } } $email_pref = join('.', $arr); $return = $email_pref . '@' . $input; } elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters) // No no in strict mode if ($this->_strict_mode) { $this->_error('Only simple domain name parts can be handled in strict mode'); return false; } $parsed = parse_url($input); if (isset($parsed['host'])) { $arr = explode('.', $parsed['host']); foreach ($arr as $k => $v) { $conv = $this->_decode($v); if ($conv) $arr[$k] = $conv; } $parsed['host'] = join('.', $arr); $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'].(strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')) .(empty($parsed['user']) ? '' : $parsed['user'].(empty($parsed['pass']) ? '' : ':'.$parsed['pass']).'@') .$parsed['host'] .(empty($parsed['port']) ? '' : ':'.$parsed['port']) .(empty($parsed['path']) ? '' : $parsed['path']) .(empty($parsed['query']) ? '' : '?'.$parsed['query']) .(empty($parsed['fragment']) ? '' : '#'.$parsed['fragment']); } else { // parse_url seems to have failed, try without it $arr = explode('.', $input); foreach ($arr as $k => $v) { $conv = $this->_decode($v); $arr[$k] = ($conv) ? $conv : $v; } $return = join('.', $arr); } } else { // Otherwise we consider it being a pure domain name string $return = $this->_decode($input); if (!$return) $return = $input; } // The output is UTF-8 by default, other output formats need conversion here // If one time encoding is given, use this, else the objects property switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) { case 'utf8': return $return; break; case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return)); break; case 'ucs4_array': return $this->_utf8_to_ucs4($return); break; default: $this->_error('Unsupported output format'); return false; } } /** * Encode a given UTF-8 domain name * @param string Domain name (UTF-8 or UCS-4) * [@param string Desired input encoding, see {@link set_parameter}] * @return string Encoded Domain name (ACE string) * @access public */ function encode($decoded, $one_time_encoding = false) { // Forcing conversion of input to UCS4 array // If one time encoding is given, use this, else the objects property switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) { case 'utf8': $decoded = $this->_utf8_to_ucs4($decoded); break; case 'ucs4_string': $decoded = $this->_ucs4_string_to_ucs4($decoded); case 'ucs4_array': break; default: $this->_error('Unsupported input format: '.($one_time_encoding ? $one_time_encoding : $this->_api_encoding)); return false; } // No input, no output, what else did you expect? if (empty($decoded)) return ''; // Anchors for iteration $last_begin = 0; // Output string $output = ''; foreach ($decoded as $k => $v) { // Make sure to use just the plain dot switch($v) { case 0x3002: case 0xFF0E: case 0xFF61: $decoded[$k] = 0x2E; // Right, no break here, the above are converted to dots anyway // Stumbling across an anchoring character case 0x2E: case 0x2F: case 0x3A: case 0x3F: case 0x40: // Neither email addresses nor URLs allowed in strict mode if ($this->_strict_mode) { $this->_error('Neither email addresses nor URLs are allowed in strict mode.'); return false; } else { // Skip first char if ($k) { $encoded = ''; $encoded = $this->_encode(array_slice($decoded, $last_begin, (($k)-$last_begin))); if ($encoded) { $output .= $encoded; } else { $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k)-$last_begin))); } $output .= chr($decoded[$k]); } $last_begin = $k + 1; } } } // Catch the rest of the string if ($last_begin) { $inp_len = sizeof($decoded); $encoded = ''; $encoded = $this->_encode(array_slice($decoded, $last_begin, (($inp_len)-$last_begin))); if ($encoded) { $output .= $encoded; } else { $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($inp_len)-$last_begin))); } return $output; } else { if ($output = $this->_encode($decoded)) { return $output; } else { return $this->_ucs4_to_utf8($decoded); } } } /** * Use this method to get the last error ocurred * @param void * @return string The last error, that occured * @access public */ function get_last_error() { return $this->_error; } /** * The actual decoding algorithm * @access private */ function _decode($encoded) { // We do need to find the Punycode prefix if (!preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $encoded)) { $this->_error('This is not a punycode string'); return false; } $encode_test = preg_replace('!^'.preg_quote($this->_punycode_prefix, '!').'!', '', $encoded); // If nothing left after removing the prefix, it is hopeless if (!$encode_test) { $this->_error('The given encoded string was empty'); return false; } // Find last occurence of the delimiter $delim_pos = strrpos($encoded, '-'); if ($delim_pos > strlen($this->_punycode_prefix)) { for ($k = strlen($this->_punycode_prefix); $k < $delim_pos; ++$k) { $decoded[] = ord($encoded{$k}); } } else { $decoded = array(); } $deco_len = count($decoded); $enco_len = strlen($encoded); // Wandering through the strings; init $is_first = true; $bias = $this->_initial_bias; $idx = 0; $char = $this->_initial_n; for ($enco_idx = ($delim_pos) ? ($delim_pos + 1) : 0; $enco_idx < $enco_len; ++$deco_len) { for ($old_idx = $idx, $w = 1, $k = $this->_base; 1 ; $k += $this->_base) { $digit = $this->_decode_digit($encoded{$enco_idx++}); $idx += $digit * $w; $t = ($k <= $bias) ? $this->_tmin : (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias)); if ($digit < $t) break; $w = (int) ($w * ($this->_base - $t)); } $bias = $this->_adapt($idx - $old_idx, $deco_len + 1, $is_first); $is_first = false; $char += (int) ($idx / ($deco_len + 1)); $idx %= ($deco_len + 1); if ($deco_len > 0) { // Make room for the decoded char for ($i = $deco_len; $i > $idx; $i--) { $decoded[$i] = $decoded[($i - 1)]; } } $decoded[$idx++] = $char; } return $this->_ucs4_to_utf8($decoded); } /** * The actual encoding algorithm * @access private */ function _encode($decoded) { // We cannot encode a domain name containing the Punycode prefix $extract = strlen($this->_punycode_prefix); $check_pref = $this->_utf8_to_ucs4($this->_punycode_prefix); $check_deco = array_slice($decoded, 0, $extract); if ($check_pref == $check_deco) { $this->_error('This is already a punycode string'); return false; } // We will not try to encode strings consisting of basic code points only $encodable = false; foreach ($decoded as $k => $v) { if ($v > 0x7a) { $encodable = true; break; } } if (!$encodable) { $this->_error('The given string does not contain encodable chars'); return false; } // Do NAMEPREP $decoded = $this->_nameprep($decoded); if (!$decoded || !is_array($decoded)) return false; // NAMEPREP failed $deco_len = count($decoded); if (!$deco_len) return false; // Empty array $codecount = 0; // How many chars have been consumed $encoded = ''; // Copy all basic code points to output for ($i = 0; $i < $deco_len; ++$i) { $test = $decoded[$i]; // Will match [-0-9a-zA-Z] if ((0x2F < $test && $test < 0x40) || (0x40 < $test && $test < 0x5B) || (0x60 < $test && $test <= 0x7B) || (0x2D == $test)) { $encoded .= chr($decoded[$i]); $codecount++; } } if ($codecount == $deco_len) return $encoded; // All codepoints were basic ones // Start with the prefix; copy it to output $encoded = $this->_punycode_prefix.$encoded; // If we have basic code points in output, add an hyphen to the end if ($codecount) $encoded .= '-'; // Now find and encode all non-basic code points $is_first = true; $cur_code = $this->_initial_n; $bias = $this->_initial_bias; $delta = 0; while ($codecount < $deco_len) { // Find the smallest code point >= the current code point and // remember the last ouccrence of it in the input for ($i = 0, $next_code = $this->_max_ucs; $i < $deco_len; $i++) { if ($decoded[$i] >= $cur_code && $decoded[$i] <= $next_code) { $next_code = $decoded[$i]; } } $delta += ($next_code - $cur_code) * ($codecount + 1); $cur_code = $next_code; // Scan input again and encode all characters whose code point is $cur_code for ($i = 0; $i < $deco_len; $i++) { if ($decoded[$i] < $cur_code) { $delta++; } elseif ($decoded[$i] == $cur_code) { for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) { $t = ($k <= $bias) ? $this->_tmin : (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias); if ($q < $t) break; $encoded .= $this->_encode_digit(intval($t + (($q - $t) % ($this->_base - $t)))); //v0.4.5 Changed from ceil() to intval() $q = (int) (($q - $t) / ($this->_base - $t)); } $encoded .= $this->_encode_digit($q); $bias = $this->_adapt($delta, $codecount+1, $is_first); $codecount++; $delta = 0; $is_first = false; } } $delta++; $cur_code++; } return $encoded; } /** * Adapt the bias according to the current code point and position * @access private */ function _adapt($delta, $npoints, $is_first) { $delta = intval($is_first ? ($delta / $this->_damp) : ($delta / 2)); $delta += intval($delta / $npoints); for ($k = 0; $delta > (($this->_base - $this->_tmin) * $this->_tmax) / 2; $k += $this->_base) { $delta = intval($delta / ($this->_base - $this->_tmin)); } return intval($k + ($this->_base - $this->_tmin + 1) * $delta / ($delta + $this->_skew)); } /** * Encoding a certain digit * @access private */ function _encode_digit($d) { return chr($d + 22 + 75 * ($d < 26)); } /** * Decode a certain digit * @access private */ function _decode_digit($cp) { $cp = ord($cp); return ($cp - 48 < 10) ? $cp - 22 : (($cp - 65 < 26) ? $cp - 65 : (($cp - 97 < 26) ? $cp - 97 : $this->_base)); } /** * Internal error handling method * @access private */ function _error($error = '') { $this->_error = $error; } /** * Do Nameprep according to RFC3491 and RFC3454 * @param array Unicode Characters * @return string Unicode Characters, Nameprep'd * @access private */ function _nameprep($input) { $output = array(); $error = false; // // Mapping // Walking through the input array, performing the required steps on each of // the input chars and putting the result into the output array // While mapping required chars we apply the cannonical ordering foreach ($input as $v) { // Map to nothing == skip that code point if (in_array($v, $this->NP['map_nothing'])) continue; // Try to find prohibited input if (in_array($v, $this->NP['prohibit']) || in_array($v, $this->NP['general_prohibited'])) { $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v)); return false; } foreach ($this->NP['prohibit_ranges'] as $range) { if ($range[0] <= $v && $v <= $range[1]) { $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v)); return false; } } // // Hangul syllable decomposition if (0xAC00 <= $v && $v <= 0xD7AF) { foreach ($this->_hangul_decompose($v) as $out) { $output[] = (int) $out; } // There's a decomposition mapping for that code point } elseif (isset($this->NP['replacemaps'][$v])) { foreach ($this->_apply_cannonical_ordering($this->NP['replacemaps'][$v]) as $out) { $output[] = (int) $out; } } else { $output[] = (int) $v; } } // Before applying any Combining, try to rearrange any Hangul syllables $output = $this->_hangul_compose($output); // // Combine code points // $last_class = 0; $last_starter = 0; $out_len = count($output); for ($i = 0; $i < $out_len; ++$i) { $class = $this->_get_combining_class($output[$i]); if ((!$last_class || $last_class > $class) && $class) { // Try to match $seq_len = $i - $last_starter; $out = $this->_combine(array_slice($output, $last_starter, $seq_len)); // On match: Replace the last starter with the composed character and remove // the now redundant non-starter(s) if ($out) { $output[$last_starter] = $out; if (count($out) != $seq_len) { for ($j = $i+1; $j < $out_len; ++$j) { $output[$j-1] = $output[$j]; } unset($output[$out_len]); } // Rewind the for loop by one, since there can be more possible compositions $i--; $out_len--; $last_class = ($i == $last_starter) ? 0 : $this->_get_combining_class($output[$i-1]); continue; } } // The current class is 0 if (!$class) $last_starter = $i; $last_class = $class; } return $output; } /** * Decomposes a Hangul syllable * (see http://www.unicode.org/unicode/reports/tr15/#Hangul * @param integer 32bit UCS4 code point * @return array Either Hangul Syllable decomposed or original 32bit value as one value array * @access private */ function _hangul_decompose($char) { $sindex = (int) $char - $this->_sbase; if ($sindex < 0 || $sindex >= $this->_scount) { return array($char); } $result = array(); $result[] = (int) $this->_lbase + $sindex / $this->_ncount; $result[] = (int) $this->_vbase + ($sindex % $this->_ncount) / $this->_tcount; $T = intval($this->_tbase + $sindex % $this->_tcount); if ($T != $this->_tbase) $result[] = $T; return $result; } /** * Ccomposes a Hangul syllable * (see http://www.unicode.org/unicode/reports/tr15/#Hangul * @param array Decomposed UCS4 sequence * @return array UCS4 sequence with syllables composed * @access private */ function _hangul_compose($input) { $inp_len = count($input); if (!$inp_len) return array(); $result = array(); $last = (int) $input[0]; $result[] = $last; // copy first char from input to output for ($i = 1; $i < $inp_len; ++$i) { $char = (int) $input[$i]; $sindex = $last - $this->_sbase; $lindex = $last - $this->_lbase; $vindex = $char - $this->_vbase; $tindex = $char - $this->_tbase; // Find out, whether two current characters are LV and T if (0 <= $sindex && $sindex < $this->_scount && ($sindex % $this->_tcount == 0) && 0 <= $tindex && $tindex <= $this->_tcount) { // create syllable of form LVT $last += $tindex; $result[(count($result) - 1)] = $last; // reset last continue; // discard char } // Find out, whether two current characters form L and V if (0 <= $lindex && $lindex < $this->_lcount && 0 <= $vindex && $vindex < $this->_vcount) { // create syllable of form LV $last = (int) $this->_sbase + ($lindex * $this->_vcount + $vindex) * $this->_tcount; $result[(count($result) - 1)] = $last; // reset last continue; // discard char } // if neither case was true, just add the character $last = $char; $result[] = $char; } return $result; } /** * Returns the combining class of a certain wide char * @param integer Wide char to check (32bit integer) * @return integer Combining class if found, else 0 * @access private */ function _get_combining_class($char) { return isset($this->NP['norm_combcls'][$char]) ? $this->NP['norm_combcls'][$char] : 0; } /** * Apllies the cannonical ordering of a decomposed UCS4 sequence * @param array Decomposed UCS4 sequence * @return array Ordered USC4 sequence * @access private */ function _apply_cannonical_ordering($input) { $swap = true; $size = count($input); while ($swap) { $swap = false; $last = $this->_get_combining_class(intval($input[0])); for ($i = 0; $i < $size-1; ++$i) { $next = $this->_get_combining_class(intval($input[$i+1])); if ($next != 0 && $last > $next) { // Move item leftward until it fits for ($j = $i + 1; $j > 0; --$j) { if ($this->_get_combining_class(intval($input[$j-1])) <= $next) break; $t = intval($input[$j]); $input[$j] = intval($input[$j-1]); $input[$j-1] = $t; $swap = true; } // Reentering the loop looking at the old character again $next = $last; } $last = $next; } } return $input; } /** * Do composition of a sequence of starter and non-starter * @param array UCS4 Decomposed sequence * @return array Ordered USC4 sequence * @access private */ function _combine($input) { $inp_len = count($input); foreach ($this->NP['replacemaps'] as $np_src => $np_target) { if ($np_target[0] != $input[0]) continue; if (count($np_target) != $inp_len) continue; $hit = false; foreach ($input as $k2 => $v2) { if ($v2 == $np_target[$k2]) { $hit = true; } else { $hit = false; break; } } if ($hit) return $np_src; } return false; } /** * This converts an UTF-8 encoded string to its UCS-4 representation * By talking about UCS-4 "strings" we mean arrays of 32bit integers representing * each of the "chars". This is due to PHP not being able to handle strings with * bit depth different from 8. This apllies to the reverse method _ucs4_to_utf8(), too. * The following UTF-8 encodings are supported: * bytes bits representation * 1 7 0xxxxxxx * 2 11 110xxxxx 10xxxxxx * 3 16 1110xxxx 10xxxxxx 10xxxxxx * 4 21 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx * 5 26 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 6 31 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * Each x represents a bit that can be used to store character data. * The five and six byte sequences are part of Annex D of ISO/IEC 10646-1:2000 * @access private */ function _utf8_to_ucs4($input) { $output = array(); $out_len = 0; $inp_len = strlen($input); $mode = 'next'; $test = 'none'; for ($k = 0; $k < $inp_len; ++$k) { $v = ord($input{$k}); // Extract byte from input string if ($v < 128) { // We found an ASCII char - put into stirng as is $output[$out_len] = $v; ++$out_len; if ('add' == $mode) { $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k); return false; } continue; } if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char $start_byte = $v; $mode = 'add'; $test = 'range'; if ($v >> 5 == 6) { // &110xxxxx 10xxxxx $next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left $v = ($v - 192) << 6; } elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx $next_byte = 1; $v = ($v - 224) << 12; } elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx $next_byte = 2; $v = ($v - 240) << 18; } elseif ($v >> 2 == 62) { // &111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx $next_byte = 3; $v = ($v - 248) << 24; } elseif ($v >> 1 == 126) { // &1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx $next_byte = 4; $v = ($v - 252) << 30; } else { $this->_error('This might be UTF-8, but I don\'t understand it at byte '.$k); return false; } if ('add' == $mode) { $output[$out_len] = (int) $v; ++$out_len; continue; } } if ('add' == $mode) { if (!$this->_allow_overlong && $test == 'range') { $test = 'none'; if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) { $this->_error('Bogus UTF-8 character detected (out of legal range) at byte '.$k); return false; } } if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx $v = ($v - 128) << ($next_byte * 6); $output[($out_len - 1)] += $v; --$next_byte; } else { $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k); return false; } if ($next_byte < 0) { $mode = 'next'; } } } // for return $output; } /** * Convert UCS-4 string into UTF-8 string * See _utf8_to_ucs4() for details * @access private */ function _ucs4_to_utf8($input) { $output = ''; $k = 0; foreach ($input as $v) { ++$k; // $v = ord($v); if ($v < 128) { // 7bit are transferred literally $output .= chr($v); } elseif ($v < (1 << 11)) { // 2 bytes $output .= chr(192 + ($v >> 6)) . chr(128 + ($v & 63)); } elseif ($v < (1 << 16)) { // 3 bytes $output .= chr(224 + ($v >> 12)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63)); } elseif ($v < (1 << 21)) { // 4 bytes $output .= chr(240 + ($v >> 18)) . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63)); } elseif ($v < (1 << 26)) { // 5 bytes $output .= chr(248 + ($v >> 24)) . chr(128 + (($v >> 18) & 63)) . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63)); } elseif ($v < (1 << 31)) { // 6 bytes $output .= chr(252 + ($v >> 30)) . chr(128 + (($v >> 24) & 63)) . chr(128 + (($v >> 18) & 63)) . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63)); } else { $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte '.$k); return false; } } return $output; } /** * Convert UCS-4 array into UCS-4 string * * @access private */ function _ucs4_to_ucs4_string($input) { $output = ''; // Take array values and split output to 4 bytes per value // The bit mask is 255, which reads &11111111 foreach ($input as $v) { $output .= chr(($v >> 24) & 255).chr(($v >> 16) & 255).chr(($v >> 8) & 255).chr($v & 255); } return $output; } /** * Convert UCS-4 strin into UCS-4 garray * * @access private */ function _ucs4_string_to_ucs4($input) { $output = array(); $inp_len = strlen($input); // Input length must be dividable by 4 if ($inp_len % 4) { $this->_error('Input UCS4 string is broken'); return false; } // Empty input - return empty output if (!$inp_len) return $output; for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) { // Increment output position every 4 input bytes if (!($i % 4)) { $out_len++; $output[$out_len] = 0; } $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) ); } return $output; } } /** * Adapter class for aligning the API of idna_convert with that of Net_IDNA * @author Matthias Sommerfeld */ class Net_IDNA_php4 extends idna_convert { /** * Sets a new option value. Available options and values: * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8, * 'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8] * [overlong - Unicode does not allow unnecessarily long encodings of chars, * to allow this, set this parameter to true, else to false; * default is false.] * [strict - true: strict mode, good for registration purposes - Causes errors * on failures; false: loose mode, ideal for "wildlife" applications * by silently ignoring errors and returning the original input instead * * @param mixed Parameter to set (string: single parameter; array of Parameter => Value pairs) * @param string Value to use (if parameter 1 is a string) * @return boolean true on success, false otherwise * @access public */ function setParams($option, $param = false) { return $this->IC->set_parameters($option, $param); } } ?>elracodelangela/libraries/simplepie/simplepie.php0000755000176700017710000105661211061563475023112 0ustar essawireessawire' . SIMPLEPIE_NAME . ''); /** * No Autodiscovery * @see SimplePie::set_autodiscovery_level() */ define('SIMPLEPIE_LOCATOR_NONE', 0); /** * Feed Link Element Autodiscovery * @see SimplePie::set_autodiscovery_level() */ define('SIMPLEPIE_LOCATOR_AUTODISCOVERY', 1); /** * Local Feed Extension Autodiscovery * @see SimplePie::set_autodiscovery_level() */ define('SIMPLEPIE_LOCATOR_LOCAL_EXTENSION', 2); /** * Local Feed Body Autodiscovery * @see SimplePie::set_autodiscovery_level() */ define('SIMPLEPIE_LOCATOR_LOCAL_BODY', 4); /** * Remote Feed Extension Autodiscovery * @see SimplePie::set_autodiscovery_level() */ define('SIMPLEPIE_LOCATOR_REMOTE_EXTENSION', 8); /** * Remote Feed Body Autodiscovery * @see SimplePie::set_autodiscovery_level() */ define('SIMPLEPIE_LOCATOR_REMOTE_BODY', 16); /** * All Feed Autodiscovery * @see SimplePie::set_autodiscovery_level() */ define('SIMPLEPIE_LOCATOR_ALL', 31); /** * No known feed type */ define('SIMPLEPIE_TYPE_NONE', 0); /** * RSS 0.90 */ define('SIMPLEPIE_TYPE_RSS_090', 1); /** * RSS 0.91 (Netscape) */ define('SIMPLEPIE_TYPE_RSS_091_NETSCAPE', 2); /** * RSS 0.91 (Userland) */ define('SIMPLEPIE_TYPE_RSS_091_USERLAND', 4); /** * RSS 0.91 (both Netscape and Userland) */ define('SIMPLEPIE_TYPE_RSS_091', 6); /** * RSS 0.92 */ define('SIMPLEPIE_TYPE_RSS_092', 8); /** * RSS 0.93 */ define('SIMPLEPIE_TYPE_RSS_093', 16); /** * RSS 0.94 */ define('SIMPLEPIE_TYPE_RSS_094', 32); /** * RSS 1.0 */ define('SIMPLEPIE_TYPE_RSS_10', 64); /** * RSS 2.0 */ define('SIMPLEPIE_TYPE_RSS_20', 128); /** * RDF-based RSS */ define('SIMPLEPIE_TYPE_RSS_RDF', 65); /** * Non-RDF-based RSS (truly intended as syndication format) */ define('SIMPLEPIE_TYPE_RSS_SYNDICATION', 190); /** * All RSS */ define('SIMPLEPIE_TYPE_RSS_ALL', 255); /** * Atom 0.3 */ define('SIMPLEPIE_TYPE_ATOM_03', 256); /** * Atom 1.0 */ define('SIMPLEPIE_TYPE_ATOM_10', 512); /** * All Atom */ define('SIMPLEPIE_TYPE_ATOM_ALL', 768); /** * All feed types */ define('SIMPLEPIE_TYPE_ALL', 1023); /** * No construct */ define('SIMPLEPIE_CONSTRUCT_NONE', 0); /** * Text construct */ define('SIMPLEPIE_CONSTRUCT_TEXT', 1); /** * HTML construct */ define('SIMPLEPIE_CONSTRUCT_HTML', 2); /** * XHTML construct */ define('SIMPLEPIE_CONSTRUCT_XHTML', 4); /** * base64-encoded construct */ define('SIMPLEPIE_CONSTRUCT_BASE64', 8); /** * IRI construct */ define('SIMPLEPIE_CONSTRUCT_IRI', 16); /** * A construct that might be HTML */ define('SIMPLEPIE_CONSTRUCT_MAYBE_HTML', 32); /** * All constructs */ define('SIMPLEPIE_CONSTRUCT_ALL', 63); /** * PCRE for HTML attributes */ define('SIMPLEPIE_PCRE_HTML_ATTRIBUTE', '((?:\s+(?:(?:[^\s:]+:)?[^\s:]+)(?:\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[a-z0-9\-._:]*)))?)*)\s*'); /** * PCRE for XML attributes */ define('SIMPLEPIE_PCRE_XML_ATTRIBUTE', '((?:\s+(?:(?:[^\s:]+:)?[^\s:]+)\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'))*)\s*'); /** * XML Namespace */ define('SIMPLEPIE_NAMESPACE_XML', 'http://www.w3.org/XML/1998/namespace'); /** * Atom 1.0 Namespace */ define('SIMPLEPIE_NAMESPACE_ATOM_10', 'http://www.w3.org/2005/Atom'); /** * Atom 0.3 Namespace */ define('SIMPLEPIE_NAMESPACE_ATOM_03', 'http://purl.org/atom/ns#'); /** * RDF Namespace */ define('SIMPLEPIE_NAMESPACE_RDF', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'); /** * RSS 0.90 Namespace */ define('SIMPLEPIE_NAMESPACE_RSS_090', 'http://my.netscape.com/rdf/simple/0.9/'); /** * RSS 1.0 Namespace */ define('SIMPLEPIE_NAMESPACE_RSS_10', 'http://purl.org/rss/1.0/'); /** * RSS 1.0 Content Module Namespace */ define('SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT', 'http://purl.org/rss/1.0/modules/content/'); /** * DC 1.0 Namespace */ define('SIMPLEPIE_NAMESPACE_DC_10', 'http://purl.org/dc/elements/1.0/'); /** * DC 1.1 Namespace */ define('SIMPLEPIE_NAMESPACE_DC_11', 'http://purl.org/dc/elements/1.1/'); /** * W3C Basic Geo (WGS84 lat/long) Vocabulary Namespace */ define('SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO', 'http://www.w3.org/2003/01/geo/wgs84_pos#'); /** * GeoRSS Namespace */ define('SIMPLEPIE_NAMESPACE_GEORSS', 'http://www.georss.org/georss'); /** * Media RSS Namespace */ define('SIMPLEPIE_NAMESPACE_MEDIARSS', 'http://search.yahoo.com/mrss/'); /** * iTunes RSS Namespace */ define('SIMPLEPIE_NAMESPACE_ITUNES', 'http://www.itunes.com/dtds/podcast-1.0.dtd'); /** * XHTML Namespace */ define('SIMPLEPIE_NAMESPACE_XHTML', 'http://www.w3.org/1999/xhtml'); /** * IANA Link Relations Registry */ define('SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY', 'http://www.iana.org/assignments/relation/'); /** * Whether we're running on PHP5 */ define('SIMPLEPIE_PHP5', version_compare(PHP_VERSION, '5.0.0', '>=')); /** * SimplePie * * @package SimplePie * @version "Razzleberry" * @copyright 2004-2007 Ryan Parman, Geoffrey Sneddon * @author Ryan Parman * @author Geoffrey Sneddon * @todo Option for type of fetching (cache, not modified header, fetch, etc.) */ class SimplePie { /** * @var array Raw data * @access private */ var $data = array(); /** * @var mixed Error string * @access private */ var $error; /** * @var object Instance of SimplePie_Sanitize (or other class) * @see SimplePie::set_sanitize_class() * @access private */ var $sanitize; /** * @var string SimplePie Useragent * @see SimplePie::set_useragent() * @access private */ var $useragent = SIMPLEPIE_USERAGENT; /** * @var string Feed URL * @see SimplePie::set_feed_url() * @access private */ var $feed_url; /** * @var object Instance of SimplePie_File to use as a feed * @see SimplePie::set_file() * @access private */ var $file; /** * @var string Raw feed data * @see SimplePie::set_raw_data() * @access private */ var $raw_data; /** * @var int Timeout for fetching remote files * @see SimplePie::set_timeout() * @access private */ var $timeout = 10; /** * @var bool Forces fsockopen() to be used for remote files instead * of cURL, even if a new enough version is installed * @see SimplePie::force_fsockopen() * @access private */ var $force_fsockopen = false; /** * @var bool Enable/Disable XML dump * @see SimplePie::enable_xml_dump() * @access private */ var $xml_dump = false; /** * @var bool Enable/Disable Caching * @see SimplePie::enable_cache() * @access private */ var $cache = true; /** * @var int Cache duration (in seconds) * @see SimplePie::set_cache_duration() * @access private */ var $cache_duration = 3600; /** * @var int Auto-discovery cache duration (in seconds) * @see SimplePie::set_autodiscovery_cache_duration() * @access private */ var $autodiscovery_cache_duration = 604800; // 7 Days. /** * @var string Cache location (relative to executing script) * @see SimplePie::set_cache_location() * @access private */ var $cache_location = './cache'; /** * @var string Function that creates the cache filename * @see SimplePie::set_cache_name_function() * @access private */ var $cache_name_function = 'md5'; /** * @var bool Reorder feed by date descending * @see SimplePie::enable_order_by_date() * @access private */ var $order_by_date = true; /** * @var mixed Force input encoding to be set to the follow value * (false, or anything type-cast to false, disables this feature) * @see SimplePie::set_input_encoding() * @access private */ var $input_encoding = false; /** * @var int Feed Autodiscovery Level * @see SimplePie::set_autodiscovery_level() * @access private */ var $autodiscovery = SIMPLEPIE_LOCATOR_ALL; /** * @var string Class used for caching feeds * @see SimplePie::set_cache_class() * @access private */ var $cache_class = 'SimplePie_Cache'; /** * @var string Class used for locating feeds * @see SimplePie::set_locator_class() * @access private */ var $locator_class = 'SimplePie_Locator'; /** * @var string Class used for parsing feeds * @see SimplePie::set_parser_class() * @access private */ var $parser_class = 'SimplePie_Parser'; /** * @var string Class used for fetching feeds * @see SimplePie::set_file_class() * @access private */ var $file_class = 'SimplePie_File'; /** * @var string Class used for items * @see SimplePie::set_item_class() * @access private */ var $item_class = 'SimplePie_Item'; /** * @var string Class used for authors * @see SimplePie::set_author_class() * @access private */ var $author_class = 'SimplePie_Author'; /** * @var string Class used for categories * @see SimplePie::set_category_class() * @access private */ var $category_class = 'SimplePie_Category'; /** * @var string Class used for enclosures * @see SimplePie::set_enclosures_class() * @access private */ var $enclosure_class = 'SimplePie_Enclosure'; /** * @var string Class used for Media RSS captions * @see SimplePie::set_caption_class() * @access private */ var $caption_class = 'SimplePie_Caption'; /** * @var string Class used for Media RSS * @see SimplePie::set_copyright_class() * @access private */ var $copyright_class = 'SimplePie_Copyright'; /** * @var string Class used for Media RSS * @see SimplePie::set_credit_class() * @access private */ var $credit_class = 'SimplePie_Credit'; /** * @var string Class used for Media RSS * @see SimplePie::set_rating_class() * @access private */ var $rating_class = 'SimplePie_Rating'; /** * @var string Class used for Media RSS * @see SimplePie::set_restriction_class() * @access private */ var $restriction_class = 'SimplePie_Restriction'; /** * @var mixed Set javascript query string parameter (false, or * anything type-cast to false, disables this feature) * @see SimplePie::set_javascript() * @access private */ var $javascript = 'js'; /** * @var int Maximum number of feeds to check with autodiscovery * @see SimplePie::set_max_checked_feeds() * @access private */ var $max_checked_feeds = 10; /** * @var string Web-accessible path to the handler_favicon.php file. * @see SimplePie::set_favicon_handler() * @access private */ var $favicon_handler = ''; /** * @var string Web-accessible path to the handler_image.php file. * @see SimplePie::set_image_handler() * @access private */ var $image_handler = ''; /** * @var array Stores the URLs when multiple feeds are being initialized. * @see SimplePie::set_feed_url() * @access private */ var $multifeed_url = array(); /** * @var array Stores SimplePie objects when multiple feeds initialized. * @access private */ var $multifeed_objects = array(); /** * @var array Stores the get_object_vars() array for use with multifeeds. * @see SimplePie::set_feed_url() * @access private */ var $config_settings = null; /** * @var array Stores the default attributes to be stripped by strip_attributes(). * @see SimplePie::strip_attributes() * @access private */ var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'); /** * @var array Stores the default tags to be stripped by strip_htmltags(). * @see SimplePie::strip_htmltags() * @access private */ var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'); /** * The SimplePie class contains feed level data and options * * There are two ways that you can create a new SimplePie object. The first * is by passing a feed URL as a parameter to the SimplePie constructor * (as well as optionally setting the cache location and cache expiry). This * will initialise the whole feed with all of the default settings, and you * can begin accessing methods and properties immediately. * * The second way is to create the SimplePie object with no parameters * at all. This will enable you to set configuration options. After setting * them, you must initialise the feed using $feed->init(). At that point the * object's methods and properties will be available to you. This format is * what is used throughout this documentation. * * @access public * @since 1.0 Preview Release * @param string $feed_url This is the URL you want to parse. * @param string $cache_location This is where you want the cache to be stored. * @param int $cache_duration This is the number of seconds that you want to store the cache file for. */ function SimplePie($feed_url = null, $cache_location = null, $cache_duration = null) { // Other objects, instances created here so we can set options on them $this->sanitize =& new SimplePie_Sanitize; // Set options if they're passed to the constructor if ($cache_location !== null) { $this->set_cache_location($cache_location); } if ($cache_duration !== null) { $this->set_cache_duration($cache_duration); } // Only init the script if we're passed a feed URL if ($feed_url !== null) { $this->set_feed_url($feed_url); $this->init(); } } /** * Used for converting object to a string */ function __toString() { return md5(serialize($this->data)); } /** * This is the URL of the feed you want to parse. * * This allows you to enter the URL of the feed you want to parse, or the * website you want to try to use auto-discovery on. This takes priority * over any set raw data. * * You can set multiple feeds to mash together by passing an array instead * of a string for the $url. Remember that with each additional feed comes * additional processing and resources. * * @access public * @since 1.0 Preview Release * @param mixed $url This is the URL (or array of URLs) that you want to parse. * @see SimplePie::set_raw_data() */ function set_feed_url($url) { if (is_array($url)) { $this->multifeed_url = array(); foreach ($url as $value) { $this->multifeed_url[] = SimplePie_Misc::fix_protocol($value, 1); } } else { $this->feed_url = SimplePie_Misc::fix_protocol($url, 1); } } /** * Provides an instance of SimplePie_File to use as a feed * * @access public * @param object &$file Instance of SimplePie_File (or subclass) * @return bool True on success, false on failure */ function set_file(&$file) { if (SimplePie_Misc::is_a($file, 'SimplePie_File')) { $this->feed_url = $file->url; $this->file =& $file; return true; } return false; } /** * Allows you to use a string of RSS/Atom data instead of a remote feed. * * If you have a feed available as a string in PHP, you can tell SimplePie * to parse that data string instead of a remote feed. Any set feed URL * takes precedence. * * @access public * @since 1.0 Beta 3 * @param string $data RSS or Atom data as a string. * @see SimplePie::set_feed_url() */ function set_raw_data($data) { $this->raw_data = trim($data); } /** * Allows you to override the default timeout for fetching remote feeds. * * This allows you to change the maximum time the feed's server to respond * and send the feed back. * * @access public * @since 1.0 Beta 3 * @param int $timeout The maximum number of seconds to spend waiting to retrieve a feed. */ function set_timeout($timeout = 10) { $this->timeout = (int) $timeout; } /** * Forces SimplePie to use fsockopen() instead of the preferred cURL * functions. * * @access public * @since 1.0 Beta 3 * @param bool $enable Force fsockopen() to be used */ function force_fsockopen($enable = false) { $this->force_fsockopen = (bool) $enable; } /** * Outputs the raw XML content of the feed, after it has gone through * SimplePie's filters. * * Used only for debugging, this function will output the XML content as * text/xml. When SimplePie reads in a feed, it does a bit of cleaning up * before trying to parse it. Many parts of the feed are re-written in * memory, and in the end, you have a parsable feed. XML dump shows you the * actual XML that SimplePie tries to parse, which may or may not be very * different from the original feed. * * @access public * @since 1.0 Preview Release * @param bool $enable Enable XML dump */ function enable_xml_dump($enable = false) { $this->xml_dump = (bool) $enable; } /** * Enables/disables caching in SimplePie. * * This option allows you to disable caching all-together in SimplePie. * However, disabling the cache can lead to longer load times. * * @access public * @since 1.0 Preview Release * @param bool $enable Enable caching */ function enable_cache($enable = true) { $this->cache = (bool) $enable; } /** * Set the length of time (in seconds) that the contents of a feed * will be cached. * * @access public * @param int $seconds The feed content cache duration. */ function set_cache_duration($seconds = 3600) { $this->cache_duration = (int) $seconds; } /** * Set the length of time (in seconds) that the autodiscovered feed * URL will be cached. * * @access public * @param int $seconds The autodiscovered feed URL cache duration. */ function set_autodiscovery_cache_duration($seconds = 604800) { $this->autodiscovery_cache_duration = (int) $seconds; } /** * Set the file system location where the cached files should be stored. * * @access public * @param string $location The file system location. */ function set_cache_location($location = './cache') { $this->cache_location = (string) $location; } /** * Determines whether feed items should be sorted into reverse chronological order. * * @access public * @param bool $enable Sort as reverse chronological order. */ function enable_order_by_date($enable = true) { $this->order_by_date = (bool) $enable; } /** * Allows you to override the character encoding reported by the feed. * * @access public * @param string $encoding Character encoding. */ function set_input_encoding($encoding = false) { if ($encoding) { $this->input_encoding = (string) $encoding; } else { $this->input_encoding = false; } } /** * Set how much feed autodiscovery to do * * @access public * @see SIMPLEPIE_LOCATOR_NONE * @see SIMPLEPIE_LOCATOR_AUTODISCOVERY * @see SIMPLEPIE_LOCATOR_LOCAL_EXTENSION * @see SIMPLEPIE_LOCATOR_LOCAL_BODY * @see SIMPLEPIE_LOCATOR_REMOTE_EXTENSION * @see SIMPLEPIE_LOCATOR_REMOTE_BODY * @see SIMPLEPIE_LOCATOR_ALL * @param int $level Feed Autodiscovery Level (level can be a * combination of the above constants, see bitwise OR operator) */ function set_autodiscovery_level($level = SIMPLEPIE_LOCATOR_ALL) { $this->autodiscovery = (int) $level; } /** * Allows you to change which class SimplePie uses for caching. * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_cache_class($class = 'SimplePie_Cache') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Cache')) { $this->cache_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for auto-discovery. * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_locator_class($class = 'SimplePie_Locator') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Locator')) { $this->locator_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for XML parsing. * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_parser_class($class = 'SimplePie_Parser') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Parser')) { $this->parser_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for remote file fetching. * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_file_class($class = 'SimplePie_File') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_File')) { $this->file_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for data sanitization. * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_sanitize_class($class = 'SimplePie_Sanitize') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Sanitize')) { $this->sanitize =& new $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for handling feed items. * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_item_class($class = 'SimplePie_Item') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Item')) { $this->item_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for handling author data. * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_author_class($class = 'SimplePie_Author') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Author')) { $this->author_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for handling category data. * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_category_class($class = 'SimplePie_Category') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Category')) { $this->category_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for feed enclosures. * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_enclosure_class($class = 'SimplePie_Enclosure') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Enclosure')) { $this->enclosure_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for captions * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_caption_class($class = 'SimplePie_Caption') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Caption')) { $this->caption_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_copyright_class($class = 'SimplePie_Copyright') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Copyright')) { $this->copyright_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_credit_class($class = 'SimplePie_Credit') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Credit')) { $this->credit_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_rating_class($class = 'SimplePie_Rating') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Rating')) { $this->rating_class = $class; return true; } return false; } /** * Allows you to change which class SimplePie uses for * Useful when you are overloading or extending SimplePie's default classes. * * @access public * @param string $class Name of custom class. * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation */ function set_restriction_class($class = 'SimplePie_Restriction') { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Restriction')) { $this->restriction_class = $class; return true; } return false; } /** * Allows you to override the default user agent string. * * @access public * @param string $ua New user agent string. */ function set_useragent($ua = SIMPLEPIE_USERAGENT) { $this->useragent = (string) $ua; } /** * Set callback function to create cache filename with * * @access public * @param mixed $function Callback function */ function set_cache_name_function($function = 'md5') { if (is_callable($function)) { $this->cache_name_function = $function; } } /** * Set javascript query string parameter * * @access public * @param mixed $get Javascript query string parameter */ function set_javascript($get = 'js') { if ($get) { $this->javascript = (string) $get; } else { $this->javascript = false; } } /** * Set options to make SP as fast as possible. Forgoes a * substantial amount of data sanitization in favor of speed. * * @access public * @param bool $set Whether to set them or not */ function set_stupidly_fast($set = false) { if ($set) { $this->enable_order_by_date(false); $this->remove_div(false); $this->strip_comments(false); $this->strip_htmltags(false); $this->strip_attributes(false); $this->set_image_handler(false); } } /** * Set maximum number of feeds to check with autodiscovery * * @access public * @param int $max Maximum number of feeds to check */ function set_max_checked_feeds($max = 10) { $this->max_checked_feeds = (int) $max; } function remove_div($enable = true) { $this->sanitize->remove_div($enable); } function strip_htmltags($tags = '', $encode = null) { if ($tags === '') { $tags = $this->strip_htmltags; } $this->sanitize->strip_htmltags($tags); if ($encode !== null) { $this->sanitize->encode_instead_of_strip($tags); } } function encode_instead_of_strip($enable = true) { $this->sanitize->encode_instead_of_strip($enable); } function strip_attributes($attribs = '') { if ($attribs === '') { $attribs = $this->strip_attributes; } $this->sanitize->strip_attributes($attribs); } function set_output_encoding($encoding = 'UTF-8') { $this->sanitize->set_output_encoding($encoding); } function strip_comments($strip = false) { $this->sanitize->strip_comments($strip); } /** * Set element/attribute key/value pairs of HTML attributes * containing URLs that need to be resolved relative to the feed * * @access public * @since 1.0 * @param array $element_attribute Element/attribute key/value pairs */ function set_url_replacements($element_attribute = array('a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite')) { $this->sanitize->set_url_replacements($element_attribute); } /** * Set the handler to enable the display of cached favicons. * * @access public * @param str $page Web-accessible path to the handler_favicon.php file. * @param str $qs The query string that the value should be passed to. */ function set_favicon_handler($page = false, $qs = 'i') { if ($page != false) { $this->favicon_handler = $page . '?' . $qs . '='; } else { $this->favicon_handler = ''; } } /** * Set the handler to enable the display of cached images. * * @access public * @param str $page Web-accessible path to the handler_image.php file. * @param str $qs The query string that the value should be passed to. */ function set_image_handler($page = false, $qs = 'i') { if ($page != false) { $this->sanitize->set_image_handler($page . '?' . $qs . '='); } else { $this->image_handler = ''; } } function init() { if ((function_exists('version_compare') && version_compare(PHP_VERSION, '4.1.0', '<')) || !extension_loaded('xml') || !extension_loaded('pcre')) { return false; } if (isset($_GET[$this->javascript])) { if (function_exists('ob_gzhandler')) { ob_start('ob_gzhandler'); } header('Content-type: text/javascript; charset: UTF-8'); header('Cache-Control: must-revalidate'); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days ?> function embed_odeo(link) { document.writeln(''); } function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) { if (placeholder != '') { document.writeln(''); } else { document.writeln(''); } } function embed_flash(bgcolor, width, height, link, loop, type) { document.writeln(''); } function embed_flv(width, height, link, placeholder, loop, player) { document.writeln(''); } function embed_wmedia(width, height, link) { document.writeln(''); } sanitize->pass_cache_data($this->cache, $this->cache_location, $this->cache_name_function, $this->cache_class); $this->sanitize->pass_file_data($this->file_class, $this->timeout, $this->useragent, $this->force_fsockopen); if ($this->feed_url !== null || $this->raw_data !== null) { $this->data = array(); $this->multifeed_objects = array(); $cache = false; if ($this->feed_url !== null) { $parsed_feed_url = SimplePie_Misc::parse_url($this->feed_url); // Decide whether to enable caching if ($this->cache && $parsed_feed_url['scheme'] !== '') { $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'); } // If it's enabled and we don't want an XML dump, use the cache if ($cache && !$this->xml_dump) { // Load the Cache $this->data = $cache->load(); if (!empty($this->data)) { // If the cache is for an outdated build of SimplePie if (!isset($this->data['build']) || $this->data['build'] != SIMPLEPIE_BUILD) { $cache->unlink(); $this->data = array(); } // If we've hit a collision just rerun it with caching disabled elseif (isset($this->data['url']) && $this->data['url'] != $this->feed_url) { $cache = false; $this->data = array(); } // If we've got a non feed_url stored (if the page isn't actually a feed, or is a redirect) use that URL. elseif (isset($this->data['feed_url'])) { // If the autodiscovery cache is still valid use it. if ($cache->mtime() + $this->autodiscovery_cache_duration > time()) { // Do not need to do feed autodiscovery yet. if ($this->data['feed_url'] == $this->data['url']) { $cache->unlink(); $this->data = array(); } else { $this->set_feed_url($this->data['feed_url']); return $this->init(); } } } // Check if the cache has been updated elseif ($cache->mtime() + $this->cache_duration < time()) { // If we have last-modified and/or etag set if (isset($this->data['headers']['last-modified']) || isset($this->data['headers']['etag'])) { $headers = array(); if (isset($this->data['headers']['last-modified'])) { $headers['if-modified-since'] = $this->data['headers']['last-modified']; } if (isset($this->data['headers']['etag'])) { $headers['if-none-match'] = $this->data['headers']['etag']; } $file =& new $this->file_class($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen); if ($file->success) { if ($file->status_code == 304) { $cache->touch(); return true; } else { $headers = $file->headers; } } else { unset($file); } } } // If the cache is still valid, just return true else { return true; } } // If the cache is empty, delete it else { $cache->unlink(); $this->data = array(); } } // If we don't already have the file (it'll only exist if we've opened it to check if the cache has been modified), open it. if (!isset($file)) { if (SimplePie_Misc::is_a($this->file, 'SimplePie_File') && $this->file->url == $this->feed_url) { $file =& $this->file; } else { $file =& new $this->file_class($this->feed_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen); } } // If the file connection has an error, set SimplePie::error to that and quit if (!$file->success) { $this->error = $file->error; if (!empty($this->data)) { return true; } else { return false; } } // Check if the supplied URL is a feed, if it isn't, look for it. $locate =& new $this->locator_class($file, $this->timeout, $this->useragent, $this->file_class, $this->max_checked_feeds); if (!$locate->is_feed($file)) { // We need to unset this so that if SimplePie::set_file() has been called that object is untouched unset($file); if ($file = $locate->find($this->autodiscovery)) { if ($cache) { if (!$cache->save(array('url' => $this->feed_url, 'feed_url' => $file->url, 'build' => SIMPLEPIE_BUILD))) { trigger_error("$cache->name is not writeable", E_USER_WARNING); } $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc'); } $this->feed_url = $file->url; } else { $this->error = "A feed could not be found at $this->feed_url"; SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__); return false; } } $locate = null; $headers = $file->headers; $data = trim($file->body); unset($file); } else { $data = $this->raw_data; } // First check to see if input has been overridden. if ($this->input_encoding !== false) { $encoding = $this->input_encoding; } // Second try HTTP headers elseif (isset($headers['content-type']) && preg_match('/;[\x09\x20]*charset=([^;]*)/i', $headers['content-type'], $charset)) { $encoding = $charset[1]; } // Then prolog, if at the very start of the document elseif (preg_match("/^<\?xml[\x20\x9\xD\xA]+version([\x20\x9\xD\xA]+)?=([\x20\x9\xD\xA]+)?(\"1.0\"|'1.0'|\"1.1\"|'1.1')[\x20\x9\xD\xA]+encoding([\x20\x9\xD\xA]+)?=([\x20\x9\xD\xA]+)?(\"[A-Za-z][A-Za-z0-9._\-]*\"|'[A-Za-z][A-Za-z0-9._\-]*')([\x20\x9\xD\xA]+standalone([\x20\x9\xD\xA]+)?=([\x20\x9\xD\xA]+)?(\"(yes|no)\"|'(yes|no)'))?([\x20\x9\xD\xA]+)?\?>/", $data, $prolog)) { $encoding = substr($prolog[6], 1, -1); } // UTF-32 Big Endian BOM elseif (strpos($data, "\x0\x0\xFE\xFF") === 0) { $encoding = 'UTF-32be'; } // UTF-32 Little Endian BOM elseif (strpos($data, "\xFF\xFE\x0\x0") === 0) { $encoding = 'UTF-32'; } // UTF-16 Big Endian BOM elseif (strpos($data, "\xFE\xFF") === 0) { $encoding = 'UTF-16be'; } // UTF-16 Little Endian BOM elseif (strpos($data, "\xFF\xFE") === 0) { $encoding = 'UTF-16le'; } // UTF-8 BOM elseif (strpos($data, "\xEF\xBB\xBF") === 0) { $encoding = 'UTF-8'; } // Fallback to the default (US-ASCII for text/xml, ISO-8859-1 for text/* MIME types, UTF-8 otherwise) elseif (isset($headers['content-type']) && strtolower(SimplePie_Misc::parse_mime($headers['content-type'])) == 'text/xml') { $encoding = 'US-ASCII'; } elseif (isset($headers['content-type']) && SimplePie_Misc::stripos(SimplePie_Misc::parse_mime($headers['content-type']), 'text/') === 0) { $encoding = 'ISO-8859-1'; } else { $encoding = 'UTF-8'; } // Change the encoding to UTF-8 (as we always use UTF-8 internally) if ($encoding != 'UTF-8') { $data = SimplePie_Misc::change_encoding($data, $encoding, 'UTF-8'); } // Strip illegal characters //$data = SimplePie_Misc::utf8_bad_replace($data); $parser =& new $this->parser_class(); $parser->pre_process($data, 'UTF-8'); // If we want the XML, just output that and quit if ($this->xml_dump) { header('Content-type: text/xml; charset=UTF-8'); echo $data; exit; } // If it's parsed fine elseif ($parser->parse($data)) { unset($data); $this->data = $parser->get_data(); if (isset($this->data['child'])) { if (isset($headers)) { $this->data['headers'] = $headers; } $this->data['build'] = SIMPLEPIE_BUILD; // Cache the file if caching is enabled if ($cache && !$cache->save($this->data)) { trigger_error("$cache->name is not writeable", E_USER_WARNING); } return true; } else { $this->error = "A feed could not be found at $this->feed_url"; SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__); return false; } } // If we have an error, just set SimplePie::error to it and quit else { $this->error = sprintf('XML error: %s at line %d, column %d', $parser->get_error_string(), $parser->get_current_line(), $parser->get_current_column()); SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__); return false; } } elseif (!empty($this->multifeed_url)) { $i = 0; $success = 0; $this->multifeed_objects = array(); foreach ($this->multifeed_url as $url) { if (SIMPLEPIE_PHP5) { // This keyword needs to defy coding standards for PHP4 compatibility $this->multifeed_objects[$i] = clone($this); } else { $this->multifeed_objects[$i] = $this; } $this->multifeed_objects[$i]->set_feed_url($url); $success |= $this->multifeed_objects[$i]->init(); $i++; } return (bool) $success; } else { return false; } } /** * Return the error message for the occured error * * @access public * @return string Error message */ function error() { return $this->error; } function get_encoding() { return $this->sanitize->output_encoding; } function handle_content_type($mime = 'text/html') { if (!headers_sent()) { $header = "Content-type: $mime;"; if ($this->get_encoding()) { $header .= ' charset=' . $this->get_encoding(); } else { $header .= ' charset=UTF-8'; } header($header); } } function get_type() { if (!isset($this->data['type'])) { $this->data['type'] = SIMPLEPIE_TYPE_ALL; if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'])) { $this->data['type'] &= SIMPLEPIE_TYPE_ATOM_10; } elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'])) { $this->data['type'] &= SIMPLEPIE_TYPE_ATOM_03; } elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'])) { if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['channel']) || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['image']) || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']) || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['textinput'])) { $this->data['type'] &= SIMPLEPIE_TYPE_RSS_10; } if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['channel']) || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['image']) || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']) || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['textinput'])) { $this->data['type'] &= SIMPLEPIE_TYPE_RSS_090; } } elseif (isset($this->data['child']['']['rss'])) { $this->data['type'] &= SIMPLEPIE_TYPE_RSS_ALL; if (isset($this->data['child']['']['rss'][0]['attribs']['']['version'])) { switch (trim($this->data['child']['']['rss'][0]['attribs']['']['version'])) { case '0.91': $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091; if (isset($this->data['child']['']['rss'][0]['child']['']['skiphours']['hour'][0]['data'])) { switch (trim($this->data['child']['']['rss'][0]['child']['']['skiphours']['hour'][0]['data'])) { case '0': $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091_NETSCAPE; break; case '24': $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091_USERLAND; break; } } break; case '0.92': $this->data['type'] &= SIMPLEPIE_TYPE_RSS_092; break; case '0.93': $this->data['type'] &= SIMPLEPIE_TYPE_RSS_093; break; case '0.94': $this->data['type'] &= SIMPLEPIE_TYPE_RSS_094; break; case '2.0': $this->data['type'] &= SIMPLEPIE_TYPE_RSS_20; break; } } } else { $this->data['type'] = SIMPLEPIE_TYPE_NONE; } } return $this->data['type']; } /** * Returns the URL for the favicon of the feed's website. * * @access public * @since 1.0 */ function get_favicon() { if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); } elseif (($url = $this->get_link()) !== null && preg_match('/^http(s)?:\/\//i', $url)) { $favicon = SimplePie_Misc::absolutize_url('/favicon.ico', $url); if ($this->cache && $this->favicon_handler) { $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $favicon), 'spi'); if ($cache->load()) { return $this->sanitize($this->favicon_handler . rawurlencode($favicon), SIMPLEPIE_CONSTRUCT_IRI); } else { $file =& new $this->file_class($favicon, $this->timeout / 10, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); if ($file->success && ($file->status_code == 200 || ($file->status_code > 206 && $file->status_code < 300)) && strlen($file->body) > 0) { if ($cache->save(array('headers' => $file->headers, 'body' => $file->body))) { return $this->sanitize($this->favicon_handler . rawurlencode($favicon), SIMPLEPIE_CONSTRUCT_IRI); } else { trigger_error("$cache->name is not writeable", E_USER_WARNING); return $this->sanitize($favicon, SIMPLEPIE_CONSTRUCT_IRI); } } } } else { return $this->sanitize($favicon, SIMPLEPIE_CONSTRUCT_IRI); } } return false; } /** * @todo If we have a perm redirect we should return the new URL * @todo When we make the above change, let's support as well * @todo Also, |atom:link|@rel=self */ function subscribe_url() { if ($this->feed_url !== null) { return $this->sanitize($this->feed_url, SIMPLEPIE_CONSTRUCT_IRI); } else { return null; } } function subscribe_feed() { if ($this->feed_url !== null) { return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 2), SIMPLEPIE_CONSTRUCT_IRI); } else { return null; } } function subscribe_outlook() { if ($this->feed_url !== null) { return 'outlook' . $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 2), SIMPLEPIE_CONSTRUCT_IRI); } else { return null; } } function subscribe_podcast() { if ($this->feed_url !== null) { return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 3), SIMPLEPIE_CONSTRUCT_IRI); } else { return null; } } function subscribe_itunes() { if ($this->feed_url !== null) { return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 4), SIMPLEPIE_CONSTRUCT_IRI); } else { return null; } } /** * Creates the subscribe_* methods' return data * * @access private * @param string $feed_url String to prefix to the feed URL * @param string $site_url String to prefix to the site URL (and * suffix to the feed URL) * @return mixed URL if feed exists, false otherwise */ function subscribe_service($feed_url, $site_url = null) { if ($this->subscribe_url()) { $return = $this->sanitize($feed_url, SIMPLEPIE_CONSTRUCT_IRI) . rawurlencode($this->subscribe_url()); if ($site_url !== null && $this->get_link() !== null) { $return .= $this->sanitize($site_url, SIMPLEPIE_CONSTRUCT_IRI) . rawurlencode($this->get_link()); } return $return; } else { return null; } } function subscribe_aol() { return $this->subscribe_service('http://feeds.my.aol.com/add.jsp?url='); } function subscribe_bloglines() { return urldecode($this->subscribe_service('http://www.bloglines.com/sub/')); } function subscribe_eskobo() { return $this->subscribe_service('http://www.eskobo.com/?AddToMyPage='); } function subscribe_feedfeeds() { return $this->subscribe_service('http://www.feedfeeds.com/add?feed='); } function subscribe_feedster() { return $this->subscribe_service('http://www.feedster.com/myfeedster.php?action=addrss&confirm=no&rssurl='); } function subscribe_google() { return $this->subscribe_service('http://fusion.google.com/add?feedurl='); } function subscribe_gritwire() { return $this->subscribe_service('http://my.gritwire.com/feeds/addExternalFeed.aspx?FeedUrl='); } function subscribe_msn() { return $this->subscribe_service('http://my.msn.com/addtomymsn.armx?id=rss&ut=', '&ru='); } function subscribe_netvibes() { return $this->subscribe_service('http://www.netvibes.com/subscribe.php?url='); } function subscribe_newsburst() { return $this->subscribe_service('http://www.newsburst.com/Source/?add='); } function subscribe_newsgator() { return $this->subscribe_service('http://www.newsgator.com/ngs/subscriber/subext.aspx?url='); } function subscribe_odeo() { return $this->subscribe_service('http://www.odeo.com/listen/subscribe?feed='); } function subscribe_podnova() { return $this->subscribe_service('http://www.podnova.com/index_your_podcasts.srf?action=add&url='); } function subscribe_rojo() { return $this->subscribe_service('http://www.rojo.com/add-subscription?resource='); } function subscribe_yahoo() { return $this->subscribe_service('http://add.my.yahoo.com/rss?url='); } function get_feed_tags($namespace, $tag) { $type = $this->get_type(); if ($type & SIMPLEPIE_TYPE_ATOM_10) { if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['child'][$namespace][$tag])) { return $this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['child'][$namespace][$tag]; } } if ($type & SIMPLEPIE_TYPE_ATOM_03) { if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['child'][$namespace][$tag])) { return $this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['child'][$namespace][$tag]; } } if ($type & SIMPLEPIE_TYPE_RSS_RDF) { if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][$namespace][$tag])) { return $this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][$namespace][$tag]; } } if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION) { if (isset($this->data['child']['']['rss'][0]['child'][$namespace][$tag])) { return $this->data['child']['']['rss'][0]['child'][$namespace][$tag]; } } return null; } function get_channel_tags($namespace, $tag) { $type = $this->get_type(); if ($type & SIMPLEPIE_TYPE_ATOM_ALL) { if ($return = $this->get_feed_tags($namespace, $tag)) { return $return; } } if ($type & SIMPLEPIE_TYPE_RSS_10) { if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'channel')) { if (isset($channel[0]['child'][$namespace][$tag])) { return $channel[0]['child'][$namespace][$tag]; } } } if ($type & SIMPLEPIE_TYPE_RSS_090) { if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'channel')) { if (isset($channel[0]['child'][$namespace][$tag])) { return $channel[0]['child'][$namespace][$tag]; } } } if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION) { if ($channel = $this->get_feed_tags('', 'channel')) { if (isset($channel[0]['child'][$namespace][$tag])) { return $channel[0]['child'][$namespace][$tag]; } } } return null; } function get_image_tags($namespace, $tag) { $type = $this->get_type(); if ($type & SIMPLEPIE_TYPE_RSS_10) { if ($image = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'image')) { if (isset($image[0]['child'][$namespace][$tag])) { return $image[0]['child'][$namespace][$tag]; } } } if ($type & SIMPLEPIE_TYPE_RSS_090) { if ($image = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'image')) { if (isset($image[0]['child'][$namespace][$tag])) { return $image[0]['child'][$namespace][$tag]; } } } if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION) { if ($image = $this->get_channel_tags('', 'image')) { if (isset($image[0]['child'][$namespace][$tag])) { return $image[0]['child'][$namespace][$tag]; } } } return null; } function get_base($element = array()) { if (!($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION) && !empty($element['xml_base_explicit']) && isset($element['xml_base'])) { return $element['xml_base']; } elseif ($this->get_link() !== null) { return $this->get_link(); } elseif (isset($this->data['headers']['content-location'])) { return SimplePie_Misc::absolutize_url($this->data['headers']['content-location'], $this->subscribe_url()); } else { return $this->subscribe_url(); } } function sanitize($data, $type, $base = '') { return $this->sanitize->sanitize($data, $type, $base); } function get_title() { if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags('', 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } else { return null; } } function get_link($key = 0, $rel = 'alternate') { $links = $this->get_links($rel); if (isset($links[$key])) { return $links[$key]; } else { return null; } } /** * Added for parity between the parent-level and the item/entry-level. */ function get_permalink() { return $this->get_link(0); } function get_links($rel = 'alternate') { if (!isset($this->data['links'])) { $this->data['links'] = array(); if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link')) { foreach ($links as $link) { if (isset($link['attribs']['']['href'])) { $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); } } } if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link')) { foreach ($links as $link) { if (isset($link['attribs']['']['href'])) { $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); } } } if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link')) { $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); } if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link')) { $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); } if ($links = $this->get_channel_tags('', 'link')) { $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); } $keys = array_keys($this->data['links']); foreach ($keys as $key) { if (SimplePie_Misc::is_isegment_nz_nc($key)) { if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key])) { $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]); $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]; } else { $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key]; } } elseif (substr($key, 0, 41) == SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY) { $this->data['links'][substr($key, 41)] =& $this->data['links'][$key]; } $this->data['links'][$key] = array_unique($this->data['links'][$key]); } } if (isset($this->data['links'][$rel])) { return $this->data['links'][$rel]; } else { return null; } } function get_description() { if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags('', 'description')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); } else { return null; } } function get_copyright() { if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags('', 'copyright')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } else { return null; } } function get_language() { if ($return = $this->get_channel_tags('', 'language')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['xml_lang'])) { return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['xml_lang'])) { return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['xml_lang'])) { return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif (isset($this->data['headers']['content-language'])) { return $this->sanitize($this->data['headers']['content-language'], SIMPLEPIE_CONSTRUCT_TEXT); } else { return null; } } function get_latitude() { if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat')) { return (float) $return[0]['data']; } elseif (($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', $return[0]['data'], $match)) { return (float) $match[1]; } else { return null; } } function get_longitude() { if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long')) { return (float) $return[0]['data']; } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon')) { return (float) $return[0]['data']; } elseif (($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', $return[0]['data'], $match)) { return (float) $match[2]; } else { return null; } } function get_image_title() { if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_image_tags('', 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } else { return null; } } function get_image_url() { if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image')) { return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); } elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); } elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'url')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); } elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'url')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); } elseif ($return = $this->get_image_tags('', 'url')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); } else { return null; } } function get_image_link() { if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); } elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); } elseif ($return = $this->get_image_tags('', 'link')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); } else { return null; } } function get_image_width() { if ($return = $this->get_image_tags('', 'width')) { return round($return[0]['data']); } elseif ($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION && $this->get_image_tags('', 'url')) { return 88.0; } else { return null; } } function get_image_height() { if ($return = $this->get_image_tags('', 'height')) { return round($return[0]['data']); } elseif ($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION && $this->get_image_tags('', 'url')) { return 31.0; } else { return null; } } function get_item_quantity($max = 0) { $qty = count($this->get_items()); if ($max == 0) { return $qty; } else { return ($qty > $max) ? $max : $qty; } } function get_item($key = 0) { $items = $this->get_items(); if (isset($items[$key])) { return $items[$key]; } else { return null; } } function get_items($start = 0, $end = 0) { if (!empty($this->multifeed_objects)) { return SimplePie::merge_items($this->multifeed_objects, $start, $end); } elseif (!isset($this->data['items'])) { if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'entry')) { $keys = array_keys($items); foreach ($keys as $key) { $this->data['items'][] =& new $this->item_class($this, $items[$key]); } } if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'entry')) { $keys = array_keys($items); foreach ($keys as $key) { $this->data['items'][] =& new $this->item_class($this, $items[$key]); } } if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'item')) { $keys = array_keys($items); foreach ($keys as $key) { $this->data['items'][] =& new $this->item_class($this, $items[$key]); } } if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'item')) { $keys = array_keys($items); foreach ($keys as $key) { $this->data['items'][] =& new $this->item_class($this, $items[$key]); } } if ($items = $this->get_channel_tags('', 'item')) { $keys = array_keys($items); foreach ($keys as $key) { $this->data['items'][] =& new $this->item_class($this, $items[$key]); } } } if (!empty($this->data['items'])) { // If we want to order it by date, check if all items have a date, and then sort it if ($this->order_by_date) { if (!isset($this->data['ordered_items'])) { $do_sort = true; foreach ($this->data['items'] as $item) { if (!$item->get_date('U')) { $do_sort = false; break; } } $item = null; $this->data['ordered_items'] = $this->data['items']; if ($do_sort) { usort($this->data['ordered_items'], array(&$this, 'sort_items')); } } $items = $this->data['ordered_items']; } else { $items = $this->data['items']; } // Slice the data as desired if ($end == 0) { return array_slice($items, $start); } else { return array_slice($items, $start, $end); } } else { return array(); } } function sort_items($a, $b) { return $a->get_date('U') <= $b->get_date('U'); } function merge_items($urls, $start = 0, $end = 0) { if (is_array($urls) && sizeof($urls) > 0) { $items = array(); foreach ($urls as $arg) { if (SimplePie_Misc::is_a($arg, 'SimplePie')) { $items = array_merge($items, $arg->get_items()); } else { trigger_error('Arguments must be SimplePie objects', E_USER_WARNING); } } $do_sort = true; foreach ($items as $item) { if (!$item->get_date('U')) { $do_sort = false; break; } } $item = null; if ($do_sort) { usort($items, array('SimplePie', 'sort_items')); } if ($end == 0) { return array_slice($items, $start); } else { return array_slice($items, $start, $end); } } else { trigger_error('Cannot merge zero SimplePie objects', E_USER_WARNING); return array(); } } } class SimplePie_Item { var $feed; var $data = array(); function SimplePie_Item($feed, $data) { $this->feed = $feed; $this->data = $data; } function __toString() { return md5(serialize($this->data)); } function get_item_tags($namespace, $tag) { if (isset($this->data['child'][$namespace][$tag])) { return $this->data['child'][$namespace][$tag]; } else { return null; } } function get_base($element = array()) { return $this->feed->get_base($element); } function sanitize($data, $type, $base = '') { return $this->feed->sanitize($data, $type, $base); } function get_feed() { return $this->feed; } function get_id($hash = false) { if ($hash) { return $this->__toString(); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'id')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'id')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_item_tags('', 'guid')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'identifier')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'identifier')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif (($return = $this->get_permalink()) !== null) { return $return; } elseif (($return = $this->get_title()) !== null) { return $return; } else { return $this->__toString(); } } function get_title() { if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_item_tags('', 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } else { return null; } } function get_description($description_only = false) { if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'summary')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'summary')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_item_tags('', 'description')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif (!$description_only) { return $this->get_content(true); } else { return null; } } function get_content($content_only = false) { if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'content')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_content_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'content')) { return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT, 'encoded')) { return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); } elseif (!$content_only) { return $this->get_description(true); } else { return null; } } function get_category($key = 0) { $categories = $this->get_categories(); if (isset($categories[$key])) { return $categories[$key]; } else { return null; } } function get_categories() { $categories = array(); foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category) { $term = null; $scheme = null; $label = null; if (isset($category['attribs']['']['term'])) { $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($category['attribs']['']['scheme'])) { $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($category['attribs']['']['label'])) { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } $categories[] =& new $this->feed->category_class($term, $scheme, $label); } foreach ((array) $this->get_item_tags('', 'category') as $category) { $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category) { $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category) { $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } if (!empty($categories)) { return SimplePie_Misc::array_unique($categories); } else { return null; } } function get_author($key = 0) { $authors = $this->get_authors(); if (isset($authors[$key])) { return $authors[$key]; } else { return null; } } /** * @todo Atom inheritance (item author, source author, feed author) */ function get_authors() { $authors = array(); foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author) { $name = null; $uri = null; $email = null; if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'])) { $name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'])) { $uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0])); } if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'])) { $email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if ($name !== null || $email !== null || $uri !== null) { $authors[] =& new $this->feed->author_class($name, $uri, $email); } } if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author')) { $name = null; $url = null; $email = null; if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'])) { $name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'])) { $uri = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0])); } if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'])) { $email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if ($name !== null || $email !== null || $uri !== null) { $authors[] =& new $this->feed->author_class($name, $url, $email); } } if ($author = $this->get_item_tags('', 'author')) { $authors[] =& new $this->feed->author_class(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author) { $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author) { $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author) { $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } if (!empty($authors)) { return SimplePie_Misc::array_unique($authors); } else { return null; } } function get_date($date_format = 'j F Y, g:i a') { if (!isset($this->data['date'])) { if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'published')) { $this->data['date']['raw'] = $return[0]['data']; } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated')) { $this->data['date']['raw'] = $return[0]['data']; } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'issued')) { $this->data['date']['raw'] = $return[0]['data']; } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'created')) { $this->data['date']['raw'] = $return[0]['data']; } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'modified')) { $this->data['date']['raw'] = $return[0]['data']; } elseif ($return = $this->get_item_tags('', 'pubDate')) { $this->data['date']['raw'] = $return[0]['data']; } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'date')) { $this->data['date']['raw'] = $return[0]['data']; } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'date')) { $this->data['date']['raw'] = $return[0]['data']; } if (!empty($this->data['date']['raw'])) { $this->data['date']['parsed'] = SimplePie_Misc::parse_date($this->data['date']['raw']); } else { $this->data['date'] = null; } } if ($this->data['date']) { $date_format = (string) $date_format; switch ($date_format) { case '': return $this->sanitize($this->data['date']['raw'], SIMPLEPIE_CONSTRUCT_TEXT); case 'U': return $this->data['date']['parsed']; default: return date($date_format, $this->data['date']['parsed']); } } else { return null; } } function get_local_date($date_format = '%c') { if (!$date_format) { return $this->sanitize($this->get_date(''), SIMPLEPIE_CONSTRUCT_TEXT); } elseif (($date = $this->get_date('U')) !== null) { return strftime($date_format, $date); } else { return null; } } function get_permalink() { $link = $this->get_link(); $enclosure = $this->get_enclosure(0); if ($link !== null) { return $link; } elseif ($enclosure !== null) { return $enclosure->get_link(); } else { return null; } } function get_link($key = 0, $rel = 'alternate') { $links = $this->get_links($rel); if ($links[$key] !== null) { return $links[$key]; } else { return null; } } function get_links($rel = 'alternate') { if (!isset($this->data['links'])) { $this->data['links'] = array(); foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link) { if (isset($link['attribs']['']['href'])) { $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); } } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link) { if (isset($link['attribs']['']['href'])) { $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); } } if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link')) { $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); } if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link')) { $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); } if ($links = $this->get_item_tags('', 'link')) { $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); } if ($links = $this->get_item_tags('', 'guid')) { if (!isset($links[0]['attribs']['']['isPermaLink']) || strtolower(trim($links[0]['attribs']['']['isPermaLink'])) == 'true') { $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); } } $keys = array_keys($this->data['links']); foreach ($keys as $key) { if (SimplePie_Misc::is_isegment_nz_nc($key)) { if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key])) { $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]); $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]; } else { $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key]; } } elseif (substr($key, 0, 41) == SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY) { $this->data['links'][substr($key, 41)] =& $this->data['links'][$key]; } $this->data['links'][$key] = array_unique($this->data['links'][$key]); } } if (isset($this->data['links'][$rel])) { return $this->data['links'][$rel]; } else { return null; } } /** * @todo Add ability to prefer one type of content over another (in a media group). */ function get_enclosure($key = 0, $prefer = null) { $enclosures = $this->get_enclosures(); if (isset($enclosures[$key])) { return $enclosures[$key]; } else { return null; } } /** * Grabs all available enclosures (podcasts, etc.) * * Supports the RSS tag, as well as Media RSS and iTunes RSS. * * At this point, we're pretty much assuming that all enclosures for an item are the same content. Anything else is too complicated to properly support. * * @todo Add support for end-user defined sorting of enclosures by type/handler (so we can prefer the faster-loading FLV over MP4). * @todo Add support for itunes: tags. These should be relatively simple compared to media:. * @todo If an element exists at a level, but it's value is empty, we should fall back to the value from the parent (if it exists). */ function get_enclosures() { if (!isset($this->data['enclosures'])) { $this->data['enclosures'] = array(); // Elements $captions_parent = null; $categories_parent = null; $copyrights_parent = null; $credits_parent = null; $description_parent = null; $duration_parent = null; $hashes_parent = null; $keywords_parent = null; $player_parent = null; $ratings_parent = null; $restrictions_parent = null; $thumbnails_parent = null; $title_parent = null; // Let's do the channel and item-level ones first, and just re-use them if we need to. $parent = $this->get_feed(); // CAPTIONS if ($captions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text')) { foreach ($captions as $caption) { $caption_type = null; $caption_lang = null; $caption_startTime = null; $caption_endTime = null; $caption_text = null; if (isset($caption['attribs']['']['type'])) { $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['lang'])) { $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['start'])) { $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['end'])) { $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['data'])) { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $captions_parent[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } } elseif ($captions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text')) { foreach ($captions as $caption) { $caption_type = null; $caption_lang = null; $caption_startTime = null; $caption_endTime = null; $caption_text = null; if (isset($caption['attribs']['']['type'])) { $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['lang'])) { $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['start'])) { $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['end'])) { $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['data'])) { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $captions_parent[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } } if (is_array($captions_parent)) { $captions_parent = array_values(SimplePie_Misc::array_unique($captions_parent)); } // CATEGORIES foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category) { $term = null; $scheme = null; $label = null; if (isset($category['data'])) { $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($category['attribs']['']['scheme'])) { $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $scheme = 'http://search.yahoo.com/mrss/category_schema'; } if (isset($category['attribs']['']['label'])) { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); } foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category) { $term = null; $scheme = null; $label = null; if (isset($category['data'])) { $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($category['attribs']['']['scheme'])) { $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $scheme = 'http://search.yahoo.com/mrss/category_schema'; } if (isset($category['attribs']['']['label'])) { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); } foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'category') as $category) { $term = null; $scheme = 'http://www.itunes.com/dtds/podcast-1.0.dtd'; $label = null; if (isset($category['attribs']['']['text'])) { $label = $this->sanitize($category['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT); } $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); if (isset($category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'])) { foreach ((array) $category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'] as $subcategory) { if (isset($subcategory['attribs']['']['text'])) { $label = $this->sanitize($subcategory['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT); } $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); } } } if (is_array($categories_parent)) { $categories_parent = array_values(SimplePie_Misc::array_unique($categories_parent)); } // COPYRIGHT if ($copyright = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright')) { $copyright_url = null; $copyright_label = null; if (isset($copyright[0]['attribs']['']['url'])) { $copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($copyright[0]['data'])) { $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $copyrights_parent =& new $this->feed->copyright_class($copyright_url, $copyright_label); } elseif ($copyright = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright')) { $copyright_url = null; $copyright_label = null; if (isset($copyright[0]['attribs']['']['url'])) { $copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($copyright[0]['data'])) { $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $copyrights_parent =& new $this->feed->copyright_class($copyright_url, $copyright_label); } // CREDITS if ($credits = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit')) { foreach ($credits as $credit) { $credit_role = null; $credit_scheme = null; $credit_name = null; if (isset($credit['attribs']['']['role'])) { $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($credit['attribs']['']['scheme'])) { $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $credit_scheme = 'urn:ebu'; } if (isset($credit['data'])) { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $credits_parent[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } } elseif ($credits = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit')) { foreach ($credits as $credit) { $credit_role = null; $credit_scheme = null; $credit_name = null; if (isset($credit['attribs']['']['role'])) { $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($credit['attribs']['']['scheme'])) { $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $credit_scheme = 'urn:ebu'; } if (isset($credit['data'])) { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $credits_parent[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } } if (is_array($credits_parent)) { $credits_parent = array_values(SimplePie_Misc::array_unique($credits_parent)); } // DESCRIPTION if ($description_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description')) { if (isset($description_parent[0]['data'])) { $description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } } elseif ($description_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description')) { if (isset($description_parent[0]['data'])) { $description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } } // DURATION if ($duration_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'duration')) { $seconds = null; $minutes = null; $hours = null; if (isset($duration_parent[0]['data'])) { $temp = explode(':', $this->sanitize($duration_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); if (sizeof($temp) > 0) { (int) $seconds = array_pop($temp); } if (sizeof($temp) > 0) { (int) $minutes = array_pop($temp); $seconds += $minutes * 60; } if (sizeof($temp) > 0) { (int) $hours = array_pop($temp); $seconds += $hours * 3600; } unset($temp); $duration_parent = $seconds; } } // HASHES if ($hashes_iterator = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash')) { foreach ($hashes_iterator as $hash) { $value = null; $algo = null; if (isset($hash['data'])) { $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($hash['attribs']['']['algo'])) { $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $algo = 'md5'; } $hashes_parent[] = $algo.':'.$value; } } elseif ($hashes_iterator = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash')) { foreach ($hashes_iterator as $hash) { $value = null; $algo = null; if (isset($hash['data'])) { $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($hash['attribs']['']['algo'])) { $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $algo = 'md5'; } $hashes_parent[] = $algo.':'.$value; } } if (is_array($hashes_parent)) { $hashes_parent = array_values(SimplePie_Misc::array_unique($hashes_parent)); } // KEYWORDS if ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords')) { if (isset($keywords[0]['data'])) { $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); foreach ($temp as $word) { $keywords_parent[] = trim($word); } } unset($temp); } elseif ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords')) { if (isset($keywords[0]['data'])) { $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); foreach ($temp as $word) { $keywords_parent[] = trim($word); } } unset($temp); } elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords')) { if (isset($keywords[0]['data'])) { $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); foreach ($temp as $word) { $keywords_parent[] = trim($word); } } unset($temp); } elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords')) { if (isset($keywords[0]['data'])) { $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); foreach ($temp as $word) { $keywords_parent[] = trim($word); } } unset($temp); } if (is_array($keywords_parent)) { $keywords_parent = array_values(SimplePie_Misc::array_unique($keywords_parent)); } // PLAYER if ($player_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player')) { if (isset($player_parent[0]['attribs']['']['url'])) { $player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); } } elseif ($player_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player')) { if (isset($player_parent[0]['attribs']['']['url'])) { $player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); } } // RATINGS if ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating')) { foreach ($ratings as $rating) { $rating_scheme = null; $rating_value = null; if (isset($rating['attribs']['']['scheme'])) { $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $rating_scheme = 'urn:simple'; } if (isset($rating['data'])) { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); } } elseif ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit')) { foreach ($ratings as $rating) { $rating_scheme = 'urn:itunes'; $rating_value = null; if (isset($rating['data'])) { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); } } elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating')) { foreach ($ratings as $rating) { $rating_scheme = null; $rating_value = null; if (isset($rating['attribs']['']['scheme'])) { $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $rating_scheme = 'urn:simple'; } if (isset($rating['data'])) { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); } } elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit')) { foreach ($ratings as $rating) { $rating_scheme = 'urn:itunes'; $rating_value = null; if (isset($rating['data'])) { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); } } if (is_array($ratings_parent)) { $ratings_parent = array_values(SimplePie_Misc::array_unique($ratings_parent)); } // RESTRICTIONS if ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction')) { foreach ($restrictions as $restriction) { $restriction_relationship = null; $restriction_type = null; $restriction_value = null; if (isset($restriction['attribs']['']['relationship'])) { $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($restriction['attribs']['']['type'])) { $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($restriction['data'])) { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } elseif ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block')) { foreach ($restrictions as $restriction) { $restriction_relationship = 'allow'; $restriction_type = null; $restriction_value = 'itunes'; if (isset($restriction['data']) && strtolower($restriction['data']) == 'yes') { $restriction_relationship = 'deny'; } $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction')) { foreach ($restrictions as $restriction) { $restriction_relationship = null; $restriction_type = null; $restriction_value = null; if (isset($restriction['attribs']['']['relationship'])) { $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($restriction['attribs']['']['type'])) { $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($restriction['data'])) { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block')) { foreach ($restrictions as $restriction) { $restriction_relationship = 'allow'; $restriction_type = null; $restriction_value = 'itunes'; if (isset($restriction['data']) && strtolower($restriction['data']) == 'yes') { $restriction_relationship = 'deny'; } $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } if (is_array($restrictions_parent)) { $restrictions_parent = array_values(SimplePie_Misc::array_unique($restrictions_parent)); } // THUMBNAILS if ($thumbnails = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail')) { foreach ($thumbnails as $thumbnail) { if (isset($thumbnail['attribs']['']['url'])) { $thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); } } } elseif ($thumbnails = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail')) { foreach ($thumbnails as $thumbnail) { if (isset($thumbnail['attribs']['']['url'])) { $thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); } } } // TITLES if ($title_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title')) { if (isset($title_parent[0]['data'])) { $title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } } elseif ($title_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title')) { if (isset($title_parent[0]['data'])) { $title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } } // Clear the memory unset($parent); // If we have media:group tags, loop through them. foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'group') as $group) { // If we have media:content tags, loop through them. foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content) { if (isset($content['attribs']['']['url'])) { // Attributes $bitrate = null; $channels = null; $duration = null; $expression = null; $framerate = null; $height = null; $javascript = null; $lang = null; $length = null; $medium = null; $samplingrate = null; $type = null; $url = null; $width = null; // Elements $captions = null; $categories = null; $copyrights = null; $credits = null; $description = null; $hashes = null; $keywords = null; $player = null; $ratings = null; $restrictions = null; $thumbnails = null; $title = null; // Start checking the attributes of media:content if (isset($content['attribs']['']['bitrate'])) { $bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['channels'])) { $channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['duration'])) { $duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $duration = $duration_parent; } if (isset($content['attribs']['']['expression'])) { $expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['framerate'])) { $framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['height'])) { $height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['lang'])) { $lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['fileSize'])) { $length = ceil($content['attribs']['']['fileSize']); } if (isset($content['attribs']['']['medium'])) { $medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['samplingrate'])) { $samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['type'])) { $type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['width'])) { $width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT); } $url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); // Checking the other optional media: elements. Priority: media:content, media:group, item, channel // CAPTIONS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption) { $caption_type = null; $caption_lang = null; $caption_startTime = null; $caption_endTime = null; $caption_text = null; if (isset($caption['attribs']['']['type'])) { $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['lang'])) { $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['start'])) { $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['end'])) { $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['data'])) { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } if (is_array($captions)) { $captions = array_values(SimplePie_Misc::array_unique($captions)); } } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'])) { foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption) { $caption_type = null; $caption_lang = null; $caption_startTime = null; $caption_endTime = null; $caption_text = null; if (isset($caption['attribs']['']['type'])) { $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['lang'])) { $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['start'])) { $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['end'])) { $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['data'])) { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } if (is_array($captions)) { $captions = array_values(SimplePie_Misc::array_unique($captions)); } } else { $captions = $captions_parent; } // CATEGORIES if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'])) { foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category) { $term = null; $scheme = null; $label = null; if (isset($category['data'])) { $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($category['attribs']['']['scheme'])) { $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $scheme = 'http://search.yahoo.com/mrss/category_schema'; } if (isset($category['attribs']['']['label'])) { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } $categories[] =& new $this->feed->category_class($term, $scheme, $label); } } if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'])) { foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category) { $term = null; $scheme = null; $label = null; if (isset($category['data'])) { $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($category['attribs']['']['scheme'])) { $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $scheme = 'http://search.yahoo.com/mrss/category_schema'; } if (isset($category['attribs']['']['label'])) { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } $categories[] =& new $this->feed->category_class($term, $scheme, $label); } } if (is_array($categories) && is_array($categories_parent)) { $categories = array_values(SimplePie_Misc::array_unique(array_merge($categories, $categories_parent))); } elseif (is_array($categories)) { $categories = array_values(SimplePie_Misc::array_unique($categories)); } elseif (is_array($categories_parent)) { $categories = array_values(SimplePie_Misc::array_unique($categories_parent)); } // COPYRIGHTS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'])) { $copyright_url = null; $copyright_label = null; if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'])) { $copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'])) { $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'])) { $copyright_url = null; $copyright_label = null; if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'])) { $copyright_url = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'])) { $copyright_label = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); } else { $copyrights = $copyrights_parent; } // CREDITS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit) { $credit_role = null; $credit_scheme = null; $credit_name = null; if (isset($credit['attribs']['']['role'])) { $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($credit['attribs']['']['scheme'])) { $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $credit_scheme = 'urn:ebu'; } if (isset($credit['data'])) { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } if (is_array($credits)) { $credits = array_values(SimplePie_Misc::array_unique($credits)); } } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'])) { foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit) { $credit_role = null; $credit_scheme = null; $credit_name = null; if (isset($credit['attribs']['']['role'])) { $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($credit['attribs']['']['scheme'])) { $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $credit_scheme = 'urn:ebu'; } if (isset($credit['data'])) { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } if (is_array($credits)) { $credits = array_values(SimplePie_Misc::array_unique($credits)); } } else { $credits = $credits_parent; } // DESCRIPTION if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'])) { $description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'])) { $description = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $description = $description_parent; } // HASHES if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash) { $value = null; $algo = null; if (isset($hash['data'])) { $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($hash['attribs']['']['algo'])) { $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $algo = 'md5'; } $hashes[] = $algo.':'.$value; } if (is_array($hashes)) { $hashes = array_values(SimplePie_Misc::array_unique($hashes)); } } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'])) { foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash) { $value = null; $algo = null; if (isset($hash['data'])) { $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($hash['attribs']['']['algo'])) { $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $algo = 'md5'; } $hashes[] = $algo.':'.$value; } if (is_array($hashes)) { $hashes = array_values(SimplePie_Misc::array_unique($hashes)); } } else { $hashes = $hashes_parent; } // KEYWORDS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'])) { if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'])) { $temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); foreach ($temp as $word) { $keywords[] = trim($word); } unset($temp); } if (is_array($keywords)) { $keywords = array_values(SimplePie_Misc::array_unique($keywords)); } } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'])) { if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'])) { $temp = explode(',', $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); foreach ($temp as $word) { $keywords[] = trim($word); } unset($temp); } if (is_array($keywords)) { $keywords = array_values(SimplePie_Misc::array_unique($keywords)); } } else { $keywords = $keywords_parent; } // PLAYER if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'])) { $player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'])) { $player = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); } else { $player = $player_parent; } // RATINGS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating) { $rating_scheme = null; $rating_value = null; if (isset($rating['attribs']['']['scheme'])) { $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $rating_scheme = 'urn:simple'; } if (isset($rating['data'])) { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); } if (is_array($ratings)) { $ratings = array_values(SimplePie_Misc::array_unique($ratings)); } } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'])) { foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating) { $rating_scheme = null; $rating_value = null; if (isset($rating['attribs']['']['scheme'])) { $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $rating_scheme = 'urn:simple'; } if (isset($rating['data'])) { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); } if (is_array($ratings)) { $ratings = array_values(SimplePie_Misc::array_unique($ratings)); } } else { $ratings = $ratings_parent; } // RESTRICTIONS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction) { $restriction_relationship = null; $restriction_type = null; $restriction_value = null; if (isset($restriction['attribs']['']['relationship'])) { $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($restriction['attribs']['']['type'])) { $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($restriction['data'])) { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } if (is_array($restrictions)) { $restrictions = array_values(SimplePie_Misc::array_unique($restrictions)); } } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'])) { foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction) { $restriction_relationship = null; $restriction_type = null; $restriction_value = null; if (isset($restriction['attribs']['']['relationship'])) { $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($restriction['attribs']['']['type'])) { $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($restriction['data'])) { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } if (is_array($restrictions)) { $restrictions = array_values(SimplePie_Misc::array_unique($restrictions)); } } else { $restrictions = $restrictions_parent; } // THUMBNAILS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail) { $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); } if (is_array($thumbnails)) { $thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails)); } } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'])) { foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail) { $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); } if (is_array($thumbnails)) { $thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails)); } } else { $thumbnails = $thumbnails_parent; } // TITLES if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'])) { $title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'])) { $title = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $title = $title_parent; } $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); } } } // If we have standalone media:content tags, loop through them. if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'])) { foreach ((array) $this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content) { if (isset($content['attribs']['']['url'])) { // Attributes $bitrate = null; $channels = null; $duration = null; $expression = null; $framerate = null; $height = null; $javascript = null; $lang = null; $length = null; $medium = null; $samplingrate = null; $type = null; $url = null; $width = null; // Elements $captions = null; $categories = null; $copyrights = null; $credits = null; $description = null; $hashes = null; $keywords = null; $player = null; $ratings = null; $restrictions = null; $thumbnails = null; $title = null; // Start checking the attributes of media:content if (isset($content['attribs']['']['bitrate'])) { $bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['channels'])) { $channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['duration'])) { $duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $duration = $duration_parent; } if (isset($content['attribs']['']['expression'])) { $expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['framerate'])) { $framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['height'])) { $height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['lang'])) { $lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['fileSize'])) { $length = ceil($content['attribs']['']['fileSize']); } if (isset($content['attribs']['']['medium'])) { $medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['samplingrate'])) { $samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['type'])) { $type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['attribs']['']['width'])) { $width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT); } $url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); // Checking the other optional media: elements. Priority: media:content, media:group, item, channel // CAPTIONS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption) { $caption_type = null; $caption_lang = null; $caption_startTime = null; $caption_endTime = null; $caption_text = null; if (isset($caption['attribs']['']['type'])) { $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['lang'])) { $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['start'])) { $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['attribs']['']['end'])) { $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($caption['data'])) { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } if (is_array($captions)) { $captions = array_values(SimplePie_Misc::array_unique($captions)); } } else { $captions = $captions_parent; } // CATEGORIES if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'])) { foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category) { $term = null; $scheme = null; $label = null; if (isset($category['data'])) { $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($category['attribs']['']['scheme'])) { $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $scheme = 'http://search.yahoo.com/mrss/category_schema'; } if (isset($category['attribs']['']['label'])) { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } $categories[] =& new $this->feed->category_class($term, $scheme, $label); } } if (is_array($categories) && is_array($categories_parent)) { $categories = array_values(SimplePie_Misc::array_unique(array_merge($categories, $categories_parent))); } elseif (is_array($categories)) { $categories = array_values(SimplePie_Misc::array_unique($categories)); } elseif (is_array($categories_parent)) { $categories = array_values(SimplePie_Misc::array_unique($categories_parent)); } else { $categories = null; } // COPYRIGHTS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'])) { $copyright_url = null; $copyright_label = null; if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'])) { $copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'])) { $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); } else { $copyrights = $copyrights_parent; } // CREDITS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit) { $credit_role = null; $credit_scheme = null; $credit_name = null; if (isset($credit['attribs']['']['role'])) { $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($credit['attribs']['']['scheme'])) { $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $credit_scheme = 'urn:ebu'; } if (isset($credit['data'])) { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } if (is_array($credits)) { $credits = array_values(SimplePie_Misc::array_unique($credits)); } } else { $credits = $credits_parent; } // DESCRIPTION if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'])) { $description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $description = $description_parent; } // HASHES if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash) { $value = null; $algo = null; if (isset($hash['data'])) { $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($hash['attribs']['']['algo'])) { $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $algo = 'md5'; } $hashes[] = $algo.':'.$value; } if (is_array($hashes)) { $hashes = array_values(SimplePie_Misc::array_unique($hashes)); } } else { $hashes = $hashes_parent; } // KEYWORDS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'])) { if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'])) { $temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); foreach ($temp as $word) { $keywords[] = trim($word); } unset($temp); } if (is_array($keywords)) { $keywords = array_values(SimplePie_Misc::array_unique($keywords)); } } else { $keywords = $keywords_parent; } // PLAYER if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'])) { $player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); } else { $player = $player_parent; } // RATINGS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating) { $rating_scheme = null; $rating_value = null; if (isset($rating['attribs']['']['scheme'])) { $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $rating_scheme = 'urn:simple'; } if (isset($rating['data'])) { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); } if (is_array($ratings)) { $ratings = array_values(SimplePie_Misc::array_unique($ratings)); } } else { $ratings = $ratings_parent; } // RESTRICTIONS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction) { $restriction_relationship = null; $restriction_type = null; $restriction_value = null; if (isset($restriction['attribs']['']['relationship'])) { $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($restriction['attribs']['']['type'])) { $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($restriction['data'])) { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } if (is_array($restrictions)) { $restrictions = array_values(SimplePie_Misc::array_unique($restrictions)); } } else { $restrictions = $restrictions_parent; } // THUMBNAILS if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'])) { foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail) { $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); } if (is_array($thumbnails)) { $thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails)); } } else { $thumbnails = $thumbnails_parent; } // TITLES if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'])) { $title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } else { $title = $title_parent; } $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); } } } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link) { if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] == 'enclosure') { // Attributes $bitrate = null; $channels = null; $duration = null; $expression = null; $framerate = null; $height = null; $javascript = null; $lang = null; $length = null; $medium = null; $samplingrate = null; $type = null; $url = null; $width = null; $url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); if (isset($link['attribs']['']['type'])) { $type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($link['attribs']['']['length'])) { $length = ceil($link['attribs']['']['length']); } // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); } } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link) { if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] == 'enclosure') { // Attributes $bitrate = null; $channels = null; $duration = null; $expression = null; $framerate = null; $height = null; $javascript = null; $lang = null; $length = null; $medium = null; $samplingrate = null; $type = null; $url = null; $width = null; $url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); if (isset($link['attribs']['']['type'])) { $type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($link['attribs']['']['length'])) { $length = ceil($link['attribs']['']['length']); } // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); } } if ($enclosure = $this->get_item_tags('', 'enclosure')) { if (isset($enclosure[0]['attribs']['']['url'])) { // Attributes $bitrate = null; $channels = null; $duration = null; $expression = null; $framerate = null; $height = null; $javascript = null; $lang = null; $length = null; $medium = null; $samplingrate = null; $type = null; $url = null; $width = null; $url = $this->sanitize($enclosure[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($enclosure[0])); if (isset($enclosure[0]['attribs']['']['type'])) { $type = $this->sanitize($enclosure[0]['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); } if (isset($enclosure[0]['attribs']['']['length'])) { $length = ceil($enclosure[0]['attribs']['']['length']); } // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); } } $this->data['enclosures'] = array_values(SimplePie_Misc::array_unique($this->data['enclosures'])); } if (!empty($this->data['enclosures'])) { return $this->data['enclosures']; } else { return null; } } function get_latitude() { if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat')) { return (float) $return[0]['data']; } elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', $return[0]['data'], $match)) { return (float) $match[1]; } else { return null; } } function get_longitude() { if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long')) { return (float) $return[0]['data']; } elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon')) { return (float) $return[0]['data']; } elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', $return[0]['data'], $match)) { return (float) $match[2]; } else { return null; } } /** * Creates the add_to_* methods' return data * * @access private * @param string $item_url String to prefix to the item permalink * @param string $title_url String to prefix to the item title * (and suffix to the item permalink) * @return mixed URL if feed exists, false otherwise */ function add_to_service($item_url, $title_url = null) { if ($this->get_permalink() !== null) { $return = $this->sanitize($item_url, SIMPLEPIE_CONSTRUCT_IRI) . rawurlencode($this->get_permalink()); if ($title_url !== null && $this->get_title() !== null) { $return .= $this->sanitize($title_url, SIMPLEPIE_CONSTRUCT_IRI) . rawurlencode($this->get_title()); } return $return; } else { return null; } } function add_to_blinklist() { return $this->add_to_service('http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=&Url=', '&Title='); } function add_to_blogmarks() { return $this->add_to_service('http://blogmarks.net/my/new.php?mini=1&simple=1&url=', '&title='); } function add_to_delicious() { return $this->add_to_service('http://del.icio.us/post/?v=3&url=', '&title='); } function add_to_digg() { return $this->add_to_service('http://digg.com/submit?phase=2&URL='); } function add_to_furl() { return $this->add_to_service('http://www.furl.net/storeIt.jsp?u=', '&t='); } function add_to_magnolia() { return $this->add_to_service('http://ma.gnolia.com/bookmarklet/add?url=', '&title='); } function add_to_myweb20() { return $this->add_to_service('http://myweb2.search.yahoo.com/myresults/bookmarklet?u=', '&t='); } function add_to_newsvine() { return $this->add_to_service('http://www.newsvine.com/_wine/save?u=', '&h='); } function add_to_reddit() { return $this->add_to_service('http://reddit.com/submit?url=', '&title='); } function add_to_segnalo() { return $this->add_to_service('http://segnalo.com/post.html.php?url=', '&title='); } function add_to_simpy() { return $this->add_to_service('http://www.simpy.com/simpy/LinkAdd.do?href=', '&title='); } function add_to_spurl() { return $this->add_to_service('http://www.spurl.net/spurl.php?v=3&url=', '&title='); } function add_to_wists() { return $this->add_to_service('http://wists.com/r.php?c=&r=', '&title='); } function search_technorati() { return $this->add_to_service('http://www.technorati.com/search/'); } } class SimplePie_Author { var $name; var $link; var $email; // Constructor, used to input the data function SimplePie_Author($name = null, $link = null, $email = null) { $this->name = $name; $this->link = $link; $this->email = $email; } function __toString() { // There is no $this->data here return md5(serialize($this)); } function get_name() { if ($this->name !== null) { return $this->name; } else { return null; } } function get_link() { if ($this->link !== null) { return $this->link; } else { return null; } } function get_email() { if ($this->email !== null) { return $this->email; } else { return null; } } } class SimplePie_Category { var $term; var $scheme; var $label; // Constructor, used to input the data function SimplePie_Category($term = null, $scheme = null, $label = null) { $this->term = $term; $this->scheme = $scheme; $this->label = $label; } function __toString() { // There is no $this->data here return md5(serialize($this)); } function get_term() { if ($this->term !== null) { return $this->term; } else { return null; } } function get_scheme() { if ($this->scheme !== null) { return $this->scheme; } else { return null; } } function get_label() { if ($this->label !== null) { return $this->label; } else { return $this->get_term(); } } } class SimplePie_Enclosure { var $bitrate; var $captions; var $categories; var $channels; var $copyright; var $credits; var $description; var $duration; var $expression; var $framerate; var $handler; var $hashes; var $height; var $javascript; var $keywords; var $lang; var $length; var $link; var $medium; var $player; var $ratings; var $restrictions; var $samplingrate; var $thumbnails; var $title; var $type; var $width; // Constructor, used to input the data function SimplePie_Enclosure($link = null, $type = null, $length = null, $javascript = null, $bitrate = null, $captions = null, $categories = null, $channels = null, $copyright = null, $credits = null, $description = null, $duration = null, $expression = null, $framerate = null, $hashes = null, $height = null, $keywords = null, $lang = null, $medium = null, $player = null, $ratings = null, $restrictions = null, $samplingrate = null, $thumbnails = null, $title = null, $width = null) { $this->bitrate = $bitrate; $this->captions = $captions; $this->categories = $categories; $this->channels = $channels; $this->copyright = $copyright; $this->credits = $credits; $this->description = $description; $this->duration = $duration; $this->expression = $expression; $this->framerate = $framerate; $this->hashes = $hashes; $this->height = $height; $this->javascript = $javascript; $this->keywords = $keywords; $this->lang = $lang; $this->length = $length; $this->link = $link; $this->medium = $medium; $this->player = $player; $this->ratings = $ratings; $this->restrictions = $restrictions; $this->samplingrate = $samplingrate; $this->thumbnails = $thumbnails; $this->title = $title; $this->type = $type; $this->width = $width; if (class_exists('idna_convert')) { $idn =& new idna_convert; $parsed = SimplePie_Misc::parse_url($link); $this->link = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']); } $this->handler = $this->get_handler(); // Needs to load last } function __toString() { // There is no $this->data here return md5(serialize($this)); } function get_bitrate() { if ($this->bitrate !== null) { return $this->bitrate; } else { return null; } } function get_caption($key = 0) { $captions = $this->get_captions(); if (isset($captions[$key])) { return $captions[$key]; } else { return null; } } function get_captions() { if ($this->captions !== null) { return $this->captions; } else { return null; } } function get_category($key = 0) { $categories = $this->get_categories(); if (isset($categories[$key])) { return $categories[$key]; } else { return null; } } function get_categories() { if ($this->categories !== null) { return $this->categories; } else { return null; } } function get_channels() { if ($this->channels !== null) { return $this->channels; } else { return null; } } function get_copyright() { if ($this->copyright !== null) { return $this->copyright; } else { return null; } } function get_credit($key = 0) { $credits = $this->get_credits(); if (isset($credits[$key])) { return $credits[$key]; } else { return null; } } function get_credits() { if ($this->credits !== null) { return $this->credits; } else { return null; } } function get_description() { if ($this->description !== null) { return $this->description; } else { return null; } } function get_duration($convert = false) { if ($this->duration !== null) { if ($convert) { $time = SimplePie_Misc::time_hms($this->duration); return $time; } else { return $this->duration; } } else { return null; } } function get_expression() { if ($this->expression !== null) { return $this->expression; } else { return 'full'; } } function get_extension() { if ($this->link !== null) { $url = SimplePie_Misc::parse_url($this->link); if ($url['path'] !== '') { return pathinfo($url['path'], PATHINFO_EXTENSION); } } return null; } function get_framerate() { if ($this->framerate !== null) { return $this->framerate; } else { return null; } } function get_handler() { return $this->get_real_type(true); } function get_hash($key = 0) { $hashes = $this->get_hashes(); if (isset($hashes[$key])) { return $hashes[$key]; } else { return null; } } function get_hashes() { if ($this->hashes !== null) { return $this->hashes; } else { return null; } } function get_height() { if ($this->height !== null) { return $this->height; } else { return null; } } function get_language() { if ($this->lang !== null) { return $this->lang; } else { return null; } } function get_keyword($key = 0) { $keywords = $this->get_keywords(); if (isset($keywords[$key])) { return $keywords[$key]; } else { return null; } } function get_keywords() { if ($this->keywords !== null) { return $this->keywords; } else { return null; } } function get_length() { if ($this->length !== null) { return $this->length; } else { return null; } } function get_link() { if ($this->link !== null) { return urldecode($this->link); } else { return null; } } function get_medium() { if ($this->medium !== null) { return $this->medium; } else { return null; } } function get_player() { if ($this->player !== null) { return $this->player; } else { return null; } } function get_rating($key = 0) { $ratings = $this->get_ratings(); if (isset($ratings[$key])) { return $ratings[$key]; } else { return null; } } function get_ratings() { if ($this->ratings !== null) { return $this->ratings; } else { return null; } } function get_restriction($key = 0) { $restrictions = $this->get_restrictions(); if (isset($restrictions[$key])) { return $restrictions[$key]; } else { return null; } } function get_restrictions() { if ($this->restrictions !== null) { return $this->restrictions; } else { return null; } } function get_sampling_rate() { if ($this->samplingrate !== null) { return $this->samplingrate; } else { return null; } } function get_size() { $length = $this->get_length(); if ($length !== null) { return round($length/1048576, 2); } else { return null; } } function get_thumbnail($key = 0) { $thumbnails = $this->get_thumbnails(); if (isset($thumbnails[$key])) { return $thumbnails[$key]; } else { return null; } } function get_thumbnails() { if ($this->thumbnails !== null) { return $this->thumbnails; } else { return null; } } function get_title() { if ($this->title !== null) { return $this->title; } else { return null; } } function get_type() { if ($this->type !== null) { return $this->type; } else { return null; } } function get_width() { if ($this->width !== null) { return $this->width; } else { return null; } } function native_embed($options='') { return $this->embed($options, true); } /** * @todo If the dimensions for media:content are defined, use them when width/height are set to 'auto'. */ function embed($options = '', $native = false) { // Set up defaults $audio = ''; $video = ''; $alt = ''; $altclass = ''; $loop = 'false'; $width = 'auto'; $height = 'auto'; $bgcolor = '#ffffff'; $mediaplayer = ''; $widescreen = false; $handler = $this->get_handler(); $type = $this->get_real_type(); // Process options and reassign values as necessary if (is_array($options)) { extract($options); } else { $options = explode(',', $options); foreach($options as $option) { $opt = explode(':', $option, 2); if (isset($opt[0], $opt[1])) { $opt[0] = trim($opt[0]); $opt[1] = trim($opt[1]); switch ($opt[0]) { case 'audio': $audio = $opt[1]; break; case 'video': $video = $opt[1]; break; case 'alt': $alt = $opt[1]; break; case 'altclass': $altclass = $opt[1]; break; case 'loop': $loop = $opt[1]; break; case 'width': $width = $opt[1]; break; case 'height': $height = $opt[1]; break; case 'bgcolor': $bgcolor = $opt[1]; break; case 'mediaplayer': $mediaplayer = $opt[1]; break; case 'widescreen': $widescreen = $opt[1]; break; } } } } $mime = explode('/', $type, 2); $mime = $mime[0]; // Process values for 'auto' if ($width == 'auto') { if ($mime == 'video') { if ($height == 'auto') { $width = 480; } elseif ($widescreen) { $width = round((intval($height)/9)*16); } else { $width = round((intval($height)/3)*4); } } else { $width = '100%'; } } if ($height == 'auto') { if ($mime == 'audio') { $height = 0; } elseif ($mime == 'video') { if ($width == 'auto') { if ($widescreen) { $height = 270; } else { $height = 360; } } elseif ($widescreen) { $height = round((intval($width)/16)*9); } else { $height = round((intval($width)/4)*3); } } else { $height = 376; } } elseif ($mime == 'audio') { $height = 0; } // Set proper placeholder value if ($mime == 'audio') { $placeholder = $audio; } elseif ($mime == 'video') { $placeholder = $video; } $embed = ''; // Make sure the JS library is included if (!$native) { static $javascript_outputted = null; if (!$javascript_outputted && $this->javascript) { $embed .= ''; $javascript_outputted = true; } } // Odeo Feed MP3's if ($handler == 'odeo') { if ($native) { $embed .= ''; } else { $embed .= ''; } } // Flash elseif ($handler == 'flash') { if ($native) { $embed .= "get_link() . "\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"$type\" quality=\"high\" width=\"$width\" height=\"$height\" bgcolor=\"$bgcolor\" loop=\"$loop\">"; } else { $embed .= ""; } } // Flash Media Player file types. // Preferred handler for MP3 file types. elseif ($handler == 'fmedia' || ($handler == 'mp3' && $mediaplayer != '')) { $height += 20; if ($native) { $embed .= "get_link().'?file_extension=.'.$this->get_extension()) . "&autostart=false&repeat=$loop&showdigits=true&showfsbutton=false\">"; } else { $embed .= ""; } } // QuickTime 7 file types. Need to test with QuickTime 6. // Only handle MP3's if the Flash Media Player is not present. elseif ($handler == 'quicktime' || ($handler == 'mp3' && $mediaplayer == '')) { $height += 16; if ($native) { if ($placeholder != ""){ $embed .= "get_link() . "\" src=\"$placeholder\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"false\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\">"; } else { $embed .= "get_link() . "\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"true\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\">"; } } else { $embed .= ""; } } // Windows Media elseif ($handler == 'wmedia') { $height += 45; if ($native) { $embed .= "get_link() . "\" autosize=\"1\" width=\"$width\" height=\"$height\" showcontrols=\"1\" showstatusbar=\"0\" showdisplay=\"0\" autostart=\"0\">"; } else { $embed .= ""; } } // Everything else else $embed .= '' . $alt . ''; return $embed; } function get_real_type($find_handler = false) { // If it's Odeo, let's get it out of the way. if (substr(strtolower($this->get_link()), 0, 15) == 'http://odeo.com') { return 'odeo'; } // Mime-types by handler. $types_flash = array('application/x-shockwave-flash', 'application/futuresplash'); // Flash $types_fmedia = array('video/flv', 'video/x-flv'); // Flash Media Player $types_quicktime = array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video'); // QuickTime $types_wmedia = array('application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'); // Windows Media $types_mp3 = array('audio/mp3', 'audio/x-mp3', 'audio/mpeg', 'audio/x-mpeg'); // MP3 if ($this->get_type() !== null) { $type = strtolower($this->type); } else { $type = null; } // If we encounter an unsupported mime-type, check the file extension and guess intelligently. if (!in_array($type, array_merge($types_flash, $types_fmedia, $types_quicktime, $types_wmedia, $types_mp3))) { switch (strtolower($this->get_extension())) { // Audio mime-types case 'aac': case 'adts': $type = 'audio/acc'; break; case 'aif': case 'aifc': case 'aiff': case 'cdda': $type = 'audio/aiff'; break; case 'bwf': $type = 'audio/wav'; break; case 'kar': case 'mid': case 'midi': case 'smf': $type = 'audio/midi'; break; case 'm4a': $type = 'audio/x-m4a'; break; case 'mp3': case 'swa': $type = 'audio/mp3'; break; case 'wav': $type = 'audio/wav'; break; case 'wax': $type = 'audio/x-ms-wax'; break; case 'wma': $type = 'audio/x-ms-wma'; break; // Video mime-types case '3gp': case '3gpp': $type = 'video/3gpp'; break; case '3g2': case '3gp2': $type = 'video/3gpp2'; break; case 'asf': $type = 'video/x-ms-asf'; break; case 'flv': $type = 'video/x-flv'; break; case 'm1a': case 'm1s': case 'm1v': case 'm15': case 'm75': case 'mp2': case 'mpa': case 'mpeg': case 'mpg': case 'mpm': case 'mpv': $type = 'video/mpeg'; break; case 'm4v': $type = 'video/x-m4v'; break; case 'mov': case 'qt': $type = 'video/quicktime'; break; case 'mp4': case 'mpg4': $type = 'video/mp4'; break; case 'sdv': $type = 'video/sd-video'; break; case 'wm': $type = 'video/x-ms-wm'; break; case 'wmv': $type = 'video/x-ms-wmv'; break; case 'wvx': $type = 'video/x-ms-wvx'; break; // Flash mime-types case 'spl': $type = 'application/futuresplash'; break; case 'swf': $type = 'application/x-shockwave-flash'; break; } } if ($find_handler) { if (in_array($type, $types_flash)) { return 'flash'; } elseif (in_array($type, $types_fmedia)) { return 'fmedia'; } elseif (in_array($type, $types_quicktime)) { return 'quicktime'; } elseif (in_array($type, $types_wmedia)) { return 'wmedia'; } elseif (in_array($type, $types_mp3)) { return 'mp3'; } else { return null; } } else { return $type; } } } class SimplePie_Caption { var $type; var $lang; var $startTime; var $endTime; var $text; // Constructor, used to input the data function SimplePie_Caption($type = null, $lang = null, $startTime = null, $endTime = null, $text = null) { $this->type = $type; $this->lang = $lang; $this->startTime = $startTime; $this->endTime = $endTime; $this->text = $text; } function __toString() { // There is no $this->data here return md5(serialize($this)); } function get_endtime() { if ($this->endTime !== null) { return $this->endTime; } else { return null; } } function get_language() { if ($this->language !== null) { return $this->language; } else { return null; } } function get_starttime() { if ($this->startTime !== null) { return $this->startTime; } else { return null; } } function get_text() { if ($this->text !== null) { return $this->text; } else { return null; } } function get_type() { if ($this->type !== null) { return $this->type; } else { return null; } } } class SimplePie_Credit { var $role; var $scheme; var $name; // Constructor, used to input the data function SimplePie_Credit($role = null, $scheme = null, $name = null) { $this->role = $role; $this->scheme = $scheme; $this->name = $name; } function __toString() { // There is no $this->data here return md5(serialize($this)); } function get_role() { if ($this->role !== null) { return $this->role; } else { return null; } } function get_scheme() { if ($this->scheme !== null) { return $this->scheme; } else { return null; } } function get_name() { if ($this->name !== null) { return $this->name; } else { return null; } } } class SimplePie_Copyright { var $url; var $label; // Constructor, used to input the data function SimplePie_Copyright($url = null, $label = null) { $this->url = $url; $this->label = $label; } function __toString() { // There is no $this->data here return md5(serialize($this)); } function get_url() { if ($this->url !== null) { return $this->url; } else { return null; } } function get_attribution() { if ($this->label !== null) { return $this->label; } else { return null; } } } class SimplePie_Rating { var $scheme; var $value; // Constructor, used to input the data function SimplePie_Rating($scheme = null, $value = null) { $this->scheme = $scheme; $this->value = $value; } function __toString() { // There is no $this->data here return md5(serialize($this)); } function get_scheme() { if ($this->scheme !== null) { return $this->scheme; } else { return null; } } function get_value() { if ($this->value !== null) { return $this->value; } else { return null; } } } class SimplePie_Restriction { var $relationship; var $type; var $value; // Constructor, used to input the data function SimplePie_Restriction($relationship = null, $type = null, $value = null) { $this->relationship = $relationship; $this->type = $type; $this->value = $value; } function __toString() { // There is no $this->data here return md5(serialize($this)); } function get_relationship() { if ($this->relationship !== null) { return $this->relationship; } else { return null; } } function get_type() { if ($this->type !== null) { return $this->type; } else { return null; } } function get_value() { if ($this->value !== null) { return $this->value; } else { return null; } } } /** * @todo Move to properly supporting RFC2616 (HTTP/1.1) */ class SimplePie_File { var $url; var $useragent; var $success = true; var $headers = array(); var $body; var $status_code; var $redirects = 0; var $error; var $method; function SimplePie_File($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) { if (class_exists('idna_convert')) { $idn =& new idna_convert; $parsed = SimplePie_Misc::parse_url($url); $url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']); } $this->url = $url; $this->useragent = $useragent; if (preg_match('/^http(s)?:\/\//i', $url)) { if ($useragent === null) { $useragent = ini_get('user_agent'); $this->useragent = $useragent; } if (!is_array($headers)) { $headers = array(); } if (!$force_fsockopen && extension_loaded('curl')) { $this->method = 'curl'; $fp = curl_init(); $headers2 = array(); foreach ($headers as $key => $value) { $headers2[] = "$key: $value"; } if (version_compare(SimplePie_Misc::get_curl_version(), '7.10.5', '>=')) { curl_setopt($fp, CURLOPT_ENCODING, ''); } curl_setopt($fp, CURLOPT_URL, $url); curl_setopt($fp, CURLOPT_HEADER, 1); curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1); curl_setopt($fp, CURLOPT_TIMEOUT, $timeout); curl_setopt($fp, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($fp, CURLOPT_REFERER, $url); curl_setopt($fp, CURLOPT_USERAGENT, $useragent); curl_setopt($fp, CURLOPT_HTTPHEADER, $headers2); if (!ini_get('open_basedir') && !ini_get('safe_mode') && version_compare(SimplePie_Misc::get_curl_version(), '7.15.2', '>=')) { curl_setopt($fp, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($fp, CURLOPT_MAXREDIRS, $redirects); } $this->headers = curl_exec($fp); if (curl_errno($fp) == 23 || curl_errno($fp) == 61) { curl_setopt($fp, CURLOPT_ENCODING, 'none'); $this->headers = curl_exec($fp); } if (curl_errno($fp)) { $this->error = 'cURL error ' . curl_errno($fp) . ': ' . curl_error($fp); $this->success = false; } else { $info = curl_getinfo($fp); curl_close($fp); $this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 1); $this->headers = array_pop($this->headers); $parser =& new SimplePie_HTTP_Parser($this->headers); if ($parser->parse()) { $this->headers = $parser->headers; $this->body = $parser->body; $this->status_code = $parser->status_code; if (($this->status_code == 300 || $this->status_code == 301 || $this->status_code == 302 || $this->status_code == 303 || $this->status_code == 307 || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects) { $this->redirects++; if (isset($this->headers['content-location'])) { $location = SimplePie_Misc::absolutize_url($this->headers['location'], SimplePie_Misc::absolutize_url($this->headers['content-location'], $url)); } else { $location = SimplePie_Misc::absolutize_url($this->headers['location'], $url); } return $this->SimplePie_File($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen); } } } } else { $this->method = 'fsockopen'; $url_parts = parse_url($url); if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) == 'https') { $url_parts['host'] = "ssl://$url_parts[host]"; $url_parts['port'] = 443; } if (!isset($url_parts['port'])) { $url_parts['port'] = 80; } $fp = fsockopen($url_parts['host'], $url_parts['port'], $errno, $errstr, $timeout); if (!$fp) { $this->error = 'fsockopen error: ' . $errstr; $this->success = false; } else { if (function_exists('stream_set_timeout')) { stream_set_timeout($fp, $timeout); } else { socket_set_timeout($fp, $timeout); } if (isset($url_parts['path'])) { if (isset($url_parts['query'])) { $get = "$url_parts[path]?$url_parts[query]"; } else { $get = $url_parts['path']; } } else { $get = '/'; } $out = "GET $get HTTP/1.0\r\n"; $out .= "Host: $url_parts[host]\r\n"; $out .= "User-Agent: $useragent\r\n"; if (function_exists('gzinflate')) { $out .= "Accept-Encoding: gzip,deflate\r\n"; } if (isset($url_parts['user']) && isset($url_parts['pass'])) { $out .= "Authorization: Basic " . base64_encode("$url_parts[user]:$url_parts[pass]") . "\r\n"; } foreach ($headers as $key => $value) { $out .= "$key: $value\r\n"; } $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); if (function_exists('stream_get_meta_data')) { $info = stream_get_meta_data($fp); } else { $info = socket_get_status($fp); } $this->headers = ''; while (!$info['eof'] && !$info['timed_out']) { $this->headers .= fread($fp, 1160); if (function_exists('stream_get_meta_data')) { $info = stream_get_meta_data($fp); } else { $info = socket_get_status($fp); } } if (!$info['timed_out']) { $parser =& new SimplePie_HTTP_Parser($this->headers); if ($parser->parse()) { $this->headers = $parser->headers; $this->body = $parser->body; $this->status_code = $parser->status_code; if (($this->status_code == 300 || $this->status_code == 301 || $this->status_code == 302 || $this->status_code == 303 || $this->status_code == 307 || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects) { $this->redirects++; if (isset($this->headers['content-location'])) { $location = SimplePie_Misc::absolutize_url($this->headers['location'], SimplePie_Misc::absolutize_url($this->headers['content-location'], $url)); } else { $location = SimplePie_Misc::absolutize_url($this->headers['location'], $url); } return $this->SimplePie_File($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen); } if (isset($this->headers['content-encoding']) && ($this->headers['content-encoding'] == 'gzip' || $this->headers['content-encoding'] == 'deflate')) { if (substr($this->body, 0, 8) == "\x1f\x8b\x08\x00\x00\x00\x00\x00") { $this->body = substr($this->body, 10); } $this->body = gzinflate($this->body); } } } else { $this->error = 'fsocket timed out'; $this->success = false; } fclose($fp); } } } elseif (function_exists('file_get_contents')) { $this->method = 'file_get_contents'; if (!$this->body = file_get_contents($url)) { $this->error = 'file_get_contents could not read the file'; $this->success = false; } } else { $this->method = 'fopen'; if (($fp = fopen($url, 'rb')) === false) { $this->error = 'failed to open stream: No such file or directory'; $this->success = false; } else { $this->body = ''; while (!feof($fp)) { $this->body .= fread($fp, 8192); } fclose($fp); } } } } /** * HTTP Response Parser * * @package SimplePie * @todo Support HTTP Requests */ class SimplePie_HTTP_Parser { /** * HTTP Version * * @access public * @var string */ var $http_version = ''; /** * Status code * * @access public * @var string */ var $status_code = ''; /** * Reason phrase * * @access public * @var string */ var $reason = ''; /** * Key/value pairs of the headers * * @access public * @var array */ var $headers = array(); /** * Body of the response * * @access public * @var string */ var $body = ''; /** * Current state of the state machine * * @access private * @var string */ var $state = 'start'; /** * Input data * * @access private * @var string */ var $data = ''; /** * Input data length (to avoid calling strlen() everytime this is needed) * * @access private * @var int */ var $data_length = 0; /** * Current position of the pointer * * @access private * @var int */ var $position = 0; /** * Name of the hedaer currently being parsed * * @access private * @var string */ var $name = ''; /** * Value of the hedaer currently being parsed * * @access private * @var string */ var $value = ''; /** * Create an instance of the class with the input data * * @access public * @param string $data Input data */ function SimplePie_HTTP_Parser($data) { $this->data = $data; $this->data_length = strlen($this->data); } /** * Parse the input data * * @access public * @return bool true on success, false on failure */ function parse() { while ($this->state && $this->state != 'emit' && $this->has_data()) { $state = $this->state; $this->$state(); } $this->data = ''; if ($this->state == 'emit') { return true; } else { $this->http_version = ''; $this->status_code = ''; $this->headers = array(); $this->body = ''; return false; } } /** * Check whether there is data beyond the pointer * * @access private * @return bool true if there is further data, false if not */ function has_data() { return (bool) ($this->position < $this->data_length); } /** * See if the next character is LWS * * @access private * @return bool true if the next character is LWS, false if not */ function is_linear_whitespace() { return (bool) (strspn($this->data, "\x09\x20", $this->position, 1) || (substr($this->data, $this->position, 2) == "\r\n" && strspn($this->data, "\x09\x20", $this->position + 2, 1)) || (strspn($this->data, "\r\n", $this->position, 1) && strspn($this->data, "\x09\x20", $this->position + 1, 1))); } /** * The starting state of the state machine, see if the data is a response or request * * @access private */ function start() { $this->state = 'http_version_response'; } /** * Parse an HTTP-version string * * @access private */ function http_version() { if (preg_match('/^HTTP\/([0-9]+\.[0-9]+)/i', substr($this->data, $this->position, strcspn($this->data, "\r\n", $this->position)), $match)) { $this->position += strlen($match[0]); $this->http_version = $match[1]; return true; } else { return false; } } /** * Parse LWS, replacing consecutive characters with a single space * * @access private */ function linear_whitespace() { do { if (substr($this->data, $this->position, 2) == "\r\n") { $this->position += 2; } elseif (strspn($this->data, "\r\n", $this->position, 1)) { $this->position++; } $this->position += strspn($this->data, "\x09\x20", $this->position); } while ($this->is_linear_whitespace()); $this->value .= "\x20"; } /** * Parse an HTTP-version string within a response * * @access private */ function http_version_response() { if ($this->http_version() && $this->data[$this->position] == "\x20") { $this->state = 'status_code'; $this->position++; } else { $this->state = false; } } /** * Parse a status code * * @access private */ function status_code() { if (strspn($this->data, '1234567890', $this->position, 3) == 3) { $this->status_code = substr($this->data, $this->position, 3); $this->state = 'reason_phrase'; $this->position += 3; } else { $this->state = false; } } /** * Skip over the reason phrase (it has no normative value, and you can send absolutely anything here) * * @access private */ function reason_phrase() { $len = strcspn($this->data, "\r\n", $this->position); $this->reason = substr($this->data, $this->position, $len); $this->position += $len; if ($this->has_data()) { if (substr($this->data, $this->position, 2) == "\r\n") { $this->position += 2; } elseif (strspn($this->data, "\r\n", $this->position, 1)) { $this->position++; } $this->state = 'name'; } } /** * Parse a header name * * @access private */ function name() { $len = strcspn($this->data, ':', $this->position); $this->name = substr($this->data, $this->position, $len); $this->position += $len; if ($this->has_data() && $this->data[$this->position] == ':') { $this->state = 'value_next'; $this->position++; } else { $this->state = false; } } /** * See what state to move the state machine to while within non-quoted header values * * @access private */ function value_next() { if ($this->is_linear_whitespace()) { $this->state = 'value_linear_whitespace'; } elseif ($this->data[$this->position] == '"') { $this->state = 'value_quote_next'; $this->position++; } elseif (substr($this->data, $this->position, 2) == "\r\n") { $this->state = 'end_crlf'; $this->position += 2; } elseif (strspn($this->data, "\r\n", $this->position, 1)) { $this->state = 'end_crlf'; $this->position++; } else { $this->state = 'value_no_quote'; } } /** * Parse a header value while outside quotes * * @access private */ function value_no_quote() { $len = strcspn($this->data, "\x09\x20\r\n\"", $this->position); $this->value .= substr($this->data, $this->position, $len); $this->state = 'value_next'; $this->position += $len; } /** * Parse LWS outside quotes * * @access private */ function value_linear_whitespace() { $this->linear_whitespace(); $this->state = 'value_next'; } /** * See what state to move the state machine to while within quoted header values * * @access private */ function value_quote_next() { if ($this->is_linear_whitespace()) { $this->state = 'value_linear_whitespace_quote'; } else { switch ($this->data[$this->position]) { case '"': $this->state = 'value_next'; $this->position++; break; case '\\': $this->state = 'value_quote_char'; $this->position++; break; default: $this->state = 'value_quote'; break; } } } /** * Parse a header value while within quotes * * @access private */ function value_quote() { $len = strcspn($this->data, "\x09\x20\r\n\"\\", $this->position); $this->value .= substr($this->data, $this->position, $len); $this->position += $len; $this->state = 'value_quote_next'; } /** * Parse an escaped character within quotes * * @access private */ function value_quote_char() { $this->value .= $this->data[$this->position]; $this->state = 'value_quote_next'; $this->position++; } /** * Parse LWS within quotes * * @access private */ function value_linear_whitespace_quote() { $this->linear_whitespace(); $this->state = 'value_quote_next'; } /** * Parse a CRLF, and see whether we have a further header, or whether we are followed by the body * * @access private */ function end_crlf() { $this->name = strtolower($this->name); $this->value = trim($this->value, "\x20"); if (isset($this->headers[$this->name])) { $this->headers[$this->name] .= ', ' . $this->value; } else { $this->headers[$this->name] = $this->value; } if (substr($this->data, $this->position, 2) == "\r\n") { $this->body = substr($this->data, $this->position + 2); $this->state = 'emit'; } elseif (strspn($this->data, "\r\n", $this->position, 1)) { $this->body = substr($this->data, $this->position + 1); $this->state = 'emit'; } else { $this->name = ''; $this->value = ''; $this->state = 'name'; } } } class SimplePie_Cache { var $location; var $filename; var $extension; var $name; function SimplePie_Cache($location, $filename, $extension) { $this->location = $location; $this->filename = rawurlencode($filename); $this->extension = rawurlencode($extension); $this->name = "$location/$this->filename.$this->extension"; } function save($data) { if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location)) { if (function_exists('file_put_contents')) { return (bool) file_put_contents($this->name, serialize($data)); } else { $fp = fopen($this->name, 'wb'); if ($fp) { fwrite($fp, serialize($data)); fclose($fp); return true; } } } return false; } function load() { if (file_exists($this->name) && is_readable($this->name)) { if (function_exists('file_get_contents')) { return unserialize(file_get_contents($this->name)); } elseif (($fp = fopen($this->name, 'rb')) !== false) { $data = ''; while (!feof($fp)) { $data .= fread($fp, 8192); } fclose($fp); return unserialize($data); } } return false; } function mtime() { if (file_exists($this->name)) { return filemtime($this->name); } return false; } function touch() { if (file_exists($this->name)) { return touch($this->name); } return false; } function unlink() { if (file_exists($this->name)) { return unlink($this->name); } return false; } } class SimplePie_Misc { function time_hms($seconds) { $time = ''; $hours = floor($seconds / 3600); $remainder = $seconds % 3600; if ($hours > 0) { $time .= $hours.':'; } $minutes = floor($remainder / 60); $seconds = $remainder % 60; if ($minutes < 10 && $hours > 0) { $minutes = '0' . $minutes; } if ($seconds < 10) { $seconds = '0' . $seconds; } $time .= $minutes.':'; $time .= $seconds; return $time; } function absolutize_url($relative, $base) { if ($relative !== '') { $relative = SimplePie_Misc::parse_url($relative); if ($relative['scheme'] !== '') { $target = $relative; } elseif ($base !== '') { $base = SimplePie_Misc::parse_url($base); $target = SimplePie_Misc::parse_url(''); if ($relative['authority'] !== '') { $target = $relative; $target['scheme'] = $base['scheme']; } else { $target['scheme'] = $base['scheme']; $target['authority'] = $base['authority']; if ($relative['path'] !== '') { if (strpos($relative['path'], '/') === 0) { $target['path'] = $relative['path']; } elseif (($target['path'] = dirname("$base[path].")) == '/') { $target['path'] .= $relative['path']; } else { $target['path'] .= '/' . $relative['path']; } if ($relative['query'] !== '') { $target['query'] = $relative['query']; } } else { if ($base['path'] !== '') { $target['path'] = $base['path']; } else { $target['path'] = '/'; } if ($relative['query'] !== '') { $target['query'] = $relative['query']; } elseif ($base['query'] !== '') { $target['query'] = $base['query']; } } } if ($relative['fragment'] !== '') { $target['fragment'] = $relative['fragment']; } } else { // No base URL, just return the relative URL $target = $relative; } $return = SimplePie_Misc::compress_parse_url($target['scheme'], $target['authority'], $target['path'], $target['query'], $target['fragment']); } else { $return = $base; } $return = SimplePie_Misc::normalize_url($return); return $return; } function remove_dot_segments($input) { $output = ''; while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input == '.' || $input == '..') { // A: If the input buffer begins with a prefix of "../" or "./", then remove that prefix from the input buffer; otherwise, if (strpos($input, '../') === 0) { $input = substr($input, 3); } elseif (strpos($input, './') === 0) { $input = substr($input, 2); } // B: if the input buffer begins with a prefix of "/./" or "/.", where "." is a complete path segment, then replace that prefix with "/" in the input buffer; otherwise, elseif (strpos($input, '/./') === 0) { $input = substr_replace($input, '/', 0, 3); } elseif ($input == '/.') { $input = '/'; } // C: if the input buffer begins with a prefix of "/../" or "/..", where ".." is a complete path segment, then replace that prefix with "/" in the input buffer and remove the last segment and its preceding "/" (if any) from the output buffer; otherwise, elseif (strpos($input, '/../') === 0) { $input = substr_replace($input, '/', 0, 4); $output = substr_replace($output, '', strrpos($output, '/')); } elseif ($input == '/..') { $input = '/'; $output = substr_replace($output, '', strrpos($output, '/')); } // D: if the input buffer consists only of "." or "..", then remove that from the input buffer; otherwise, elseif ($input == '.' || $input == '..') { $input = ''; } // E: move the first path segment in the input buffer to the end of the output buffer, including the initial "/" character (if any) and any subsequent characters up to, but not including, the next "/" character or the end of the input buffer elseif (($pos = strpos($input, '/', 1)) !== false) { $output .= substr($input, 0, $pos); $input = substr_replace($input, '', 0, $pos); } else { $output .= $input; $input = ''; } } return $output . $input; } function get_element($realname, $string) { $return = array(); $name = preg_quote($realname, '/'); if (preg_match_all("/<($name)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$name>|(\/)?>)/siU", $string, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE)) { for ($i = 0, $total_matches = count($matches); $i < $total_matches; $i++) { $return[$i]['tag'] = $realname; $return[$i]['full'] = $matches[$i][0][0]; $return[$i]['offset'] = $matches[$i][0][1]; if (strlen($matches[$i][3][0]) <= 2) { $return[$i]['self_closing'] = true; } else { $return[$i]['self_closing'] = false; $return[$i]['content'] = $matches[$i][4][0]; } $return[$i]['attribs'] = array(); if (isset($matches[$i][2][0]) && preg_match_all('/((?:[^\s:]+:)?[^\s:]+)(?:\s*=\s*(?:"([^"]*)"|\'([^\']*)\'|([a-z0-9\-._:]*)))?\s/U', ' ' . $matches[$i][2][0] . ' ', $attribs, PREG_SET_ORDER)) { for ($j = 0, $total_attribs = count($attribs); $j < $total_attribs; $j++) { if (count($attribs[$j]) == 2) { $attribs[$j][2] = $attribs[$j][1]; } $return[$i]['attribs'][strtolower($attribs[$j][1])]['data'] = SimplePie_Misc::entities_decode(end($attribs[$j]), 'UTF-8'); } } } } return $return; } function element_implode($element) { $full = "<$element[tag]"; foreach ($element['attribs'] as $key => $value) { $key = strtolower($key); $full .= " $key=\"" . htmlspecialchars($value['data']) . '"'; } if ($element['self_closing']) { $full .= ' />'; } else { $full .= ">$element[content]"; } return $full; } function error($message, $level, $file, $line) { switch ($level) { case E_USER_ERROR: $note = 'PHP Error'; break; case E_USER_WARNING: $note = 'PHP Warning'; break; case E_USER_NOTICE: $note = 'PHP Notice'; break; default: $note = 'Unknown Error'; break; } error_log("$note: $message in $file on line $line", 0); return $message; } /** * If a file has been cached, retrieve and display it. * * This is most useful for caching images (get_favicon(), etc.), * however it works for all cached files. This WILL NOT display ANY * file/image/page/whatever, but rather only display what has already * been cached by SimplePie. * * @access public * @see SimplePie::get_favicon() * @param str $identifier_url URL that is used to identify the content. * This may or may not be the actual URL of the live content. * @param str $cache_location Location of SimplePie's cache. Defaults * to './cache'. * @param str $cache_extension The file extension that the file was * cached with. Defaults to 'spc'. * @param str $cache_class Name of the cache-handling class being used * in SimplePie. Defaults to 'SimplePie_Cache', and should be left * as-is unless you've overloaded the class. * @param str $cache_name_function Function that converts the filename * for saving. Defaults to 'md5'. */ function display_cached_file($identifier_url, $cache_location = './cache', $cache_extension = 'spc', $cache_class = 'SimplePie_Cache', $cache_name_function = 'md5') { $cache =& new $cache_class($cache_location, call_user_func($cache_name_function, $identifier_url), $cache_extension); if ($file = $cache->load()) { header('Content-type:' . $file['headers']['content-type']); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days echo $file['body']; exit; } die('Cached file for ' . $identifier_url . ' cannot be found.'); } function fix_protocol($url, $http = 1) { $url = SimplePie_Misc::normalize_url($url); $parsed = SimplePie_Misc::parse_url($url); if ($parsed['scheme'] !== '' && $parsed['scheme'] != 'http' && $parsed['scheme'] != 'https') { return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['authority'], $parsed['path'], $parsed['query'], $parsed['fragment']), $http); } if ($parsed['scheme'] === '' && $parsed['authority'] === '' && !file_exists($url)) { return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['path'], '', $parsed['query'], $parsed['fragment']), $http); } if ($http == 2 && $parsed['scheme'] !== '') { return "feed:$url"; } elseif ($http == 3 && strtolower($parsed['scheme']) == 'http') { return substr_replace($url, 'podcast', 0, 4); } elseif ($http == 4 && strtolower($parsed['scheme']) == 'http') { return substr_replace($url, 'itpc', 0, 4); } else { return $url; } } function parse_url($url) { static $cache = array(); if (isset($cache[$url])) { return $cache[$url]; } elseif (preg_match('/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/', $url, $match)) { for ($i = count($match); $i <= 9; $i++) { $match[$i] = ''; } return $cache[$url] = array('scheme' => $match[2], 'authority' => $match[4], 'path' => $match[5], 'query' => $match[7], 'fragment' => $match[9]); } else { return $cache[$url] = array('scheme' => '', 'authority' => '', 'path' => '', 'query' => '', 'fragment' => ''); } } function compress_parse_url($scheme = '', $authority = '', $path = '', $query = '', $fragment = '') { $return = ''; if ($scheme !== '') { $return .= "$scheme:"; } if ($authority !== '') { $return .= "//$authority"; } if ($path !== '') { $return .= $path; } if ($query !== '') { $return .= "?$query"; } if ($fragment !== '') { $return .= "#$fragment"; } return $return; } function normalize_url($url) { $url = preg_replace_callback('/%([0-9A-Fa-f]{2})/', array('SimplePie_Misc', 'percent_encoding_normalization'), $url); $url = SimplePie_Misc::parse_url($url); $url['scheme'] = strtolower($url['scheme']); if ($url['authority'] !== '') { $url['authority'] = strtolower($url['authority']); $url['path'] = SimplePie_Misc::remove_dot_segments($url['path']); } return SimplePie_Misc::compress_parse_url($url['scheme'], $url['authority'], $url['path'], $url['query'], $url['fragment']); } function percent_encoding_normalization($match) { $integer = hexdec($match[1]); if ($integer >= 0x41 && $integer <= 0x5A || $integer >= 0x61 && $integer <= 0x7A || $integer >= 0x30 && $integer <= 0x39 || $integer == 0x2D || $integer == 0x2E || $integer == 0x5F || $integer == 0x7E) { return chr($integer); } else { return strtoupper($match[0]); } } /** * Remove bad UTF-8 bytes * * PCRE Pattern to locate bad bytes in a UTF-8 string comes from W3C * FAQ: Multilingual Forms (modified to include full ASCII range) * * @author Geoffrey Sneddon * @see http://www.w3.org/International/questions/qa-forms-utf-8 * @param string $str String to remove bad UTF-8 bytes from * @return string UTF-8 string */ function utf8_bad_replace($str) { if (function_exists('iconv')) { return iconv('UTF-8', 'UTF-8//IGNORE', $str); } elseif (function_exists('mb_convert_encoding')) { return mb_convert_encoding($str, 'UTF-8', 'UTF-8'); } elseif (preg_match_all('/([\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})/', $str, $matches)) { return implode("\xEF\xBF\xBD", $matches[0]); } elseif ($str !== '') { return "\xEF\xBF\xBD"; } else { return ''; } } function change_encoding($data, $input, $output) { $input = SimplePie_Misc::encoding($input); $output = SimplePie_Misc::encoding($output); if (function_exists('iconv') && ($return = @iconv($input, "$output//IGNORE", $data))) { return $return; } elseif (function_exists('iconv') && ($return = @iconv($input, $output, $data))) { return $return; } elseif (function_exists('mb_convert_encoding') && ($return = @mb_convert_encoding($data, $output, $input))) { return $return; } elseif ($input == 'ISO-8859-1' && $output == 'UTF-8') { return utf8_encode($data); } elseif ($input == 'UTF-8' && $output == 'ISO-8859-1') { return utf8_decode($data); } return $data; } function encoding($encoding) { // Character sets are case-insensitive (though we'll return them in the form given in their registration) switch (strtoupper($encoding)) { case 'ANSI_X3.4-1968': case 'ISO-IR-6': case 'ANSI_X3.4-1986': case 'ISO_646.IRV:1991': case 'ASCII': case 'ISO646-US': case 'US-ASCII': case 'US': case 'IBM367': case 'CP367': case 'CSASCII': return 'US-ASCII'; case 'ISO_8859-1:1987': case 'ISO-IR-100': case 'ISO_8859-1': case 'ISO-8859-1': case 'LATIN1': case 'L1': case 'IBM819': case 'CP819': case 'CSISOLATIN1': return 'ISO-8859-1'; case 'ISO_8859-2:1987': case 'ISO-IR-101': case 'ISO_8859-2': case 'ISO-8859-2': case 'LATIN2': case 'L2': case 'CSISOLATIN2': return 'ISO-8859-2'; case 'ISO_8859-3:1988': case 'ISO-IR-109': case 'ISO_8859-3': case 'ISO-8859-3': case 'LATIN3': case 'L3': case 'CSISOLATIN3': return 'ISO-8859-3'; case 'ISO_8859-4:1988': case 'ISO-IR-110': case 'ISO_8859-4': case 'ISO-8859-4': case 'LATIN4': case 'L4': case 'CSISOLATIN4': return 'ISO-8859-4'; case 'ISO_8859-5:1988': case 'ISO-IR-144': case 'ISO_8859-5': case 'ISO-8859-5': case 'CYRILLIC': case 'CSISOLATINCYRILLIC': return 'ISO-8859-5'; case 'ISO_8859-6:1987': case 'ISO-IR-127': case 'ISO_8859-6': case 'ISO-8859-6': case 'ECMA-114': case 'ASMO-708': case 'ARABIC': case 'CSISOLATINARABIC': return 'ISO-8859-6'; case 'ISO_8859-7:1987': case 'ISO-IR-126': case 'ISO_8859-7': case 'ISO-8859-7': case 'ELOT_928': case 'ECMA-118': case 'GREEK': case 'GREEK8': case 'CSISOLATINGREEK': return 'ISO-8859-7'; case 'ISO_8859-8:1988': case 'ISO-IR-138': case 'ISO_8859-8': case 'ISO-8859-8': case 'HEBREW': case 'CSISOLATINHEBREW': return 'ISO-8859-8'; case 'ISO_8859-9:1989': case 'ISO-IR-148': case 'ISO_8859-9': case 'ISO-8859-9': case 'LATIN5': case 'L5': case 'CSISOLATIN5': return 'ISO-8859-9'; case 'ISO-8859-10': case 'ISO-IR-157': case 'L6': case 'ISO_8859-10:1992': case 'CSISOLATIN6': case 'LATIN6': return 'ISO-8859-10'; case 'ISO_6937-2-ADD': case 'ISO-IR-142': case 'CSISOTEXTCOMM': return 'ISO_6937-2-add'; case 'JIS_X0201': case 'X0201': case 'CSHALFWIDTHKATAKANA': return 'JIS_X0201'; case 'JIS_ENCODING': case 'CSJISENCODING': return 'JIS_Encoding'; case 'SHIFT_JIS': case 'MS_KANJI': case 'CSSHIFTJIS': return 'Shift_JIS'; case 'EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE': case 'CSEUCPKDFMTJAPANESE': case 'EUC-JP': return 'EUC-JP'; case 'EXTENDED_UNIX_CODE_FIXED_WIDTH_FOR_JAPANESE': case 'CSEUCFIXWIDJAPANESE': return 'Extended_UNIX_Code_Fixed_Width_for_Japanese'; case 'BS_4730': case 'ISO-IR-4': case 'ISO646-GB': case 'GB': case 'UK': case 'CSISO4UNITEDKINGDOM': return 'BS_4730'; case 'SEN_850200_C': case 'ISO-IR-11': case 'ISO646-SE2': case 'SE2': case 'CSISO11SWEDISHFORNAMES': return 'SEN_850200_C'; case 'IT': case 'ISO-IR-15': case 'ISO646-IT': case 'CSISO15ITALIAN': return 'IT'; case 'ES': case 'ISO-IR-17': case 'ISO646-ES': case 'CSISO17SPANISH': return 'ES'; case 'DIN_66003': case 'ISO-IR-21': case 'DE': case 'ISO646-DE': case 'CSISO21GERMAN': return 'DIN_66003'; case 'NS_4551-1': case 'ISO-IR-60': case 'ISO646-NO': case 'NO': case 'CSISO60DANISHNORWEGIAN': case 'CSISO60NORWEGIAN1': return 'NS_4551-1'; case 'NF_Z_62-010': case 'ISO-IR-69': case 'ISO646-FR': case 'FR': case 'CSISO69FRENCH': return 'NF_Z_62-010'; case 'ISO-10646-UTF-1': case 'CSISO10646UTF1': return 'ISO-10646-UTF-1'; case 'ISO_646.BASIC:1983': case 'REF': case 'CSISO646BASIC1983': return 'ISO_646.basic:1983'; case 'INVARIANT': case 'CSINVARIANT': return 'INVARIANT'; case 'ISO_646.IRV:1983': case 'ISO-IR-2': case 'IRV': case 'CSISO2INTLREFVERSION': return 'ISO_646.irv:1983'; case 'NATS-SEFI': case 'ISO-IR-8-1': case 'CSNATSSEFI': return 'NATS-SEFI'; case 'NATS-SEFI-ADD': case 'ISO-IR-8-2': case 'CSNATSSEFIADD': return 'NATS-SEFI-ADD'; case 'NATS-DANO': case 'ISO-IR-9-1': case 'CSNATSDANO': return 'NATS-DANO'; case 'NATS-DANO-ADD': case 'ISO-IR-9-2': case 'CSNATSDANOADD': return 'NATS-DANO-ADD'; case 'SEN_850200_B': case 'ISO-IR-10': case 'FI': case 'ISO646-FI': case 'ISO646-SE': case 'SE': case 'CSISO10SWEDISH': return 'SEN_850200_B'; case 'KS_C_5601-1987': case 'ISO-IR-149': case 'KS_C_5601-1989': case 'KSC_5601': case 'KOREAN': case 'CSKSC56011987': return 'KS_C_5601-1987'; case 'ISO-2022-KR': case 'CSISO2022KR': return 'ISO-2022-KR'; case 'EUC-KR': case 'CSEUCKR': return 'EUC-KR'; case 'ISO-2022-JP': case 'CSISO2022JP': return 'ISO-2022-JP'; case 'ISO-2022-JP-2': case 'CSISO2022JP2': return 'ISO-2022-JP-2'; case 'JIS_C6220-1969-JP': case 'JIS_C6220-1969': case 'ISO-IR-13': case 'KATAKANA': case 'X0201-7': case 'CSISO13JISC6220JP': return 'JIS_C6220-1969-jp'; case 'JIS_C6220-1969-RO': case 'ISO-IR-14': case 'JP': case 'ISO646-JP': case 'CSISO14JISC6220RO': return 'JIS_C6220-1969-ro'; case 'PT': case 'ISO-IR-16': case 'ISO646-PT': case 'CSISO16PORTUGUESE': return 'PT'; case 'GREEK7-OLD': case 'ISO-IR-18': case 'CSISO18GREEK7OLD': return 'greek7-old'; case 'LATIN-GREEK': case 'ISO-IR-19': case 'CSISO19LATINGREEK': return 'latin-greek'; case 'NF_Z_62-010_(1973)': case 'ISO-IR-25': case 'ISO646-FR1': case 'CSISO25FRENCH': return 'NF_Z_62-010_(1973)'; case 'LATIN-GREEK-1': case 'ISO-IR-27': case 'CSISO27LATINGREEK1': return 'Latin-greek-1'; case 'ISO_5427': case 'ISO-IR-37': case 'CSISO5427CYRILLIC': return 'ISO_5427'; case 'JIS_C6226-1978': case 'ISO-IR-42': case 'CSISO42JISC62261978': return 'JIS_C6226-1978'; case 'BS_VIEWDATA': case 'ISO-IR-47': case 'CSISO47BSVIEWDATA': return 'BS_viewdata'; case 'INIS': case 'ISO-IR-49': case 'CSISO49INIS': return 'INIS'; case 'INIS-8': case 'ISO-IR-50': case 'CSISO50INIS8': return 'INIS-8'; case 'INIS-CYRILLIC': case 'ISO-IR-51': case 'CSISO51INISCYRILLIC': return 'INIS-cyrillic'; case 'ISO_5427:1981': case 'ISO-IR-54': case 'ISO5427CYRILLIC1981': return 'ISO_5427:1981'; case 'ISO_5428:1980': case 'ISO-IR-55': case 'CSISO5428GREEK': return 'ISO_5428:1980'; case 'GB_1988-80': case 'ISO-IR-57': case 'CN': case 'ISO646-CN': case 'CSISO57GB1988': return 'GB_1988-80'; case 'GB_2312-80': case 'ISO-IR-58': case 'CHINESE': case 'CSISO58GB231280': return 'GB_2312-80'; case 'NS_4551-2': case 'ISO646-NO2': case 'ISO-IR-61': case 'NO2': case 'CSISO61NORWEGIAN2': return 'NS_4551-2'; case 'VIDEOTEX-SUPPL': case 'ISO-IR-70': case 'CSISO70VIDEOTEXSUPP1': return 'videotex-suppl'; case 'PT2': case 'ISO-IR-84': case 'ISO646-PT2': case 'CSISO84PORTUGUESE2': return 'PT2'; case 'ES2': case 'ISO-IR-85': case 'ISO646-ES2': case 'CSISO85SPANISH2': return 'ES2'; case 'MSZ_7795.3': case 'ISO-IR-86': case 'ISO646-HU': case 'HU': case 'CSISO86HUNGARIAN': return 'MSZ_7795.3'; case 'JIS_C6226-1983': case 'ISO-IR-87': case 'X0208': case 'JIS_X0208-1983': case 'CSISO87JISX0208': return 'JIS_C6226-1983'; case 'GREEK7': case 'ISO-IR-88': case 'CSISO88GREEK7': return 'greek7'; case 'ASMO_449': case 'ISO_9036': case 'ARABIC7': case 'ISO-IR-89': case 'CSISO89ASMO449': return 'ASMO_449'; case 'ISO-IR-90': case 'CSISO90': return 'iso-ir-90'; case 'JIS_C6229-1984-A': case 'ISO-IR-91': case 'JP-OCR-A': case 'CSISO91JISC62291984A': return 'JIS_C6229-1984-a'; case 'JIS_C6229-1984-B': case 'ISO-IR-92': case 'ISO646-JP-OCR-B': case 'JP-OCR-B': case 'CSISO92JISC62991984B': return 'JIS_C6229-1984-b'; case 'JIS_C6229-1984-B-ADD': case 'ISO-IR-93': case 'JP-OCR-B-ADD': case 'CSISO93JIS62291984BADD': return 'JIS_C6229-1984-b-add'; case 'JIS_C6229-1984-HAND': case 'ISO-IR-94': case 'JP-OCR-HAND': case 'CSISO94JIS62291984HAND': return 'JIS_C6229-1984-hand'; case 'JIS_C6229-1984-HAND-ADD': case 'ISO-IR-95': case 'JP-OCR-HAND-ADD': case 'CSISO95JIS62291984HANDADD': return 'JIS_C6229-1984-hand-add'; case 'JIS_C6229-1984-KANA': case 'ISO-IR-96': case 'CSISO96JISC62291984KANA': return 'JIS_C6229-1984-kana'; case 'ISO_2033-1983': case 'ISO-IR-98': case 'E13B': case 'CSISO2033': return 'ISO_2033-1983'; case 'ANSI_X3.110-1983': case 'ISO-IR-99': case 'CSA_T500-1983': case 'NAPLPS': case 'CSISO99NAPLPS': return 'ANSI_X3.110-1983'; case 'T.61-7BIT': case 'ISO-IR-102': case 'CSISO102T617BIT': return 'T.61-7bit'; case 'T.61-8BIT': case 'T.61': case 'ISO-IR-103': case 'CSISO103T618BIT': return 'T.61-8bit'; case 'ECMA-CYRILLIC': case 'ISO-IR-111': case 'KOI8-E': case 'CSISO111ECMACYRILLIC': return 'ECMA-cyrillic'; case 'CSA_Z243.4-1985-1': case 'ISO-IR-121': case 'ISO646-CA': case 'CSA7-1': case 'CA': case 'CSISO121CANADIAN1': return 'CSA_Z243.4-1985-1'; case 'CSA_Z243.4-1985-2': case 'ISO-IR-122': case 'ISO646-CA2': case 'CSA7-2': case 'CSISO122CANADIAN2': return 'CSA_Z243.4-1985-2'; case 'CSA_Z243.4-1985-GR': case 'ISO-IR-123': case 'CSISO123CSAZ24341985GR': return 'CSA_Z243.4-1985-gr'; case 'ISO_8859-6-E': case 'CSISO88596E': case 'ISO-8859-6-E': return 'ISO-8859-6-E'; case 'ISO_8859-6-I': case 'CSISO88596I': case 'ISO-8859-6-I': return 'ISO-8859-6-I'; case 'T.101-G2': case 'ISO-IR-128': case 'CSISO128T101G2': return 'T.101-G2'; case 'ISO_8859-8-E': case 'CSISO88598E': case 'ISO-8859-8-E': return 'ISO-8859-8-E'; case 'ISO_8859-8-I': case 'CSISO88598I': case 'ISO-8859-8-I': return 'ISO-8859-8-I'; case 'CSN_369103': case 'ISO-IR-139': case 'CSISO139CSN369103': return 'CSN_369103'; case 'JUS_I.B1.002': case 'ISO-IR-141': case 'ISO646-YU': case 'JS': case 'YU': case 'CSISO141JUSIB1002': return 'JUS_I.B1.002'; case 'IEC_P27-1': case 'ISO-IR-143': case 'CSISO143IECP271': return 'IEC_P27-1'; case 'JUS_I.B1.003-SERB': case 'ISO-IR-146': case 'SERBIAN': case 'CSISO146SERBIAN': return 'JUS_I.B1.003-serb'; case 'JUS_I.B1.003-MAC': case 'MACEDONIAN': case 'ISO-IR-147': case 'CSISO147MACEDONIAN': return 'JUS_I.B1.003-mac'; case 'GREEK-CCITT': case 'ISO-IR-150': case 'CSISO150': case 'CSISO150GREEKCCITT': return 'greek-ccitt'; case 'NC_NC00-10:81': case 'CUBA': case 'ISO-IR-151': case 'ISO646-CU': case 'CSISO151CUBA': return 'NC_NC00-10:81'; case 'ISO_6937-2-25': case 'ISO-IR-152': case 'CSISO6937ADD': return 'ISO_6937-2-25'; case 'GOST_19768-74': case 'ST_SEV_358-88': case 'ISO-IR-153': case 'CSISO153GOST1976874': return 'GOST_19768-74'; case 'ISO_8859-SUPP': case 'ISO-IR-154': case 'LATIN1-2-5': case 'CSISO8859SUPP': return 'ISO_8859-supp'; case 'ISO_10367-BOX': case 'ISO-IR-155': case 'CSISO10367BOX': return 'ISO_10367-box'; case 'LATIN-LAP': case 'LAP': case 'ISO-IR-158': case 'CSISO158LAP': return 'latin-lap'; case 'JIS_X0212-1990': case 'X0212': case 'ISO-IR-159': case 'CSISO159JISX02121990': return 'JIS_X0212-1990'; case 'DS_2089': case 'DS2089': case 'ISO646-DK': case 'DK': case 'CSISO646DANISH': return 'DS_2089'; case 'US-DK': case 'CSUSDK': return 'us-dk'; case 'DK-US': case 'CSDKUS': return 'dk-us'; case 'KSC5636': case 'ISO646-KR': case 'CSKSC5636': return 'KSC5636'; case 'UNICODE-1-1-UTF-7': case 'CSUNICODE11UTF7': return 'UNICODE-1-1-UTF-7'; case 'ISO-2022-CN': return 'ISO-2022-CN'; case 'ISO-2022-CN-EXT': return 'ISO-2022-CN-EXT'; case 'UTF-8': return 'UTF-8'; case 'ISO-8859-13': return 'ISO-8859-13'; case 'ISO-8859-14': case 'ISO-IR-199': case 'ISO_8859-14:1998': case 'ISO_8859-14': case 'LATIN8': case 'ISO-CELTIC': case 'L8': return 'ISO-8859-14'; case 'ISO-8859-15': case 'ISO_8859-15': case 'LATIN-9': return 'ISO-8859-15'; case 'ISO-8859-16': case 'ISO-IR-226': case 'ISO_8859-16:2001': case 'ISO_8859-16': case 'LATIN10': case 'L10': return 'ISO-8859-16'; case 'GBK': case 'CP936': case 'MS936': case 'WINDOWS-936': return 'GBK'; case 'GB18030': return 'GB18030'; case 'OSD_EBCDIC_DF04_15': return 'OSD_EBCDIC_DF04_15'; case 'OSD_EBCDIC_DF03_IRV': return 'OSD_EBCDIC_DF03_IRV'; case 'OSD_EBCDIC_DF04_1': return 'OSD_EBCDIC_DF04_1'; case 'ISO-11548-1': case 'ISO_11548-1': case 'ISO_TR_11548-1': case 'CSISO115481': return 'ISO-11548-1'; case 'KZ-1048': case 'STRK1048-2002': case 'RK1048': case 'CSKZ1048': return 'KZ-1048'; case 'ISO-10646-UCS-2': case 'CSUNICODE': return 'ISO-10646-UCS-2'; case 'ISO-10646-UCS-4': case 'CSUCS4': return 'ISO-10646-UCS-4'; case 'ISO-10646-UCS-BASIC': case 'CSUNICODEASCII': return 'ISO-10646-UCS-Basic'; case 'ISO-10646-UNICODE-LATIN1': case 'CSUNICODELATIN1': case 'ISO-10646': return 'ISO-10646-Unicode-Latin1'; case 'ISO-10646-J-1': return 'ISO-10646-J-1'; case 'ISO-UNICODE-IBM-1261': case 'CSUNICODEIBM1261': return 'ISO-Unicode-IBM-1261'; case 'ISO-UNICODE-IBM-1268': case 'CSUNICODEIBM1268': return 'ISO-Unicode-IBM-1268'; case 'ISO-UNICODE-IBM-1276': case 'CSUNICODEIBM1276': return 'ISO-Unicode-IBM-1276'; case 'ISO-UNICODE-IBM-1264': case 'CSUNICODEIBM1264': return 'ISO-Unicode-IBM-1264'; case 'ISO-UNICODE-IBM-1265': case 'CSUNICODEIBM1265': return 'ISO-Unicode-IBM-1265'; case 'UNICODE-1-1': case 'CSUNICODE11': return 'UNICODE-1-1'; case 'SCSU': return 'SCSU'; case 'UTF-7': return 'UTF-7'; case 'UTF-16BE': return 'UTF-16BE'; case 'UTF-16LE': return 'UTF-16LE'; case 'UTF-16': return 'UTF-16'; case 'CESU-8': case 'CSCESU-8': return 'CESU-8'; case 'UTF-32': return 'UTF-32'; case 'UTF-32BE': return 'UTF-32BE'; case 'UTF-32LE': return 'UTF-32LE'; case 'BOCU-1': case 'CSBOCU-1': return 'BOCU-1'; case 'ISO-8859-1-WINDOWS-3.0-LATIN-1': case 'CSWINDOWS30LATIN1': return 'ISO-8859-1-Windows-3.0-Latin-1'; case 'ISO-8859-1-WINDOWS-3.1-LATIN-1': case 'CSWINDOWS31LATIN1': return 'ISO-8859-1-Windows-3.1-Latin-1'; case 'ISO-8859-2-WINDOWS-LATIN-2': case 'CSWINDOWS31LATIN2': return 'ISO-8859-2-Windows-Latin-2'; case 'ISO-8859-9-WINDOWS-LATIN-5': case 'CSWINDOWS31LATIN5': return 'ISO-8859-9-Windows-Latin-5'; case 'HP-ROMAN8': case 'ROMAN8': case 'R8': case 'CSHPROMAN8': return 'hp-roman8'; case 'ADOBE-STANDARD-ENCODING': case 'CSADOBESTANDARDENCODING': return 'Adobe-Standard-Encoding'; case 'VENTURA-US': case 'CSVENTURAUS': return 'Ventura-US'; case 'VENTURA-INTERNATIONAL': case 'CSVENTURAINTERNATIONAL': return 'Ventura-International'; case 'DEC-MCS': case 'DEC': case 'CSDECMCS': return 'DEC-MCS'; case 'IBM850': case 'CP850': case '850': case 'CSPC850MULTILINGUAL': return 'IBM850'; case 'PC8-DANISH-NORWEGIAN': case 'CSPC8DANISHNORWEGIAN': return 'PC8-Danish-Norwegian'; case 'IBM862': case 'CP862': case '862': case 'CSPC862LATINHEBREW': return 'IBM862'; case 'PC8-TURKISH': case 'CSPC8TURKISH': return 'PC8-Turkish'; case 'IBM-SYMBOLS': case 'CSIBMSYMBOLS': return 'IBM-Symbols'; case 'IBM-THAI': case 'CSIBMTHAI': return 'IBM-Thai'; case 'HP-LEGAL': case 'CSHPLEGAL': return 'HP-Legal'; case 'HP-PI-FONT': case 'CSHPPIFONT': return 'HP-Pi-font'; case 'HP-MATH8': case 'CSHPMATH8': return 'HP-Math8'; case 'ADOBE-SYMBOL-ENCODING': case 'CSHPPSMATH': return 'Adobe-Symbol-Encoding'; case 'HP-DESKTOP': case 'CSHPDESKTOP': return 'HP-DeskTop'; case 'VENTURA-MATH': case 'CSVENTURAMATH': return 'Ventura-Math'; case 'MICROSOFT-PUBLISHING': case 'CSMICROSOFTPUBLISHING': return 'Microsoft-Publishing'; case 'WINDOWS-31J': case 'CSWINDOWS31J': return 'Windows-31J'; case 'GB2312': case 'CSGB2312': return 'GB2312'; case 'BIG5': case 'CSBIG5': return 'Big5'; case 'MACINTOSH': case 'MAC': case 'CSMACINTOSH': return 'macintosh'; case 'IBM037': case 'CP037': case 'EBCDIC-CP-US': case 'EBCDIC-CP-CA': case 'EBCDIC-CP-WT': case 'EBCDIC-CP-NL': case 'CSIBM037': return 'IBM037'; case 'IBM038': case 'EBCDIC-INT': case 'CP038': case 'CSIBM038': return 'IBM038'; case 'IBM273': case 'CP273': case 'CSIBM273': return 'IBM273'; case 'IBM274': case 'EBCDIC-BE': case 'CP274': case 'CSIBM274': return 'IBM274'; case 'IBM275': case 'EBCDIC-BR': case 'CP275': case 'CSIBM275': return 'IBM275'; case 'IBM277': case 'EBCDIC-CP-DK': case 'EBCDIC-CP-NO': case 'CSIBM277': return 'IBM277'; case 'IBM278': case 'CP278': case 'EBCDIC-CP-FI': case 'EBCDIC-CP-SE': case 'CSIBM278': return 'IBM278'; case 'IBM280': case 'CP280': case 'EBCDIC-CP-IT': case 'CSIBM280': return 'IBM280'; case 'IBM281': case 'EBCDIC-JP-E': case 'CP281': case 'CSIBM281': return 'IBM281'; case 'IBM284': case 'CP284': case 'EBCDIC-CP-ES': case 'CSIBM284': return 'IBM284'; case 'IBM285': case 'CP285': case 'EBCDIC-CP-GB': case 'CSIBM285': return 'IBM285'; case 'IBM290': case 'CP290': case 'EBCDIC-JP-KANA': case 'CSIBM290': return 'IBM290'; case 'IBM297': case 'CP297': case 'EBCDIC-CP-FR': case 'CSIBM297': return 'IBM297'; case 'IBM420': case 'CP420': case 'EBCDIC-CP-AR1': case 'CSIBM420': return 'IBM420'; case 'IBM423': case 'CP423': case 'EBCDIC-CP-GR': case 'CSIBM423': return 'IBM423'; case 'IBM424': case 'CP424': case 'EBCDIC-CP-HE': case 'CSIBM424': return 'IBM424'; case 'IBM437': case 'CP437': case '437': case 'CSPC8CODEPAGE437': return 'IBM437'; case 'IBM500': case 'CP500': case 'EBCDIC-CP-BE': case 'EBCDIC-CP-CH': case 'CSIBM500': return 'IBM500'; case 'IBM851': case 'CP851': case '851': case 'CSIBM851': return 'IBM851'; case 'IBM852': case 'CP852': case '852': case 'CSPCP852': return 'IBM852'; case 'IBM855': case 'CP855': case '855': case 'CSIBM855': return 'IBM855'; case 'IBM857': case 'CP857': case '857': case 'CSIBM857': return 'IBM857'; case 'IBM860': case 'CP860': case '860': case 'CSIBM860': return 'IBM860'; case 'IBM861': case 'CP861': case '861': case 'CP-IS': case 'CSIBM861': return 'IBM861'; case 'IBM863': case 'CP863': case '863': case 'CSIBM863': return 'IBM863'; case 'IBM864': case 'CP864': case 'CSIBM864': return 'IBM864'; case 'IBM865': case 'CP865': case '865': case 'CSIBM865': return 'IBM865'; case 'IBM868': case 'CP868': case 'CP-AR': case 'CSIBM868': return 'IBM868'; case 'IBM869': case 'CP869': case '869': case 'CP-GR': case 'CSIBM869': return 'IBM869'; case 'IBM870': case 'CP870': case 'EBCDIC-CP-ROECE': case 'EBCDIC-CP-YU': case 'CSIBM870': return 'IBM870'; case 'IBM871': case 'CP871': case 'EBCDIC-CP-IS': case 'CSIBM871': return 'IBM871'; case 'IBM880': case 'CP880': case 'EBCDIC-CYRILLIC': case 'CSIBM880': return 'IBM880'; case 'IBM891': case 'CP891': case 'CSIBM891': return 'IBM891'; case 'IBM903': case 'CP903': case 'CSIBM903': return 'IBM903'; case 'IBM904': case 'CP904': case '904': case 'CSIBBM904': return 'IBM904'; case 'IBM905': case 'CP905': case 'EBCDIC-CP-TR': case 'CSIBM905': return 'IBM905'; case 'IBM918': case 'CP918': case 'EBCDIC-CP-AR2': case 'CSIBM918': return 'IBM918'; case 'IBM1026': case 'CP1026': case 'CSIBM1026': return 'IBM1026'; case 'EBCDIC-AT-DE': case 'CSIBMEBCDICATDE': return 'EBCDIC-AT-DE'; case 'EBCDIC-AT-DE-A': case 'CSEBCDICATDEA': return 'EBCDIC-AT-DE-A'; case 'EBCDIC-CA-FR': case 'CSEBCDICCAFR': return 'EBCDIC-CA-FR'; case 'EBCDIC-DK-NO': case 'CSEBCDICDKNO': return 'EBCDIC-DK-NO'; case 'EBCDIC-DK-NO-A': case 'CSEBCDICDKNOA': return 'EBCDIC-DK-NO-A'; case 'EBCDIC-FI-SE': case 'CSEBCDICFISE': return 'EBCDIC-FI-SE'; case 'EBCDIC-FI-SE-A': case 'CSEBCDICFISEA': return 'EBCDIC-FI-SE-A'; case 'EBCDIC-FR': case 'CSEBCDICFR': return 'EBCDIC-FR'; case 'EBCDIC-IT': case 'CSEBCDICIT': return 'EBCDIC-IT'; case 'EBCDIC-PT': case 'CSEBCDICPT': return 'EBCDIC-PT'; case 'EBCDIC-ES': case 'CSEBCDICES': return 'EBCDIC-ES'; case 'EBCDIC-ES-A': case 'CSEBCDICESA': return 'EBCDIC-ES-A'; case 'EBCDIC-ES-S': case 'CSEBCDICESS': return 'EBCDIC-ES-S'; case 'EBCDIC-UK': case 'CSEBCDICUK': return 'EBCDIC-UK'; case 'EBCDIC-US': case 'CSEBCDICUS': return 'EBCDIC-US'; case 'UNKNOWN-8BIT': case 'CSUNKNOWN8BIT': return 'UNKNOWN-8BIT'; case 'MNEMONIC': case 'CSMNEMONIC': return 'MNEMONIC'; case 'MNEM': case 'CSMNEM': return 'MNEM'; case 'VISCII': case 'CSVISCII': return 'VISCII'; case 'VIQR': case 'CSVIQR': return 'VIQR'; case 'KOI8-R': case 'CSKOI8R': return 'KOI8-R'; case 'HZ-GB-2312': return 'HZ-GB-2312'; case 'IBM866': case 'CP866': case '866': case 'CSIBM866': return 'IBM866'; case 'IBM775': case 'CP775': case 'CSPC775BALTIC': return 'IBM775'; case 'KOI8-U': return 'KOI8-U'; case 'IBM00858': case 'CCSID00858': case 'CP00858': case 'PC-MULTILINGUAL-850+EURO': return 'IBM00858'; case 'IBM00924': case 'CCSID00924': case 'CP00924': case 'EBCDIC-LATIN9--EURO': return 'IBM00924'; case 'IBM01140': case 'CCSID01140': case 'CP01140': case 'EBCDIC-US-37+EURO': return 'IBM01140'; case 'IBM01141': case 'CCSID01141': case 'CP01141': case 'EBCDIC-DE-273+EURO': return 'IBM01141'; case 'IBM01142': case 'CCSID01142': case 'CP01142': case 'EBCDIC-DK-277+EURO': case 'EBCDIC-NO-277+EURO': return 'IBM01142'; case 'IBM01143': case 'CCSID01143': case 'CP01143': case 'EBCDIC-FI-278+EURO': case 'EBCDIC-SE-278+EURO': return 'IBM01143'; case 'IBM01144': case 'CCSID01144': case 'CP01144': case 'EBCDIC-IT-280+EURO': return 'IBM01144'; case 'IBM01145': case 'CCSID01145': case 'CP01145': case 'EBCDIC-ES-284+EURO': return 'IBM01145'; case 'IBM01146': case 'CCSID01146': case 'CP01146': case 'EBCDIC-GB-285+EURO': return 'IBM01146'; case 'IBM01147': case 'CCSID01147': case 'CP01147': case 'EBCDIC-FR-297+EURO': return 'IBM01147'; case 'IBM01148': case 'CCSID01148': case 'CP01148': case 'EBCDIC-INTERNATIONAL-500+EURO': return 'IBM01148'; case 'IBM01149': case 'CCSID01149': case 'CP01149': case 'EBCDIC-IS-871+EURO': return 'IBM01149'; case 'BIG5-HKSCS': return 'Big5-HKSCS'; case 'IBM1047': case 'IBM-1047': return 'IBM1047'; case 'PTCP154': case 'CSPTCP154': case 'PT154': case 'CP154': case 'CYRILLIC-ASIAN': return 'PTCP154'; case 'AMIGA-1251': case 'AMI1251': case 'AMIGA1251': case 'AMI-1251': return 'Amiga-1251'; case 'KOI7-SWITCHED': return 'KOI7-switched'; case 'BRF': case 'CSBRF': return 'BRF'; case 'TSCII': case 'CSTSCII': return 'TSCII'; case 'WINDOWS-1250': return 'windows-1250'; case 'WINDOWS-1251': return 'windows-1251'; case 'WINDOWS-1252': return 'windows-1252'; case 'WINDOWS-1253': return 'windows-1253'; case 'WINDOWS-1254': return 'windows-1254'; case 'WINDOWS-1255': return 'windows-1255'; case 'WINDOWS-1256': return 'windows-1256'; case 'WINDOWS-1257': return 'windows-1257'; case 'WINDOWS-1258': return 'windows-1258'; default: return (string) $encoding; } } function get_curl_version() { if (is_array($curl = curl_version())) { $curl = $curl['version']; } elseif (substr($curl, 0, 5) == 'curl/') { $curl = substr($curl, 5, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 5)); } elseif (substr($curl, 0, 8) == 'libcurl/') { $curl = substr($curl, 8, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 8)); } else { $curl = 0; } return $curl; } function is_subclass_of($class1, $class2) { if (func_num_args() != 2) { trigger_error('Wrong parameter count for SimplePie_Misc::is_subclass_of()', E_USER_WARNING); } elseif (version_compare(PHP_VERSION, '5.0.3', '>=') || is_object($class1)) { return is_subclass_of($class1, $class2); } elseif (is_string($class1) && is_string($class2)) { if (class_exists($class1)) { if (class_exists($class2)) { $class2 = strtolower($class2); while ($class1 = strtolower(get_parent_class($class1))) { if ($class1 == $class2) { return true; } } } } else { trigger_error('Unknown class passed as parameter', E_USER_WARNNG); } } return false; } /** * Strip HTML comments * * @access public * @param string $data Data to strip comments from * @return string Comment stripped string */ function strip_comments($data) { $output = ''; while (($start = strpos($data, '', $start)) !== false) { $data = substr_replace($data, '', 0, $end + 3); } else { $data = ''; } } return $output . $data; } function parse_date($dt, $rfc822_tz = true) { static $cache = array(); if (!isset($cache[$dt][$rfc822_tz])) { $dt = SimplePie_Misc::uncomment_rfc822($dt); /* Capturing subpatterns: 1: RFC 822 date 2: RFC 822 day 3: RFC 822 month 4: RFC 822 year 5: ISO 8601 date 6: ISO 8601 century 7: ISO 8601 year 8: ISO 8601 month 9: ISO 8601 day 10: ISO 8601 ordinal day 11: ISO 8601 month 12: ISO 8601 day 13: ISO 8601 week 14: ISO 8601 day of week 15: Time 16: Hour 17: Hour Decimal 18: Minute 19: Minute Decimal 20: Second 21: Second Decimal 22: Timezone 23: Diff ± 24: Hour 25: Hour Decimal 26: Minute 27: Minute Decimal 28: Alphabetic Timezone */ if (preg_match('/^(?:(?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)[,\s]+)?(([0-9]{1,2})\s*(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s*([0-9]{4}|[0-9]{2}))|(([0-9]{2})(?:([0-9]{2})(?:(?:-|\s)*(?:([0-9]{2})([0-9]{2})|([0-9]{3})|([0-9]{2})(?:(?:-|\s)*([0-9]{2}))?|W([0-9]{2})(?:(?:-|\s)*([0-9]))?))?)?))((?:T|\s)+([0-9]{2})(?:(?:,|\.)([0-9]*)|(?:\:|\s)*([0-9]{2})(?:(?:,|\.)([0-9]*)|(?:\:|\s)*([0-9]{2})(?:(?:,|\.)([0-9]*))?)?)?(?:\s)*((?:(\+|-)([0-9]{2})(?:(?:,|\.)([0-9]*)|(?:\:|\s)*(?:([0-9]{2})(?:(?:,|\.)([0-9]*))?))?)|(UTC|GMT|EST|CST|MST|PST|EDT|CDT|MDT|PDT|UT|[A-IK-Z]))?)?$/i', $dt, $match)) { // Fill all matches for ($i = count($match); $i <= 28; $i++) { $match[$i] = ''; } // Set blank vars $year = 1970; $month = 1; $day = 1; $hour = 0; $minute = 0; $second = 0; $timezone = false; // RFC 822 if ($match[1] !== '') { if (strlen($match[4]) == 2) { $year = ($match[4] < 70) ? "20$match[4]" : "19$match[4]"; } else { $year = $match[4]; } switch (strtolower($match[3])) { case 'jan': $month = 1; break; case 'feb': $month = 2; break; case 'mar': $month = 3; break; case 'apr': $month = 4; break; case 'may': $month = 5; break; case 'jun': $month = 6; break; case 'jul': $month = 7; break; case 'aug': $month = 8; break; case 'sep': $month = 9; break; case 'oct': $month = 10; break; case 'nov': $month = 11; break; case 'dec': $month = 12; break; } $day = $match[2]; } // ISO 8601 else { // Year if ($match[7] !== '') { $year = "$match[6]$match[7]"; // Two Digit Month/Day if ($match[11] !== '') { $month = $match[11]; if ($match[12] !== '') { $day = $match[12]; } } // Four Digit Month/Day elseif ($match[8] !== '') { $month = $match[8]; $day = $match[9]; } // Ordinal Day elseif ($match[10] !== '') { $day = $match[10]; } // Week Date elseif ($match[13] !== '') { // Week Day if ($match[14] !== '') { $day = $match[14]; } $first_day_of_year = date('w', mktime(0, 0, 0, 1, 1, $year)); if ($first_day_of_year == 0) { $first_day_of_year = 7; } $day = 7 * ($match[13] - 1) + $day - ($first_day_of_year - 1); } } else { $year = "$match[6]00"; } } // Time if ($match[15] !== '') { $time = 0; $time += ($match[16] + ('.' . $match[17])) * 3600; $time += ($match[18] + ('.' . $match[19])) * 60; $time += $match[20] + ('.' . $match[21]); $hour = floor($time / 3600); $time -= $hour * 3600; $minute = floor($time / 60); $time -= $minute * 60; $second = round($time); // Timezone if ($match[22] !== '') { // Alphabetic Timezone if ($match[28] !== '') { // Military if (strlen($match[28]) == 1) { if ($match[28] == 'Z' || $match[28] == 'z' || !$rfc822_tz) { $timezone = 0; } else { $timezone = ord(strtoupper($match[28])); if ($timezone > 74) { $timezone--; } if ($timezone <= 76) { $timezone = -($timezone - 64); } else { $timezone -= 76; } $timezone *= 3600; } } // Code else { switch (strtoupper($match[28])) { case 'UT': case 'UTC': case 'GMT': $timezone = 0; break; case 'EST': $timezone = -18000; break; case 'CST': $timezone = -21600; break; case 'MST': $timezone = -25200; break; case 'PST': $timezone = -28800; break; case 'EDT': $timezone = -14400; break; case 'CDT': $timezone = -18000; break; case 'MDT': $timezone = -21600; break; case 'PDT': $timezone = -25200; break; } } } // Timezone difference from UTC else { $timezone = 0; $timezone += ($match[24] + ('.' . $match[25])) * 3600; $timezone += ($match[26] + ('.' . $match[27])) * 60; $timezone = (int) round($timezone); if ($match[23] == '-') { $timezone = -$timezone; } } } } if ($timezone === false) { $cache[$dt][$rfc822_tz] = mktime($hour, $minute, $second, $month, $day, $year); } else { $cache[$dt][$rfc822_tz] = gmmktime($hour, $minute, $second, $month, $day, $year) - $timezone; } } elseif (($time = strtotime($dt)) > 0) { $cache[$dt][$rfc822_tz] = $time; } else { $cache[$dt][$rfc822_tz] = false; } } return $cache[$dt][$rfc822_tz]; } /** * Decode HTML entities * * @static * @access public * @param string $data Input data * @return string Output data */ function entities_decode($data) { $decoder = new SimplePie_Decode_HTML_Entities($data); return $decoder->parse(); } /** * Remove RFC822 comments * * @author Tomas V.V.Cox * @author Pierre-Alain Joye * @author Amir Mohammad Saied * @copyright 1997-2006 Pierre-Alain Joye,Tomas V.V.Cox,Amir Mohammad Saied * @license http://www.opensource.org/licenses/bsd-license.php New BSD License * @version CVS: $Id: simplepie.php 10381 2008-06-01 03:35:53Z pasamio $ * @link http://pear.php.net/package/Validate * @access public * @param string $data Data to strip comments from * @return string Comment stripped string */ function uncomment_rfc822($data) { if ((version_compare(PHP_VERSION, '4.4.6', '>=') && version_compare(PHP_VERSION, '5', '<')) || version_compare(PHP_VERSION, '5.2.2', '>=')) { return $data; } else { return preg_replace('/((?:(?:\\\\"|[^("])*(?:"(?:[^"\\\\\r]|\\\\.)*"\s*)?)*)((?=')) { return array_unique($array); } else { $array = (array) $array; $new_array = array(); $new_array_strings = array(); foreach ($array as $key => $value) { if (is_object($value)) { if (method_exists($value, '__toString')) { $cmp = $value->__toString(); } else { trigger_error('Object of class ' . get_class($value) . ' could not be converted to string', E_USER_ERROR); } } elseif (is_array($value)) { $cmp = (string) reset($value); } else { $cmp = (string) $value; } if (!in_array($cmp, $new_array_strings)) { $new_array[$key] = $value; $new_array_strings[] = $cmp; } } return $new_array; } } /** * Converts a unicode codepoint to a UTF-8 character * * @static * @access public * @param int $codepoint Unicode codepoint * @return string UTF-8 character */ function codepoint_to_utf8($codepoint) { static $cache = array(); $codepoint = (int) $codepoint; if (isset($cache[$codepoint])) { return $cache[$codepoint]; } elseif ($codepoint < 0) { return $cache[$codepoint] = false; } else if ($codepoint <= 0x7f) { return $cache[$codepoint] = chr($codepoint); } else if ($codepoint <= 0x7ff) { return $cache[$codepoint] = chr(0xc0 | ($codepoint >> 6)) . chr(0x80 | ($codepoint & 0x3f)); } else if ($codepoint <= 0xffff) { return $cache[$codepoint] = chr(0xe0 | ($codepoint >> 12)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f)); } else if ($codepoint <= 0x10ffff) { return $cache[$codepoint] = chr(0xf0 | ($codepoint >> 18)) . chr(0x80 | (($codepoint >> 12) & 0x3f)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f)); } else { // U+FFFD REPLACEMENT CHARACTER return $cache[$codepoint] = "\xEF\xBF\xBD"; } } /** * Re-implementation of PHP 4.2.0's is_a() * * @static * @access public * @param object $object The tested object * @param string $class_name The class name * @return bool Returns true if the object is of this class or has this class as one of its parents, false otherwise */ function is_a($object, $class_name) { if (function_exists('is_a')) { return is_a($object, $class_name); } elseif (!is_object($object)) { return false; } elseif (get_class($object) == strtolower($class_name)) { return true; } else { return is_subclass_of($object, $class_name); } } /** * Re-implementation of PHP 5's stripos() * * Returns the numeric position of the first occurrence of needle in the * haystack string. * * @static * @access string * @param object $haystack * @param string $needle Note that the needle may be a string of one or more * characters. If needle is not a string, it is converted to an integer * and applied as the ordinal value of a character. * @param int $offset The optional offset parameter allows you to specify which * character in haystack to start searching. The position returned is still * relative to the beginning of haystack. * @return bool If needle is not found, stripos() will return boolean false. */ function stripos($haystack, $needle, $offset = 0) { if (function_exists('stripos')) { return stripos($haystack, $needle, $offset); } else { if (is_string($needle)) { $needle = strtolower($needle); } elseif (is_int($needle) || is_bool($needle) || is_double($needle)) { $needle = strtolower(chr($needle)); } else { trigger_error('needle is not a string or an integer', E_USER_WARNING); return false; } return strpos(strtolower($haystack), $needle, $offset); } } } /** * Decode HTML Entities * * This implements HTML5 as of revision 967 (2007-06-28) * * @package SimplePie */ class SimplePie_Decode_HTML_Entities { /** * Data to be parsed * * @access private * @var string */ var $data = ''; /** * Currently consumed bytes * * @access private * @var string */ var $consumed = ''; /** * Position of the current byte being parsed * * @access private * @var int */ var $position = 0; /** * Create an instance of the class with the input data * * @access public * @param string $data Input data */ function SimplePie_Decode_HTML_Entities($data) { $this->data = $data; } /** * Parse the input data * * @access public * @return string Output data */ function parse() { while (($this->position = strpos($this->data, '&', $this->position)) !== false) { $this->consume(); $this->entity(); $this->consumed = ''; } return $this->data; } /** * Consume the next byte * * @access private * @return mixed The next byte, or false, if there is no more data */ function consume() { if (isset($this->data[$this->position])) { $this->consumed .= $this->data[$this->position]; return $this->data[$this->position++]; } else { $this->consumed = false; return false; } } /** * Consume a range of characters * * @access private * @param string $chars Characters to consume * @return mixed A series of characters that match the range, or false */ function consume_range($chars) { if ($len = strspn($this->data, $chars, $this->position)) { $data = substr($this->data, $this->position, $len); $this->consumed .= $data; $this->position += $len; return $data; } else { $this->consumed = false; return false; } } /** * Unconsume one byte * * @access private */ function unconsume() { $this->consumed = substr($this->consumed, 0, -1); $this->position--; } /** * Decode an entity * * @access private */ function entity() { switch ($this->consume()) { case "\x09": case "\x0A": case "\x0B": case "\x0B": case "\x0C": case "\x20": case "\x3C": case "\x26": case false: break; case "\x23": switch ($this->consume()) { case "\x78": case "\x58": $range = '0123456789ABCDEFabcdef'; $hex = true; break; default: $range = '0123456789'; $hex = false; $this->unconsume(); break; } if ($codepoint = $this->consume_range($range)) { static $windows_1252_specials = array(0x0D => "\x0A", 0x80 => "\xE2\x82\xAC", 0x81 => "\xEF\xBF\xBD", 0x82 => "\xE2\x80\x9A", 0x83 => "\xC6\x92", 0x84 => "\xE2\x80\x9E", 0x85 => "\xE2\x80\xA6", 0x86 => "\xE2\x80\xA0", 0x87 => "\xE2\x80\xA1", 0x88 => "\xCB\x86", 0x89 => "\xE2\x80\xB0", 0x8A => "\xC5\xA0", 0x8B => "\xE2\x80\xB9", 0x8C => "\xC5\x92", 0x8D => "\xEF\xBF\xBD", 0x8E => "\xC5\xBD", 0x8F => "\xEF\xBF\xBD", 0x90 => "\xEF\xBF\xBD", 0x91 => "\xE2\x80\x98", 0x92 => "\xE2\x80\x99", 0x93 => "\xE2\x80\x9C", 0x94 => "\xE2\x80\x9D", 0x95 => "\xE2\x80\xA2", 0x96 => "\xE2\x80\x93", 0x97 => "\xE2\x80\x94", 0x98 => "\xCB\x9C", 0x99 => "\xE2\x84\xA2", 0x9A => "\xC5\xA1", 0x9B => "\xE2\x80\xBA", 0x9C => "\xC5\x93", 0x9D => "\xEF\xBF\xBD", 0x9E => "\xC5\xBE", 0x9F => "\xC5\xB8"); if ($hex) { $codepoint = hexdec($codepoint); } else { $codepoint = intval($codepoint); } if (isset($windows_1252_specials[$codepoint])) { $replacement = $windows_1252_specials[$codepoint]; } else { $replacement = SimplePie_Misc::codepoint_to_utf8($codepoint); } if ($this->consume() != ';') { $this->unconsume(); } $consumed_length = strlen($this->consumed); $this->data = substr_replace($this->data, $replacement, $this->position - $consumed_length, $consumed_length); $this->position += strlen($replacement) - $consumed_length; } break; default: static $entities = array('Aacute' => "\xC3\x81", 'aacute' => "\xC3\xA1", 'Aacute;' => "\xC3\x81", 'aacute;' => "\xC3\xA1", 'Acirc' => "\xC3\x82", 'acirc' => "\xC3\xA2", 'Acirc;' => "\xC3\x82", 'acirc;' => "\xC3\xA2", 'acute' => "\xC2\xB4", 'acute;' => "\xC2\xB4", 'AElig' => "\xC3\x86", 'aelig' => "\xC3\xA6", 'AElig;' => "\xC3\x86", 'aelig;' => "\xC3\xA6", 'Agrave' => "\xC3\x80", 'agrave' => "\xC3\xA0", 'Agrave;' => "\xC3\x80", 'agrave;' => "\xC3\xA0", 'alefsym;' => "\xE2\x84\xB5", 'Alpha;' => "\xCE\x91", 'alpha;' => "\xCE\xB1", 'AMP' => "\x26", 'amp' => "\x26", 'AMP;' => "\x26", 'amp;' => "\x26", 'and;' => "\xE2\x88\xA7", 'ang;' => "\xE2\x88\xA0", 'apos;' => "\x27", 'Aring' => "\xC3\x85", 'aring' => "\xC3\xA5", 'Aring;' => "\xC3\x85", 'aring;' => "\xC3\xA5", 'asymp;' => "\xE2\x89\x88", 'Atilde' => "\xC3\x83", 'atilde' => "\xC3\xA3", 'Atilde;' => "\xC3\x83", 'atilde;' => "\xC3\xA3", 'Auml' => "\xC3\x84", 'auml' => "\xC3\xA4", 'Auml;' => "\xC3\x84", 'auml;' => "\xC3\xA4", 'bdquo;' => "\xE2\x80\x9E", 'Beta;' => "\xCE\x92", 'beta;' => "\xCE\xB2", 'brvbar' => "\xC2\xA6", 'brvbar;' => "\xC2\xA6", 'bull;' => "\xE2\x80\xA2", 'cap;' => "\xE2\x88\xA9", 'Ccedil' => "\xC3\x87", 'ccedil' => "\xC3\xA7", 'Ccedil;' => "\xC3\x87", 'ccedil;' => "\xC3\xA7", 'cedil' => "\xC2\xB8", 'cedil;' => "\xC2\xB8", 'cent' => "\xC2\xA2", 'cent;' => "\xC2\xA2", 'Chi;' => "\xCE\xA7", 'chi;' => "\xCF\x87", 'circ;' => "\xCB\x86", 'clubs;' => "\xE2\x99\xA3", 'cong;' => "\xE2\x89\x85", 'COPY' => "\xC2\xA9", 'copy' => "\xC2\xA9", 'COPY;' => "\xC2\xA9", 'copy;' => "\xC2\xA9", 'crarr;' => "\xE2\x86\xB5", 'cup;' => "\xE2\x88\xAA", 'curren' => "\xC2\xA4", 'curren;' => "\xC2\xA4", 'Dagger;' => "\xE2\x80\xA1", 'dagger;' => "\xE2\x80\xA0", 'dArr;' => "\xE2\x87\x93", 'darr;' => "\xE2\x86\x93", 'deg' => "\xC2\xB0", 'deg;' => "\xC2\xB0", 'Delta;' => "\xCE\x94", 'delta;' => "\xCE\xB4", 'diams;' => "\xE2\x99\xA6", 'divide' => "\xC3\xB7", 'divide;' => "\xC3\xB7", 'Eacute' => "\xC3\x89", 'eacute' => "\xC3\xA9", 'Eacute;' => "\xC3\x89", 'eacute;' => "\xC3\xA9", 'Ecirc' => "\xC3\x8A", 'ecirc' => "\xC3\xAA", 'Ecirc;' => "\xC3\x8A", 'ecirc;' => "\xC3\xAA", 'Egrave' => "\xC3\x88", 'egrave' => "\xC3\xA8", 'Egrave;' => "\xC3\x88", 'egrave;' => "\xC3\xA8", 'empty;' => "\xE2\x88\x85", 'emsp;' => "\xE2\x80\x83", 'ensp;' => "\xE2\x80\x82", 'Epsilon;' => "\xCE\x95", 'epsilon;' => "\xCE\xB5", 'equiv;' => "\xE2\x89\xA1", 'Eta;' => "\xCE\x97", 'eta;' => "\xCE\xB7", 'ETH' => "\xC3\x90", 'eth' => "\xC3\xB0", 'ETH;' => "\xC3\x90", 'eth;' => "\xC3\xB0", 'Euml' => "\xC3\x8B", 'euml' => "\xC3\xAB", 'Euml;' => "\xC3\x8B", 'euml;' => "\xC3\xAB", 'euro;' => "\xE2\x82\xAC", 'exist;' => "\xE2\x88\x83", 'fnof;' => "\xC6\x92", 'forall;' => "\xE2\x88\x80", 'frac12' => "\xC2\xBD", 'frac12;' => "\xC2\xBD", 'frac14' => "\xC2\xBC", 'frac14;' => "\xC2\xBC", 'frac34' => "\xC2\xBE", 'frac34;' => "\xC2\xBE", 'frasl;' => "\xE2\x81\x84", 'Gamma;' => "\xCE\x93", 'gamma;' => "\xCE\xB3", 'ge;' => "\xE2\x89\xA5", 'GT' => "\x3E", 'gt' => "\x3E", 'GT;' => "\x3E", 'gt;' => "\x3E", 'hArr;' => "\xE2\x87\x94", 'harr;' => "\xE2\x86\x94", 'hearts;' => "\xE2\x99\xA5", 'hellip;' => "\xE2\x80\xA6", 'Iacute' => "\xC3\x8D", 'iacute' => "\xC3\xAD", 'Iacute;' => "\xC3\x8D", 'iacute;' => "\xC3\xAD", 'Icirc' => "\xC3\x8E", 'icirc' => "\xC3\xAE", 'Icirc;' => "\xC3\x8E", 'icirc;' => "\xC3\xAE", 'iexcl' => "\xC2\xA1", 'iexcl;' => "\xC2\xA1", 'Igrave' => "\xC3\x8C", 'igrave' => "\xC3\xAC", 'Igrave;' => "\xC3\x8C", 'igrave;' => "\xC3\xAC", 'image;' => "\xE2\x84\x91", 'infin;' => "\xE2\x88\x9E", 'int;' => "\xE2\x88\xAB", 'Iota;' => "\xCE\x99", 'iota;' => "\xCE\xB9", 'iquest' => "\xC2\xBF", 'iquest;' => "\xC2\xBF", 'isin;' => "\xE2\x88\x88", 'Iuml' => "\xC3\x8F", 'iuml' => "\xC3\xAF", 'Iuml;' => "\xC3\x8F", 'iuml;' => "\xC3\xAF", 'Kappa;' => "\xCE\x9A", 'kappa;' => "\xCE\xBA", 'Lambda;' => "\xCE\x9B", 'lambda;' => "\xCE\xBB", 'lang;' => "\xE3\x80\x88", 'laquo' => "\xC2\xAB", 'laquo;' => "\xC2\xAB", 'lArr;' => "\xE2\x87\x90", 'larr;' => "\xE2\x86\x90", 'lceil;' => "\xE2\x8C\x88", 'ldquo;' => "\xE2\x80\x9C", 'le;' => "\xE2\x89\xA4", 'lfloor;' => "\xE2\x8C\x8A", 'lowast;' => "\xE2\x88\x97", 'loz;' => "\xE2\x97\x8A", 'lrm;' => "\xE2\x80\x8E", 'lsaquo;' => "\xE2\x80\xB9", 'lsquo;' => "\xE2\x80\x98", 'LT' => "\x3C", 'lt' => "\x3C", 'LT;' => "\x3C", 'lt;' => "\x3C", 'macr' => "\xC2\xAF", 'macr;' => "\xC2\xAF", 'mdash;' => "\xE2\x80\x94", 'micro' => "\xC2\xB5", 'micro;' => "\xC2\xB5", 'middot' => "\xC2\xB7", 'middot;' => "\xC2\xB7", 'minus;' => "\xE2\x88\x92", 'Mu;' => "\xCE\x9C", 'mu;' => "\xCE\xBC", 'nabla;' => "\xE2\x88\x87", 'nbsp' => "\xC2\xA0", 'nbsp;' => "\xC2\xA0", 'ndash;' => "\xE2\x80\x93", 'ne;' => "\xE2\x89\xA0", 'ni;' => "\xE2\x88\x8B", 'not' => "\xC2\xAC", 'not;' => "\xC2\xAC", 'notin;' => "\xE2\x88\x89", 'nsub;' => "\xE2\x8A\x84", 'Ntilde' => "\xC3\x91", 'ntilde' => "\xC3\xB1", 'Ntilde;' => "\xC3\x91", 'ntilde;' => "\xC3\xB1", 'Nu;' => "\xCE\x9D", 'nu;' => "\xCE\xBD", 'Oacute' => "\xC3\x93", 'oacute' => "\xC3\xB3", 'Oacute;' => "\xC3\x93", 'oacute;' => "\xC3\xB3", 'Ocirc' => "\xC3\x94", 'ocirc' => "\xC3\xB4", 'Ocirc;' => "\xC3\x94", 'ocirc;' => "\xC3\xB4", 'OElig;' => "\xC5\x92", 'oelig;' => "\xC5\x93", 'Ograve' => "\xC3\x92", 'ograve' => "\xC3\xB2", 'Ograve;' => "\xC3\x92", 'ograve;' => "\xC3\xB2", 'oline;' => "\xE2\x80\xBE", 'Omega;' => "\xCE\xA9", 'omega;' => "\xCF\x89", 'Omicron;' => "\xCE\x9F", 'omicron;' => "\xCE\xBF", 'oplus;' => "\xE2\x8A\x95", 'or;' => "\xE2\x88\xA8", 'ordf' => "\xC2\xAA", 'ordf;' => "\xC2\xAA", 'ordm' => "\xC2\xBA", 'ordm;' => "\xC2\xBA", 'Oslash' => "\xC3\x98", 'oslash' => "\xC3\xB8", 'Oslash;' => "\xC3\x98", 'oslash;' => "\xC3\xB8", 'Otilde' => "\xC3\x95", 'otilde' => "\xC3\xB5", 'Otilde;' => "\xC3\x95", 'otilde;' => "\xC3\xB5", 'otimes;' => "\xE2\x8A\x97", 'Ouml' => "\xC3\x96", 'ouml' => "\xC3\xB6", 'Ouml;' => "\xC3\x96", 'ouml;' => "\xC3\xB6", 'para' => "\xC2\xB6", 'para;' => "\xC2\xB6", 'part;' => "\xE2\x88\x82", 'permil;' => "\xE2\x80\xB0", 'perp;' => "\xE2\x8A\xA5", 'Phi;' => "\xCE\xA6", 'phi;' => "\xCF\x86", 'Pi;' => "\xCE\xA0", 'pi;' => "\xCF\x80", 'piv;' => "\xCF\x96", 'plusmn' => "\xC2\xB1", 'plusmn;' => "\xC2\xB1", 'pound' => "\xC2\xA3", 'pound;' => "\xC2\xA3", 'Prime;' => "\xE2\x80\xB3", 'prime;' => "\xE2\x80\xB2", 'prod;' => "\xE2\x88\x8F", 'prop;' => "\xE2\x88\x9D", 'Psi;' => "\xCE\xA8", 'psi;' => "\xCF\x88", 'QUOT' => "\x22", 'quot' => "\x22", 'QUOT;' => "\x22", 'quot;' => "\x22", 'radic;' => "\xE2\x88\x9A", 'rang;' => "\xE3\x80\x89", 'raquo' => "\xC2\xBB", 'raquo;' => "\xC2\xBB", 'rArr;' => "\xE2\x87\x92", 'rarr;' => "\xE2\x86\x92", 'rceil;' => "\xE2\x8C\x89", 'rdquo;' => "\xE2\x80\x9D", 'real;' => "\xE2\x84\x9C", 'REG' => "\xC2\xAE", 'reg' => "\xC2\xAE", 'REG;' => "\xC2\xAE", 'reg;' => "\xC2\xAE", 'rfloor;' => "\xE2\x8C\x8B", 'Rho;' => "\xCE\xA1", 'rho;' => "\xCF\x81", 'rlm;' => "\xE2\x80\x8F", 'rsaquo;' => "\xE2\x80\xBA", 'rsquo;' => "\xE2\x80\x99", 'sbquo;' => "\xE2\x80\x9A", 'Scaron;' => "\xC5\xA0", 'scaron;' => "\xC5\xA1", 'sdot;' => "\xE2\x8B\x85", 'sect' => "\xC2\xA7", 'sect;' => "\xC2\xA7", 'shy' => "\xC2\xAD", 'shy;' => "\xC2\xAD", 'Sigma;' => "\xCE\xA3", 'sigma;' => "\xCF\x83", 'sigmaf;' => "\xCF\x82", 'sim;' => "\xE2\x88\xBC", 'spades;' => "\xE2\x99\xA0", 'sub;' => "\xE2\x8A\x82", 'sube;' => "\xE2\x8A\x86", 'sum;' => "\xE2\x88\x91", 'sup;' => "\xE2\x8A\x83", 'sup1' => "\xC2\xB9", 'sup1;' => "\xC2\xB9", 'sup2' => "\xC2\xB2", 'sup2;' => "\xC2\xB2", 'sup3' => "\xC2\xB3", 'sup3;' => "\xC2\xB3", 'supe;' => "\xE2\x8A\x87", 'szlig' => "\xC3\x9F", 'szlig;' => "\xC3\x9F", 'Tau;' => "\xCE\xA4", 'tau;' => "\xCF\x84", 'there4;' => "\xE2\x88\xB4", 'Theta;' => "\xCE\x98", 'theta;' => "\xCE\xB8", 'thetasym;' => "\xCF\x91", 'thinsp;' => "\xE2\x80\x89", 'THORN' => "\xC3\x9E", 'thorn' => "\xC3\xBE", 'THORN;' => "\xC3\x9E", 'thorn;' => "\xC3\xBE", 'tilde;' => "\xCB\x9C", 'times' => "\xC3\x97", 'times;' => "\xC3\x97", 'TRADE;' => "\xE2\x84\xA2", 'trade;' => "\xE2\x84\xA2", 'Uacute' => "\xC3\x9A", 'uacute' => "\xC3\xBA", 'Uacute;' => "\xC3\x9A", 'uacute;' => "\xC3\xBA", 'uArr;' => "\xE2\x87\x91", 'uarr;' => "\xE2\x86\x91", 'Ucirc' => "\xC3\x9B", 'ucirc' => "\xC3\xBB", 'Ucirc;' => "\xC3\x9B", 'ucirc;' => "\xC3\xBB", 'Ugrave' => "\xC3\x99", 'ugrave' => "\xC3\xB9", 'Ugrave;' => "\xC3\x99", 'ugrave;' => "\xC3\xB9", 'uml' => "\xC2\xA8", 'uml;' => "\xC2\xA8", 'upsih;' => "\xCF\x92", 'Upsilon;' => "\xCE\xA5", 'upsilon;' => "\xCF\x85", 'Uuml' => "\xC3\x9C", 'uuml' => "\xC3\xBC", 'Uuml;' => "\xC3\x9C", 'uuml;' => "\xC3\xBC", 'weierp;' => "\xE2\x84\x98", 'Xi;' => "\xCE\x9E", 'xi;' => "\xCE\xBE", 'Yacute' => "\xC3\x9D", 'yacute' => "\xC3\xBD", 'Yacute;' => "\xC3\x9D", 'yacute;' => "\xC3\xBD", 'yen' => "\xC2\xA5", 'yen;' => "\xC2\xA5", 'yuml' => "\xC3\xBF", 'Yuml;' => "\xC5\xB8", 'yuml;' => "\xC3\xBF", 'Zeta;' => "\xCE\x96", 'zeta;' => "\xCE\xB6", 'zwj;' => "\xE2\x80\x8D", 'zwnj;' => "\xE2\x80\x8C"); for ($i = 0, $match = null; $i < 9 && $this->consume(); $i++) { $consumed = substr($this->consumed, 1); if (isset($entities[$consumed])) { $match = $consumed; } } if ($match !== null) { $this->data = substr_replace($this->data, $entities[$match], $this->position - strlen($consumed) - 1, strlen($match) + 1); $this->position += strlen($entities[$match]) - strlen($consumed) - 1; } break; } } } class SimplePie_Locator { var $useragent; var $timeout; var $file; var $local = array(); var $elsewhere = array(); var $file_class = 'SimplePie_File'; var $cached_entities = array(); var $http_base; var $base; var $base_location = 0; var $checked_feeds = 0; var $max_checked_feeds = 10; function SimplePie_Locator(&$file, $timeout = 10, $useragent = null, $file_class = 'SimplePie_File', $max_checked_feeds = 10) { $this->file =& $file; $this->file_class = $file_class; $this->useragent = $useragent; $this->timeout = $timeout; $this->max_checked_feeds = $max_checked_feeds; } function find($type = SIMPLEPIE_LOCATOR_ALL) { if ($this->is_feed($this->file)) { return $this->file; } if ($type & ~SIMPLEPIE_LOCATOR_NONE) { $this->get_base(); } if ($type & SIMPLEPIE_LOCATOR_AUTODISCOVERY && $working = $this->autodiscovery()) { return $working; } if ($type & (SIMPLEPIE_LOCATOR_LOCAL_EXTENSION | SIMPLEPIE_LOCATOR_LOCAL_BODY | SIMPLEPIE_LOCATOR_REMOTE_EXTENSION | SIMPLEPIE_LOCATOR_REMOTE_BODY) && $this->get_links()) { if ($type & SIMPLEPIE_LOCATOR_LOCAL_EXTENSION && $working = $this->extension($this->local)) { return $working; } if ($type & SIMPLEPIE_LOCATOR_LOCAL_BODY && $working = $this->body($this->local)) { return $working; } if ($type & SIMPLEPIE_LOCATOR_REMOTE_EXTENSION && $working = $this->extension($this->elsewhere)) { return $working; } if ($type & SIMPLEPIE_LOCATOR_REMOTE_BODY && $working = $this->body($this->elsewhere)) { return $working; } } return null; } function is_feed(&$file) { $body = SimplePie_Misc::strip_comments($file->body); if (preg_match('/<([^\s:]+:)?(rss|RDF|feed)' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/i', $body)) { return true; } return false; } function get_base() { if (isset($this->file->headers['content-location'])) { $this->http_base = SimplePie_Misc::absolutize_url(trim($this->file->headers['content-location']), $this->file->url); } else { $this->http_base = $this->file->url; } $this->base = $this->http_base; $elements = SimplePie_Misc::get_element('base', $this->file->body); foreach ($elements as $element) { if ($element['attribs']['href']['data'] !== '') { $this->base = SimplePie_Misc::absolutize_url(trim($element['attribs']['href']['data']), $this->http_base); $this->base_location = $element['offset']; break; } } } function autodiscovery() { $links = array_merge(SimplePie_Misc::get_element('link', $this->file->body), SimplePie_Misc::get_element('a', $this->file->body), SimplePie_Misc::get_element('area', $this->file->body)); $done = array(); foreach ($links as $link) { if ($this->checked_feeds == $this->max_checked_feeds) { break; } if (isset($link['attribs']['href']['data']) && isset($link['attribs']['rel']['data'])) { $rel = array_unique(SimplePie_Misc::space_seperated_tokens(strtolower($link['attribs']['rel']['data']))); if ($this->base_location < $link['offset']) { $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->base); } else { $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->http_base); } if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !empty($link['attribs']['type']['data']) && in_array(strtolower(SimplePie_Misc::parse_mime($link['attribs']['type']['data'])), array('application/rss+xml', 'application/atom+xml')))) { $this->checked_feeds++; $feed =& new $this->file_class($href, $this->timeout, 5, null, $this->useragent); if ($this->is_feed($feed)) { return $feed; } } $done[] = $href; } } return null; } function get_links() { $links = SimplePie_Misc::get_element('a', $this->file->body); foreach ($links as $link) { if (isset($link['attribs']['href']['data'])) { $href = trim($link['attribs']['href']['data']); $parsed = SimplePie_Misc::parse_url($href); if ($parsed['scheme'] === '' || preg_match('/^(http(s)|feed)?$/i', $parsed['scheme'])) { if ($this->base_location < $link['offset']) { $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->base); } else { $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->http_base); } $current = SimplePie_Misc::parse_url($this->file->url); if ($parsed['authority'] === '' || $parsed['authority'] == $current['authority']) { $this->local[] = $href; } else { $this->elsewhere[] = $href; } } } } $this->local = array_unique($this->local); $this->elsewhere = array_unique($this->elsewhere); if (!empty($this->local) || !empty($this->elsewhere)) { return true; } return null; } function extension(&$array) { foreach ($array as $key => $value) { if ($this->checked_feeds == $this->max_checked_feeds) { break; } if (in_array(strtolower(strrchr($value, '.')), array('.rss', '.rdf', '.atom', '.xml'))) { $this->checked_feeds++; $feed =& new $this->file_class($value, $this->timeout, 5, null, $this->useragent); if ($this->is_feed($feed)) { return $feed; } else { unset($array[$key]); } } } return null; } function body(&$array) { foreach ($array as $key => $value) { if ($this->checked_feeds == $this->max_checked_feeds) { break; } if (preg_match('/(rss|rdf|atom|xml)/i', $value)) { $this->checked_feeds++; $feed =& new $this->file_class($value, $this->timeout, 5, null, $this->useragent); if ($this->is_feed($feed)) { return $feed; } else { unset($array[$key]); } } } return null; } } class SimplePie_Parser { var $xml; var $error_code; var $error_string; var $current_line; var $current_column; var $current_byte; var $separator = ' '; var $feed = false; var $namespace = array(''); var $element = array(''); var $xml_base = array(''); var $xml_base_explicit = array(false); var $xml_lang = array(''); var $data = array(); var $datas = array(array()); var $current_xhtml_construct = -1; var $encoding; function pre_process(&$data, $encoding) { // Use UTF-8 if we get passed US-ASCII, as every US-ASCII character is a UTF-8 character if (strtoupper($encoding) == 'US-ASCII') { $this->encoding = 'UTF-8'; } else { $this->encoding = $encoding; } // Strip BOM: // UTF-32 Big Endian BOM if (strpos($data, "\x0\x0\xFE\xFF") === 0) { $data = substr($data, 4); } // UTF-32 Little Endian BOM elseif (strpos($data, "\xFF\xFE\x0\x0") === 0) { $data = substr($data, 4); } // UTF-16 Big Endian BOM elseif (strpos($data, "\xFE\xFF") === 0) { $data = substr($data, 2); } // UTF-16 Little Endian BOM elseif (strpos($data, "\xFF\xFE") === 0) { $data = substr($data, 2); } // UTF-8 BOM elseif (strpos($data, "\xEF\xBB\xBF") === 0) { $data = substr($data, 3); } // Make sure the XML prolog is sane and has the correct encoding $data = preg_replace("/^<\?xml[\x20\x9\xD\xA]+version([\x20\x9\xD\xA]+)?=([\x20\x9\xD\xA]+)?(\"1.0\"|'1.0'|\"1.1\"|'1.1')([\x20\x9\xD\xA]+encoding([\x20\x9\xD\xA]+)?=([\x20\x9\xD\xA]+)?(\"[A-Za-z][A-Za-z0-9._\-]*\"|'[A-Za-z][A-Za-z0-9._\-]*'))?([\x20\x9\xD\xA]+standalone([\x20\x9\xD\xA]+)?=([\x20\x9\xD\xA]+)?(\"(yes|no)\"|'(yes|no)'))?([\x20\x9\xD\xA]+)?\?>/", '', $data); $data = "\n" . $data; } function parse(&$data) { $return = true; // Create the parser $this->xml = xml_parser_create_ns($this->encoding, $this->separator); xml_parser_set_option($this->xml, XML_OPTION_SKIP_WHITE, 1); xml_parser_set_option($this->xml, XML_OPTION_CASE_FOLDING, 0); xml_set_object($this->xml, $this); xml_set_character_data_handler($this->xml, 'cdata'); xml_set_element_handler($this->xml, 'tag_open', 'tag_close'); // Parse! if (!xml_parse($this->xml, $data, true)) { $this->data = null; $this->error_code = xml_get_error_code($this->xml); $this->error_string = xml_error_string($this->error_code); $return = false; } $this->current_line = xml_get_current_line_number($this->xml); $this->current_column = xml_get_current_column_number($this->xml); $this->current_byte = xml_get_current_byte_index($this->xml); xml_parser_free($this->xml); return $return; } function get_error_code() { return $this->error_code; } function get_error_string() { return $this->error_string; } function get_current_line() { return $this->current_line; } function get_current_column() { return $this->current_column; } function get_current_byte() { return $this->current_byte; } function get_data() { return $this->data; } function tag_open($parser, $tag, $attributes) { if ($this->feed === 0) { return; } elseif ($this->feed == false) { if (in_array($tag, array( SIMPLEPIE_NAMESPACE_ATOM_10 . $this->separator . 'feed', SIMPLEPIE_NAMESPACE_ATOM_03 . $this->separator . 'feed', 'rss', SIMPLEPIE_NAMESPACE_RDF . $this->separator . 'RDF' ))) { $this->feed = 1; } } else { $this->feed++; } list($this->namespace[], $this->element[]) = $this->split_ns($tag); $attribs = array(); foreach ($attributes as $name => $value) { list($attrib_namespace, $attribute) = $this->split_ns($name); $attribs[$attrib_namespace][$attribute] = $value; } if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['base'])) { $this->xml_base[] = SimplePie_Misc::absolutize_url($attribs[SIMPLEPIE_NAMESPACE_XML]['base'], end($this->xml_base)); $this->xml_base_explicit[] = true; } else { $this->xml_base[] = end($this->xml_base); $this->xml_base_explicit[] = end($this->xml_base_explicit); } if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['lang'])) { $this->xml_lang[] = $attribs[SIMPLEPIE_NAMESPACE_XML]['lang']; } else { $this->xml_lang[] = end($this->xml_lang); } if ($this->current_xhtml_construct >= 0) { $this->current_xhtml_construct++; if (end($this->namespace) == SIMPLEPIE_NAMESPACE_XHTML) { $this->data['data'] .= '<' . end($this->element); if (isset($attribs[''])) { foreach ($attribs[''] as $name => $value) { $this->data['data'] .= ' ' . $name . '="' . htmlspecialchars($value, ENT_COMPAT, $this->encoding) . '"'; } } $this->data['data'] .= '>'; } } else { $this->datas[] =& $this->data; $this->data =& $this->data['child'][end($this->namespace)][end($this->element)][]; $this->data = array('data' => '', 'attribs' => $attribs, 'xml_base' => end($this->xml_base), 'xml_base_explicit' => end($this->xml_base_explicit), 'xml_lang' => end($this->xml_lang)); if ((end($this->namespace) == SIMPLEPIE_NAMESPACE_ATOM_03 && in_array(end($this->element), array('title', 'tagline', 'copyright', 'info', 'summary', 'content')) && isset($attribs['']['mode']) && $attribs['']['mode'] == 'xml') || (end($this->namespace) == SIMPLEPIE_NAMESPACE_ATOM_10 && in_array(end($this->element), array('rights', 'subtitle', 'summary', 'info', 'title', 'content')) && isset($attribs['']['type']) && $attribs['']['type'] == 'xhtml')) { $this->current_xhtml_construct = 0; } } } function cdata($parser, $cdata) { if ($this->current_xhtml_construct >= 0) { $this->data['data'] .= htmlspecialchars($cdata, ENT_QUOTES, $this->encoding); } elseif ($this->feed > 1) { $this->data['data'] .= $cdata; } } function tag_close($parser, $tag) { if (!$this->feed) { return; } if ($this->current_xhtml_construct >= 0) { $this->current_xhtml_construct--; if (end($this->namespace) == SIMPLEPIE_NAMESPACE_XHTML && !in_array(end($this->element), array('area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', 'img', 'input', 'isindex', 'link', 'meta', 'param'))) { $this->data['data'] .= 'element) . '>'; } } if ($this->current_xhtml_construct == -1) { $this->data =& $this->datas[$this->feed]; array_pop($this->datas); } array_pop($this->element); array_pop($this->namespace); array_pop($this->xml_base); array_pop($this->xml_base_explicit); array_pop($this->xml_lang); $this->feed--; } function split_ns($string) { static $cache = array(); if (!isset($cache[$string])) { if ($pos = strpos($string, $this->separator)) { static $separator_length; if (!$separator_length) { $separator_length = strlen($this->separator); } $cache[$string] = array(substr($string, 0, $pos), substr($string, $pos + $separator_length)); } else { $cache[$string] = array('', $string); } } return $cache[$string]; } } /** * @todo Move to using an actual HTML parser (this will allow tags to be properly stripped, and to switch between HTML and XHTML), this will also make it easier to shortern a string while preserving HTML tags */ class SimplePie_Sanitize { // Private vars var $base; // Options var $remove_div = true; var $image_handler = ''; var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'); var $encode_instead_of_strip = false; var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'); var $strip_comments = false; var $output_encoding = 'UTF-8'; var $enable_cache = true; var $cache_location = './cache'; var $cache_name_function = 'md5'; var $cache_class = 'SimplePie_Cache'; var $file_class = 'SimplePie_File'; var $timeout = 10; var $useragent = ''; var $force_fsockopen = false; var $replace_url_attributes = array( 'a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite' ); function remove_div($enable = true) { $this->remove_div = (bool) $enable; } function set_image_handler($page = false) { if ($page) { $this->image_handler = (string) $page; } else { $this->image_handler = false; } } function pass_cache_data($enable_cache = true, $cache_location = './cache', $cache_name_function = 'md5', $cache_class = 'SimplePie_Cache') { if (isset($enable_cache)) { $this->enable_cache = (bool) $enable_cache; } if ($cache_location) { $this->cache_location = (string) $cache_location; } if ($cache_name_function) { $this->cache_name_function = (string) $cache_name_function; } if ($cache_class) { $this->cache_class = (string) $cache_class; } } function pass_file_data($file_class = 'SimplePie_File', $timeout = 10, $useragent = '', $force_fsockopen = false) { if ($file_class) { $this->file_class = (string) $file_class; } if ($timeout) { $this->timeout = (string) $timeout; } if ($useragent) { $this->useragent = (string) $useragent; } if ($force_fsockopen) { $this->force_fsockopen = (string) $force_fsockopen; } } function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style')) { if ($tags) { if (is_array($tags)) { $this->strip_htmltags = $tags; } else { $this->strip_htmltags = explode(',', $tags); } } else { $this->strip_htmltags = false; } } function encode_instead_of_strip($encode = false) { $this->encode_instead_of_strip = (bool) $encode; } function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc')) { if ($attribs) { if (is_array($attribs)) { $this->strip_attributes = $attribs; } else { $this->strip_attributes = explode(',', $attribs); } } else { $this->strip_attributes = false; } } function strip_comments($strip = false) { $this->strip_comments = (bool) $strip; } function set_output_encoding($encoding = 'UTF-8') { $this->output_encoding = (string) $encoding; } /** * Set element/attribute key/value pairs of HTML attributes * containing URLs that need to be resolved relative to the feed * * @access public * @since 1.0 * @param array $element_attribute Element/attribute key/value pairs */ function set_url_replacements($element_attribute = array('a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite')) { $this->replace_url_attributes = (array) $element_attribute; } function sanitize($data, $type, $base = '') { $data = trim($data); if ($data !== '' || $type & SIMPLEPIE_CONSTRUCT_IRI) { if ($type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML) { if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/(\w+)' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data)) { $type |= SIMPLEPIE_CONSTRUCT_HTML; } else { $type |= SIMPLEPIE_CONSTRUCT_TEXT; } } if ($type & SIMPLEPIE_CONSTRUCT_BASE64) { $data = base64_decode($data); } if ($type & SIMPLEPIE_CONSTRUCT_XHTML) { if ($this->remove_div) { $data = preg_replace('/^/', '', $data); $data = preg_replace('/<\/div>$/', '', $data); } else { $data = preg_replace('/^/', '
          ', $data); } } if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML)) { // Strip comments if ($this->strip_comments) { $data = SimplePie_Misc::strip_comments($data); } // Strip out HTML tags and attributes that might cause various security problems. // Based on recommendations by Mark Pilgrim at: // http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely if ($this->strip_htmltags) { foreach ($this->strip_htmltags as $tag) { $pcre = "/<($tag)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$tag" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>|(\/)?>)/siU'; while (preg_match($pcre, $data)) { $data = preg_replace_callback($pcre, array(&$this, 'do_strip_htmltags'), $data); } } } if ($this->strip_attributes) { foreach ($this->strip_attributes as $attrib) { $data = preg_replace('/ '. trim($attrib) .'=("|")(\w|\s|=|-|:|;|\/|\.|\?|&|,|#|!|\(|\)|\'|'|<|>|\+|{|})*("|")/i', '', $data); $data = preg_replace('/ '. trim($attrib) .'=(\'|')(\w|\s|=|-|:|;|\/|\.|\?|&|,|#|!|\(|\)|"|"|<|>|\+|{|})*(\'|')/i', '', $data); $data = preg_replace('/ '. trim($attrib) .'=(\w|\s|=|-|:|;|\/|\.|\?|&|,|#|!|\(|\)|\+|{|})*/i', '', $data); } } // Replace relative URLs $this->base = $base; foreach ($this->replace_url_attributes as $element => $attributes) { $data = $this->replace_urls($data, $element, $attributes); } // If image handling (caching, etc.) is enabled, cache and rewrite all the image tags. if (isset($this->image_handler) && ((string) $this->image_handler) !== '' && $this->enable_cache) { $images = SimplePie_Misc::get_element('img', $data); foreach ($images as $img) { if (isset($img['attribs']['src']['data'])) { $image_url = $img['attribs']['src']['data']; $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $image_url), 'spi'); if ($cache->load()) { $img['attribs']['src']['data'] = $this->image_handler . rawurlencode($img['attribs']['src']['data']); $data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data); } else { $file =& new $this->file_class($image_url, $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); $headers = $file->headers; if ($file->success && ($file->status_code == 200 || ($file->status_code > 206 && $file->status_code < 300))) { if (!$cache->save(array('headers' => $file->headers, 'body' => $file->body))) { trigger_error("$cache->name is not writeable", E_USER_WARNING); } $img['attribs']['src']['data'] = $this->image_handler . rawurlencode($img['attribs']['src']['data']); $data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data); } } } } } // Having (possibly) taken stuff out, there may now be whitespace at the beginning/end of the data $data = trim($data); } if ($type & SIMPLEPIE_CONSTRUCT_IRI) { $data = SimplePie_Misc::absolutize_url($data, $base); } if ($type & (SIMPLEPIE_CONSTRUCT_TEXT | SIMPLEPIE_CONSTRUCT_IRI)) { $data = htmlspecialchars($data, ENT_COMPAT, 'UTF-8'); } if ($this->output_encoding != 'UTF-8') { $data = SimplePie_Misc::change_encoding($data, 'UTF-8', $this->output_encoding); } } return $data; } function replace_urls($data, $tag, $attributes) { if (!is_array($this->strip_htmltags) || !in_array($tag, $this->strip_htmltags)) { $elements = SimplePie_Misc::get_element($tag, $data); foreach ($elements as $element) { if (is_array($attributes)) { foreach ($attributes as $attribute) { if (isset($element['attribs'][$attribute]['data'])) { $element['attribs'][$attribute]['data'] = SimplePie_Misc::absolutize_url($element['attribs'][$attribute]['data'], $this->base); $data = str_replace($element['full'], SimplePie_Misc::element_implode($element), $data); } } } elseif (isset($element['attribs'][$attributes]['data'])) { $element['attribs'][$attributes]['data'] = SimplePie_Misc::absolutize_url($element['attribs'][$attributes]['data'], $this->base); $data = str_replace($element['full'], SimplePie_Misc::element_implode($element), $data); } } } return $data; } function do_strip_htmltags($match) { if ($this->encode_instead_of_strip) { if (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style'))) { $match[1] = htmlspecialchars($match[1], ENT_COMPAT, 'UTF-8'); $match[2] = htmlspecialchars($match[2], ENT_COMPAT, 'UTF-8'); return "<$match[1]$match[2]>$match[3]</$match[1]>"; } else { return htmlspecialchars($match[0], ENT_COMPAT, 'UTF-8'); } } elseif (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style'))) { return $match[4]; } else { return ''; } } } ?>elracodelangela/libraries/simplepie/index.html0000755000176700017710000000005411061563475022373 0ustar essawireessawireelracodelangela/libraries/simplepie/LICENSE.txt0000755000176700017710000000300111061563475022214 0ustar essawireessawireCopyright (c) 2004-2007, Ryan Parman and Geoffrey Sneddon. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the SimplePie Team nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.elracodelangela/libraries/simplepie/README.txt0000755000176700017710000000225311061563475022077 0ustar essawireessawireSIMPLEPIE http://simplepie.org By Ryan Parman and Geoffrey Sneddon BSD-LICENSED http://www.opensource.org/licenses/bsd-license.php WHAT COMES IN THE PACKAGE? 1) simplepie.inc - The SimplePie library. This is all that's required for your pages. 2) README.txt - This document. 3) LICENSE.txt - A copy of the BSD license. 4) compatibility_test - The SimplePie compatibility test that checks your server for required settings. 5) demo - A basic feed reader demo that shows off some of SimplePie's more noticable features. 6) idn - A third-party library that SimplePie can optionally use to understand Internationalized Domain Names (IDNs). 7) test - SimplePie's unit test suite. This is only available in SVN builds. TO START THE DEMO: 1) Upload this package to your webserver. 2) Make sure that the cache folder inside of the demo folder is server-writable. 3) Navigate your browser to the demo folder. SUPPORT: For further setup and install documentation, function references, etc., visit: http://simplepie.org/wiki/ For bug reports, feature requests and other support, visit: http://simplepie.org/support/ For more insight on SimplePie development, visit: http://simplepie.org/development/elracodelangela/libraries/phpxmlrpc/0000755000176700017710000000000011061563616020417 5ustar essawireessawireelracodelangela/libraries/phpxmlrpc/compat/0000755000176700017710000000000011061563617021703 5ustar essawireessawireelracodelangela/libraries/phpxmlrpc/compat/is_a.php0000755000176700017710000000342611061563472023336 0ustar essawireessawire | // +----------------------------------------------------------------------+ // // $Id: is_a.php,v 1.2 2005/11/21 10:57:23 ggiunta Exp $ /** * Replace function is_a() * * @category PHP * @package PHP_Compat * @link http://php.net/function.is_a * @author Aidan Lister * @version $Revision: 1.2 $ * @since PHP 4.2.0 * @require PHP 4.0.0 (user_error) (is_subclass_of) */ if (!function_exists('is_a')) { function is_a($object, $class) { if (!is_object($object)) { return false; } if (get_class($object) == strtolower($class)) { return true; } else { return is_subclass_of($object, $class); } } } ?>elracodelangela/libraries/phpxmlrpc/compat/var_export.php0000755000176700017710000001011411061563472024604 0ustar essawireessawire | // +----------------------------------------------------------------------+ // // $Id: var_export.php,v 1.2 2005/11/21 10:57:23 ggiunta Exp $ /** * Replace var_export() * * @category PHP * @package PHP_Compat * @link http://php.net/function.var_export * @author Aidan Lister * @version $Revision: 1.2 $ * @since PHP 4.2.0 * @require PHP 4.0.0 (user_error) */ if (!function_exists('var_export')) { function var_export($array, $return = false, $lvl=0) { // Common output variables $indent = ' '; $doublearrow = ' => '; $lineend = ",\n"; $stringdelim = '\''; // Check the export isn't a simple string / int if (is_string($array)) { $out = $stringdelim . str_replace('\'', '\\\'', str_replace('\\', '\\\\', $array)) . $stringdelim; } elseif (is_int($array) || is_float($array)) { $out = (string)$array; } elseif (is_bool($array)) { $out = $array ? 'true' : 'false'; } elseif (is_null($array)) { $out = 'NULL'; } elseif (is_resource($array)) { $out = 'resource'; } else { // Begin the array export // Start the string $out = "array (\n"; // Loop through each value in array foreach ($array as $key => $value) { // If the key is a string, delimit it if (is_string($key)) { $key = str_replace('\'', '\\\'', str_replace('\\', '\\\\', $key)); $key = $stringdelim . $key . $stringdelim; } $val = var_export($value, true, $lvl+1); // Delimit value /*if (is_array($value)) { // We have an array, so do some recursion // Do some basic recursion while increasing the indent $recur_array = explode($newline, var_export($value, true)); $temp_array = array(); foreach ($recur_array as $recur_line) { $temp_array[] = $indent . $recur_line; } $recur_array = implode($newline, $temp_array); $value = $newline . $recur_array; } elseif (is_null($value)) { $value = 'NULL'; } else { $value = str_replace($find, $replace, $value); $value = $stringdelim . $value . $stringdelim; }*/ // Piece together the line for ($i = 0; $i < $lvl; $i++) $out .= $indent; $out .= $key . $doublearrow . $val . $lineend; } // End our string for ($i = 0; $i < $lvl; $i++) $out .= $indent; $out .= ")"; } // Decide method of output if ($return === true) { return $out; } else { echo $out; return; } } } ?>elracodelangela/libraries/phpxmlrpc/compat/array_key_exists.php0000755000176700017710000000417511061563472026012 0ustar essawireessawire | // +----------------------------------------------------------------------+ // // $Id: array_key_exists.php,v 1.1 2005/07/11 16:34:35 ggiunta Exp $ /** * Replace array_key_exists() * * @category PHP * @package PHP_Compat * @link http://php.net/function.array_key_exists * @author Aidan Lister * @version $Revision: 1.1 $ * @since PHP 4.1.0 * @require PHP 4.0.0 (user_error) */ if (!function_exists('array_key_exists')) { function array_key_exists($key, $search) { if (!is_scalar($key)) { user_error('array_key_exists() The first argument should be either a string or an integer', E_USER_WARNING); return false; } if (is_object($search)) { $search = get_object_vars($search); } if (!is_array($search)) { user_error('array_key_exists() The second argument should be either an array or an object', E_USER_WARNING); return false; } return in_array($key, array_keys($search)); } } ?>elracodelangela/libraries/phpxmlrpc/compat/index.html0000755000176700017710000000005411061563472023701 0ustar essawireessawireelracodelangela/libraries/phpxmlrpc/compat/version_compare.php0000755000176700017710000001424211061563472025614 0ustar essawireessawire | // | Aidan Lister | // +----------------------------------------------------------------------+ // // $Id: version_compare.php,v 1.1 2005/07/11 16:34:36 ggiunta Exp $ /** * Replace version_compare() * * @category PHP * @package PHP_Compat * @link http://php.net/function.version_compare * @author Philippe Jausions * @author Aidan Lister * @version $Revision: 1.1 $ * @since PHP 4.1.0 * @require PHP 4.0.0 (user_error) */ if (!function_exists('version_compare')) { function version_compare($version1, $version2, $operator = '<') { // Check input if (!is_scalar($version1)) { user_error('version_compare() expects parameter 1 to be string, ' . gettype($version1) . ' given', E_USER_WARNING); return; } if (!is_scalar($version2)) { user_error('version_compare() expects parameter 2 to be string, ' . gettype($version2) . ' given', E_USER_WARNING); return; } if (!is_scalar($operator)) { user_error('version_compare() expects parameter 3 to be string, ' . gettype($operator) . ' given', E_USER_WARNING); return; } // Standardise versions $v1 = explode('.', str_replace('..', '.', preg_replace('/([^0-9\.]+)/', '.$1.', str_replace(array('-', '_', '+'), '.', trim($version1))))); $v2 = explode('.', str_replace('..', '.', preg_replace('/([^0-9\.]+)/', '.$1.', str_replace(array('-', '_', '+'), '.', trim($version2))))); // Replace empty entries at the start of the array while (empty($v1[0]) && array_shift($v1)) {} while (empty($v2[0]) && array_shift($v2)) {} // Release state order // '#' stands for any number $versions = array( 'dev' => 0, 'alpha' => 1, 'a' => 1, 'beta' => 2, 'b' => 2, 'RC' => 3, '#' => 4, 'p' => 5, 'pl' => 5); // Loop through each segment in the version string $compare = 0; for ($i = 0, $x = min(count($v1), count($v2)); $i < $x; $i++) { if ($v1[$i] == $v2[$i]) { continue; } $i1 = $v1[$i]; $i2 = $v2[$i]; if (is_numeric($i1) && is_numeric($i2)) { $compare = ($i1 < $i2) ? -1 : 1; break; } // We use the position of '#' in the versions list // for numbers... (so take care of # in original string) if ($i1 == '#') { $i1 = ''; } elseif (is_numeric($i1)) { $i1 = '#'; } if ($i2 == '#') { $i2 = ''; } elseif (is_numeric($i2)) { $i2 = '#'; } if (isset($versions[$i1]) && isset($versions[$i2])) { $compare = ($versions[$i1] < $versions[$i2]) ? -1 : 1; } elseif (isset($versions[$i1])) { $compare = 1; } elseif (isset($versions[$i2])) { $compare = -1; } else { $compare = 0; } break; } // If previous loop didn't find anything, compare the "extra" segments if ($compare == 0) { if (count($v2) > count($v1)) { if (isset($versions[$v2[$i]])) { $compare = ($versions[$v2[$i]] < 4) ? 1 : -1; } else { $compare = -1; } } elseif (count($v2) < count($v1)) { if (isset($versions[$v1[$i]])) { $compare = ($versions[$v1[$i]] < 4) ? -1 : 1; } else { $compare = 1; } } } // Compare the versions if (func_num_args() > 2) { switch ($operator) { case '>': case 'gt': return (bool) ($compare > 0); break; case '>=': case 'ge': return (bool) ($compare >= 0); break; case '<=': case 'le': return (bool) ($compare <= 0); break; case '==': case '=': case 'eq': return (bool) ($compare == 0); break; case '<>': case '!=': case 'ne': return (bool) ($compare != 0); break; case '': case '<': case 'lt': return (bool) ($compare < 0); break; default: return; } } return $compare; } } ?>elracodelangela/libraries/phpxmlrpc/compat/is_callable.php0000755000176700017710000000355511061563472024660 0ustar essawireessawire * @version $Id: is_callable.php,v 1.3 2006/08/21 14:03:15 ggiunta Exp $ * @since PHP 4.0.6 * @require PHP 4.0.0 (true, false, etc...) * @todo add the 3rd parameter syntax... */ if (!function_exists('is_callable')) { function is_callable($var, $syntax_only=false) { if ($syntax_only) { /* from The Manual: * If the syntax_only argument is TRUE the function only verifies * that var might be a function or method. It will only reject simple * variables that are not strings, or an array that does not have a * valid structure to be used as a callback. The valid ones are * supposed to have only 2 entries, the first of which is an object * or a string, and the second a string */ return (is_string($var) || (is_array($var) && count($var) == 2 && is_string(end($var)) && (is_string(reset($var)) || is_object(reset($var))))); } else { if (is_string($var)) { return function_exists($var); } else if (is_array($var) && count($var) == 2 && is_string($method = end($var))) { $obj = reset($var); if (is_string($obj)) { $methods = get_class_methods($obj); return (bool)(is_array($methods) && in_array(strtolower($method), $methods)); } else if (is_object($obj)) { return method_exists($obj, $method); } } return false; } } } ?>elracodelangela/libraries/phpxmlrpc/compat/is_scalar.php0000755000176700017710000000274111061563472024362 0ustar essawireessawireelracodelangela/libraries/phpxmlrpc/NEWS0000755000176700017710000003271511061563472021131 0ustar essawireessawireXML-RPC for PHP version 2.2 - 2007/02/25 This release corrects a couple of bugs and adds a few minor features. * fixed: debugger errors on php installs with magic_quotes_gpc on * fixed: support for https connections via proxy * fixed: wrap_xmlrpc_method() generated code failed to properly encode php objects * improved: slightly faster encoding of data which is internally UTF-8 * improved: debugger always generates a 'null' id for jsonrpc if user omits it * new: debugger can take advantage of a graphical value builder (it has to be downloaded separately, as part of jsxmlrpc package) * new: support for the xmlrpc extension * new: server support for the system.getCapabilities xmlrpc extension * new: wrap_xmlrpc_method() accepts two new options: debug and return_on_fault XML-RPC for PHP version 2.1 - 2006/08/28 This release corrects quite a few bugs and adds some interesting new features. There is a minor security enhancement and overall speedup too. It has been tested with PHP 4.0.5 up to 4.4.4 and 5.1.5. Please note that 404pl1 is NOT supported, and has not been since 2.0. *** PLASE READ CAREFULLY BELOW *** CHANGES THAT MIGHT AFFECT DEPLOYED APPLICATIONS: The wrap_php_function and wrap_xmlrpc_method functions have been moved out of the base library file xmlrpc.inc into a file of their own: xmlrpc_wrappers.inc. You will have to include() / require() it in your scripts if you have been using those functions. For increased security, the automatic rebuilding of php object instances out of received xmlrpc structs in wrap_xmlrpc_method() has been disabled (but it can be optionally reenabled). The constructor of xmlrpcval() values has seen major changes, and it will not throw a php warning anymore when invoked using an unknown xmlrpc type: the error will only be written to php error log. Also new xmlrpcval('true', 'boolean') is not supported anymore. MAJOR IMPROVEMENTS: The new function php_xmlrpc_decode_xml() will take the xml representation of either an xmlrpc request, response or single value and