From 1f726f0f7a6a5a894f0154a7f4349f24cd29c890 Mon Sep 17 00:00:00 2001 From: agibert Date: Sat, 1 Dec 2012 16:27:04 +0000 Subject: [PATCH] Initial Release ! --- GNU-FDL.txt | 355 ++ GNU-GPL.txt | 340 ++ ReadMe.txt | 44 + ReleaseNotes.txt | 15 + ToDo.txt | 12 + html/about.txt | 3 + html/default.css | 1297 ++++++++ html/discography/ep/30-example_ep/.hardware | 5 + html/discography/ep/30-example_ep/.thanks | 1 + .../covers/example_ep-cover-1-1024.png | 0 .../covers/example_ep-cover-1-128.png | 0 .../covers/example_ep-cover-1-256.png | 0 .../covers/example_ep-cover-1-400.png | 0 .../covers/example_ep-cover-1-800.png | 0 .../covers/example_ep-cover-1-96.png | 0 .../covers/example_ep-cover-1-icon.png | 0 .../tracks/flac/01-test_track-demo_mix.flac | 0 .../tracks/mp3-192/01-test_track-demo_mix.mp3 | 0 .../tracks/mp3-320/01-test_track-demo_mix.mp3 | 0 .../tracks/ogg-256/01-test_track-demo_mix.ogg | 0 .../videos/1-test_track-demo-1040p.avi | 0 .../videos/1-test_track-demo-720p.avi | 0 .../videos/1-test_track-demo-icon.png | 0 html/lmbrowse.php | 2896 +++++++++++++++++ html/lmbrowse_config.inc | 23 + html/news.txt | 3 + html/tracks/test_track/demo_mix/lyrics.txt | 1 + 27 files changed, 4995 insertions(+) create mode 100644 GNU-FDL.txt create mode 100644 GNU-GPL.txt create mode 100644 ReadMe.txt create mode 100644 ReleaseNotes.txt create mode 100644 ToDo.txt create mode 100644 html/about.txt create mode 100644 html/default.css create mode 100644 html/discography/ep/30-example_ep/.hardware create mode 100644 html/discography/ep/30-example_ep/.thanks create mode 100644 html/discography/ep/30-example_ep/covers/example_ep-cover-1-1024.png create mode 100644 html/discography/ep/30-example_ep/covers/example_ep-cover-1-128.png create mode 100644 html/discography/ep/30-example_ep/covers/example_ep-cover-1-256.png create mode 100644 html/discography/ep/30-example_ep/covers/example_ep-cover-1-400.png create mode 100644 html/discography/ep/30-example_ep/covers/example_ep-cover-1-800.png create mode 100644 html/discography/ep/30-example_ep/covers/example_ep-cover-1-96.png create mode 100644 html/discography/ep/30-example_ep/covers/example_ep-cover-1-icon.png create mode 100644 html/discography/ep/30-example_ep/tracks/flac/01-test_track-demo_mix.flac create mode 100644 html/discography/ep/30-example_ep/tracks/mp3-192/01-test_track-demo_mix.mp3 create mode 100644 html/discography/ep/30-example_ep/tracks/mp3-320/01-test_track-demo_mix.mp3 create mode 100644 html/discography/ep/30-example_ep/tracks/ogg-256/01-test_track-demo_mix.ogg create mode 100644 html/discography/ep/30-example_ep/videos/1-test_track-demo-1040p.avi create mode 100644 html/discography/ep/30-example_ep/videos/1-test_track-demo-720p.avi create mode 100644 html/discography/ep/30-example_ep/videos/1-test_track-demo-icon.png create mode 100644 html/lmbrowse.php create mode 100644 html/lmbrowse_config.inc create mode 100644 html/news.txt create mode 100644 html/tracks/test_track/demo_mix/lyrics.txt diff --git a/GNU-FDL.txt b/GNU-FDL.txt new file mode 100644 index 0000000..b42936b --- /dev/null +++ b/GNU-FDL.txt @@ -0,0 +1,355 @@ + GNU Free Documentation License + Version 1.1, March 2000 + + Copyright (C) 2000 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. + + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +written document "free" in the sense of freedom: to assure everyone +the effective freedom to copy and redistribute it, with or without +modifying it, either commercially or noncommercially. Secondarily, +this License preserves for the author and publisher a way to get +credit for their work, while not being considered responsible for +modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work that contains a +notice placed by the copyright holder saying it can be distributed +under the terms of this License. The "Document", below, refers to any +such manual or work. Any member of the public is a licensee, and is +addressed as "you". + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (For example, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, whose contents can be viewed and edited directly and +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup has been designed to thwart or discourage +subsequent modification by readers is not Transparent. A copy that is +not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML designed for human modification. Opaque formats include +PostScript, PDF, proprietary formats that can be read and edited only +by proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML produced by some word processors for output +purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies of the Document numbering more than 100, +and the Document's license notice requires Cover Texts, you must enclose +the copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a publicly-accessible computer-network location containing a complete +Transparent copy of the Document, free of added material, which the +general network-using public has access to download anonymously at no +charge using public-standard network protocols. If you use the latter +option, you must take reasonably prudent steps, when you begin +distribution of Opaque copies in quantity, to ensure that this +Transparent copy will remain thus accessible at the stated location +until at least one year after the last time you distribute an Opaque +copy (directly or through your agents or retailers) of that edition to +the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has less than five). +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section entitled "History", and its title, and add to + it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. In any section entitled "Acknowledgements" or "Dedications", + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section as "Endorsements" + or to conflict in title with any Invariant Section. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections entitled "History" +in the various original documents, forming one section entitled +"History"; likewise combine any sections entitled "Acknowledgements", +and any sections entitled "Dedications". You must delete all sections +entitled "Endorsements." + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, does not as a whole count as a Modified Version +of the Document, provided no compilation copyright is claimed for the +compilation. Such a compilation is called an "aggregate", and this +License does not apply to the other self-contained works thus compiled +with the Document, on account of their being thus compiled, if they +are not themselves derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one quarter +of the entire aggregate, the Document's Cover Texts may be placed on +covers that surround only the Document within the aggregate. +Otherwise they must appear on covers around the whole aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License provided that you also include the +original English version of this License. In case of a disagreement +between the translation and the original English version of this +License, the original English version will prevail. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document 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. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation 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. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 + or any later version published by the Free Software Foundation; + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have no Invariant Sections, write "with no Invariant Sections" +instead of saying which ones are invariant. If you have no +Front-Cover Texts, write "no Front-Cover Texts" instead of +"Front-Cover Texts being LIST"; likewise for Back-Cover Texts. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/GNU-GPL.txt b/GNU-GPL.txt new file mode 100644 index 0000000..5b6e7c6 --- /dev/null +++ b/GNU-GPL.txt @@ -0,0 +1,340 @@ + GNU 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. diff --git a/ReadMe.txt b/ReadMe.txt new file mode 100644 index 0000000..47da78c --- /dev/null +++ b/ReadMe.txt @@ -0,0 +1,44 @@ +# $RCSfile: ReadMe.txt,v $ +# $Revision: 1.1 $ +# $Name: $ +# $Date: 2012/12/01 16:27:04 $ +# $Author: agibert $ + + + + + +LMBrowse - Langueur Monotone Browser + + + +Summary +------- +LMBrowse is a small php script which gerates dynamicaly some HTML pages in order to browse the Langueur Monotone project. + +It has been designed to manage the different parts of the project dynamicaly, expecially the discography. +It support three type of "Play": EP, LP and Oldies. +A play is composed by tracks, Covers, Videos and extras. +It support multy file format download for music, pictures and video. + +LMBrose generate the following type of pages: + - Home Page, + - About Page, + - Discography Page, + - Play (EP, LP, Oldies) Pages, + - Track Pages. + +This script is curently used to build the "Langueur Monotone Pages" on http://www.langueur-monotone.com. + + + +Configuration +------------- + - The config file is "html/lmbrowse_config.inc". Two sections are defined: Path and URL, Keywords, + + - The first section defines the different paths and URLs: + + $lmb_path: absolute path where lmbrowse is installed, + + $lmb_url: URL where lmbrowse is accessible, + + - The second section defines the HTML page keywords. + diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt new file mode 100644 index 0000000..c4a1cd5 --- /dev/null +++ b/ReleaseNotes.txt @@ -0,0 +1,15 @@ +# $RCSfile: ReleaseNotes.txt,v $ +# $Revision: 1.1 $ +# $Name: $ +# $Date: 2012/12/01 16:27:04 $ +# $Author: agibert $ + + + + + +-------------------------------------------------------------------------------- +LMBrowse V 1.0.0-1 - A. Gibert - 2012/12/01 +-------------------------------------------------------------------------------- + +First release. diff --git a/ToDo.txt b/ToDo.txt new file mode 100644 index 0000000..5b55523 --- /dev/null +++ b/ToDo.txt @@ -0,0 +1,12 @@ +# $RCSfile: ToDo.txt,v $ +# $Revision: 1.1 $ +# $Name: $ +# $Date: 2012/12/01 16:27:04 $ +# $Author: agibert $ + + + + + +- A usal, write a better documentation ;-) ! +- ... diff --git a/html/about.txt b/html/about.txt new file mode 100644 index 0000000..6ad4cad --- /dev/null +++ b/html/about.txt @@ -0,0 +1,3 @@ +This is the About text ! + +Bye Bye... diff --git a/html/default.css b/html/default.css new file mode 100644 index 0000000..9522b44 --- /dev/null +++ b/html/default.css @@ -0,0 +1,1297 @@ +html, body +{ + height: 99%; + color: white; + background-color: black; +} + +table +{ + vertical-align: top; + text-align: left; + width: 100%; + height: 100%; + table-layout: fixed; + margin-left: auto; + margin-right: auto; +} + +td +{ + vertical-align: top; + text-align: center; +} + +td.border +{ + vertical-align: top; + text-align: left; + width: 70px; + height: 70px +} + +td.menu-bg +{ + vertical-align: top; + text-align: center; + height: 20px; + background-color: transparent; + background-image: url(/images/menu-bg.png); + background-repeat: repeat-x; + background-attachment: scroll; +} + +td.menu-item +{ + vertical-align: top; + text-align: center; + height: 20px; +} + +td.body +{ + vertical-align: middle; + text-align: left; +} + +td.line-bg +{ + vertical-align: top; + text-align: center; + height: 20px; + background-color: transparent; + background-image: url(/images/line-m.png); + background-repeat: repeat-x; + background-attachment: scroll; +} + +table.list +{ + vertical-align: top; + text-align: left; + width: 100%; + height: auto; + margin-left: auto; + margin-right: auto; + table-layout: auto; +/* border: 10px solid #888888;*/ +} + + + +tr.row0 +{ + height: 10px; + background-color: #222222; + color: #FFFFFF; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 24px; + font-weight: bold; +} + +tr.row1 +{ + height: 110px; + background-color: #333333; +} + +tr.row2 +{ + height: 110px; + background-color: #222222; +} + +tr.row3 +{ + height: 25px; + background-color: #333333; +} + +tr.row4 +{ + height: 25px; + background-color: #222222; +} + + + +tr.news0, +tr.news1, +tr.news2 +{ + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; +} + +tr.news0 +{ + height: 10px; + background-color: #222222; + color: #FFFFFF; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 24px; + font-weight: bold; +} + +tr.news1 +{ + height: 50px; + background-color: #333333; +} + +tr.news2 +{ + height: 50px; + background-color: #222222; +} + + + +tr.about0, +tr.about1, +tr.about2 +{ + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; +} + +tr.about0 +{ + height: 10px; + background-color: #222222; + color: #FFFFFF; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 24px; + font-weight: bold; +} + +tr.about1 +{ + height: 50px; + background-color: #333333; +} + +tr.about2 +{ + height: 50px; + background-color: #222222; +} + + + +tr.history0, +tr.history1, +tr.history2 +{ + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; +} + +tr.history0 +{ + height: 10px; + background-color: #222222; + color: #FFFFFF; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 24px; + font-weight: bold; +} + +tr.history1 +{ + height: 50px; + background-color: #333333; +} + +tr.history2 +{ + height: 50px; + background-color: #222222; +} + + + +tr.play0, +tr.play1, +tr.play2 +{ + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; +} + +tr.play0 +{ + height: 10px; + background-color: #222222; + color: #FFFFFF; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 24px; + font-weight: bold; +} + +tr.play1 +{ + height: 110px; + background-color: #333333; +} + +tr.play2 +{ + height: 110px; + background-color: #222222; +} + + + +tr.tracks0 +{ + height: auto; + color: black; + background-color: #AAAAAA; +} + +tr.tracks1 +{ + height: auto; + background-color: #333333; +} + +tr.tracks2 +{ + height: auto; + background-color: #222222; +} + + + +tr.covers0 +{ + height: auto; + color: black; + background-color: #AAAAAA; +} + +tr.covers1 +{ + height: auto; + background-color: #333333; +} + +tr.covers2 +{ + height: auto; + background-color: #222222; +} + + + +tr.videos0 +{ + height: auto; + color: black; + background-color: #AAAAAA; +} + +tr.videos1 +{ + height: auto; + background-color: #333333; +} + +tr.videos2 +{ + height: auto; + background-color: #222222; +} + + + +tr.extras0 +{ + height: auto; + color: black; + background-color: #AAAAAA; +} + +tr.extras1 +{ + height: auto; + background-color: #333333; +} + +tr.extras2 +{ + height: auto; + background-color: #222222; +} + + + +tr.links0 +{ + height: auto; + color: white; + background-color: #222222; +} + +tr.links1 +{ + height: 32px; + background-color: #111111; +} + +tr.links2 +{ + height: 32px; + background-color: #111111; +} + + + +tr.info0 +{ + height: auto; + color: black; + background-color: #EEEEEE; +} + +tr.info1 +{ + height: auto; + background-color: #333333; +} + +tr.info2 +{ + height: auto; + background-color: #222222; +} + + + +tr.lyric1 +{ + height: auto; + background-color: #333333; +} + + + +/*--------------------------------------------*/ +/* TD */ +/*--------------------------------------------*/ + +td.col1 +{ + vertical-align: middle; +/* border: 1px solid black;*/ +} + +td.col2 +{ + vertical-align: middle; + text-align: center; + height: 30px; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + margin: 0; + font-size: 16px; + font-weight: bold; +/* border: 1px solid black;*/ +} + +td.col3 +{ + vertical-align: middle; + text-align: left; + height: 30px; +/* border: 1px solid black;*/ +} + +td.col4 +{ + vertical-align: middle; + text-align: right; + height: 30px; +/* font-size: 12px;*/ +/* border: 1px solid black;*/ + +} + +td.col5 +{ + vertical-align: middle; + text-align: left; + height: 30px; + height: 30px; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + margin: 0; + font-size: 10px; +/* border: 1px solid black;*/ +} + + + +td.news0, +td.news00, +td.news01, +td.news1, +td.news2, +td.news3, +td.news4 +{ + vertical-align: middle; + text-align: center; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 14px; +} + +td.news0 +{ + width: 96px; + background-color: #222222; +} + +td.news00 +{ + width: 10px; + background-color: #000000; +} + +td.news01 +{ + width: 20px; +} + +td.news1 +{ + width: 110px; + text-align: left; + font-size: 14px; + font-weight: bold; +} + +td.news2 +{ + font-size: 14px; + text-align: left; +} + +td.news3 +{ + font-size: 16px; + font-weight: bold; +} + +td.news4 +{ + width: 110px; +} + + + +td.about0, +td.about00, +td.about01, +td.about1, +td.about2 +{ + vertical-align: middle; + text-align: center; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 14px; +} + +td.about0 +{ + width: 96px; + background-color: #222222; +} + +td.about00 +{ + width: 10px; + background-color: #000000; +} + +td.about01 +{ + width: 20px; +} + +td.about1 +{ + text-align: left; + font-size: 14px; + font-weight: bold; +} + +td.about2 +{ +} + + + +td.history0, +td.history00, +td.history01, +td.history1, +td.history2, +td.history3 +{ + vertical-align: middle; + text-align: center; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 14px; +} + +td.history0 +{ + width: 96px; + background-color: #222222; +} + +td.history00 +{ + width: 10px; + background-color: #000000; +} + +td.history01 +{ + width: 20px; +} + +td.history1 +{ + font-weight: bold; + width: 135px; +} + +td.history2 +{ + font-weight: bold; + width: 115px; +} + +td.history3 +{ + text-align: right; +} + + + +td.play0, +td.play00, +td.play1, +td.play2, +td.play3, +td.play4 +{ + vertical-align: middle; + text-align: center; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 14px; +} + +td.play0 +{ + width: 96px; + background-color: #222222; +} + +td.play00 +{ + width: 10px; + background-color: #000000; +} + +td.play1 +{ + width: 110px; +} + +td.play2 +{ + height: 30px; + margin: 0; + font-size: 14px; + font-weight: bold; +} + +td.play3 +{ + text-align: left; + height: 30px; +} + +td.play4 +{ + width: 40%; + text-align: right; + height: 30px; + font-size: 10px; +} + + + +td.cover +{ + vertical-align: middle; + background-color: #222222; +} + + + +td.text_l +{ + vertical-align: middle; + text-align: left; +} + +td.text_r +{ + vertical-align: middle; + text-align: right; +} + +td.title_l +{ + vertical-align: middle; + text-align: left; +} + +td.title_r +{ + vertical-align: middle; + text-align: right; +} + +td.text_l +{ + vertical-align: middle; + text-align: left; +} + +td.text_r +{ + vertical-align: middle; + text-align: right; +} + + + +td.logo +{ + vertical-align: middle; + text-align: center; +} + +td.logo-l +{ + vertical-align: middle; + text-align: center; +} + +td.logo-r +{ + vertical-align: middle; + text-align: center; +} + + + +td.tracks0, +td.tracks00, +td.tracks1, +td.tracks2, +td.tracks3, +td.tracks4, +td.tracks5, +td.tracks6, +td.tracks7, +td.tracks8, +td.tracks9 +{ + vertical-align: middle; + text-align: center; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; +} + +td.tracks0 +{ + width: 96px; + background-color: #222222; +} + +td.tracks00 +{ + width: 10px; + background-color: #000000; +} + +td.tracks1 +{ + width: 30px; + text-align: center; +} + +td.tracks2 +{ + font-size: 14px; + font-weight: bold; +} + +td.tracks3 +{ + font-size: 14px; +} + +td.tracks4 +{ + font-size: 14px; +} + +td.tracks5 +{ + font-size: 10px; +} + +td.tracks6 +{ + font-size: 10px; +} + +td.tracks7 +{ + font-size: 14px; +} + +td.tracks8 +{ + font-size: 10px; +} + +td.tracks9 +{ + font-size: 14px; +} + + + +td.covers0, +td.covers00, +td.covers1, +td.covers2, +td.covers3, +td.covers4 +{ + vertical-align: middle; + text-align: left; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 14px; +} + +td.covers0 +{ + width: 96px; + text-align: center; + background-color: #222222; +} + +td.covers00 +{ + width: 10px; + text-align: center; + background-color: #000000; +} + +td.covers1 +{ + width: 110px; + text-align: center; +} + +td.covers2 +{ + text-align: center; + margin: 0; + font-size: 16px; + font-weight: bold; +} + +td.covers3 +{ + text-align: center; +} + +td.covers4 +{ + text-align: center; + font-size: 12px; +} + + + +td.videos0, +td.videos00, +td.videos1, +td.videos2, +td.videos3, +td.videos4, +td.videos5, +td.videos6 +{ + vertical-align: middle; + text-align: left; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 14px; +} + +td.videos0 +{ + width: 96px; + text-align: center; + background-color: #222222; +} + +td.videos00 +{ + width: 10px; + text-align: center; + background-color: #000000; +} + +td.videos1 +{ + width: 110px; + text-align: center; +} + +td.videos2 +{ + text-align: center; + font-size: 16px; + font-weight: bold; +} + +td.videos3 +{ + text-align: center; + font-size: 16px; + font-weight: bold; +} + +td.videos4 +{ + text-align: center; + font-size: 14px; +} + +td.videos5 +{ + text-align: center; +} + +td.videos6 +{ + text-align: center; + font-size: 12px; +} + + + +td.extras0, +td.extras00, +td.extras01, +td.extras1, +td.extras2, +td.extras3, +td.extras4, +td.extras5, +td.extras6 +{ + vertical-align: middle; + text-align: left; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 14px; +} + +td.extras0 +{ + width: 96px; + background-color: #222222; +} + +td.extras00 +{ + width: 10px; + background-color: #000000; +} + +td.extras01 +{ + width: 20px; +} + +td.extras1 +{ + width: 110px; + text-align: center; +} + +td.extras2 +{ + text-align: center; + font-size: 16px; + font-weight: bold; +} + +td.extras3 +{ + text-align: center; + font-size: 16px; + font-weight: bold; +} + +td.extras4 +{ + text-align: center; + font-weight: bold; + font-size: 16px; +} + +td.extras5 +{ + text-align: center; +} + +td.extras6 +{ + text-align: center; + font-size: 12px; +} + + + +td.links0, +td.links00, +td.links01, +td.links1, +td.links2 +{ + vertical-align: middle; + text-align: left; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + font-size: 14px; +} + +td.links0 +{ + text-align: right; + width: 96px; + background-color: #222222; + font-size: 24px; + font-weight: bold; +} + +td.links00 +{ + width: 10px; + background-color: #000000; +} + +td.links01 +{ + width: 20px; +} + +td.links1 +{ + text-align: right; +} + +td.links2 +{ + text-align: center; + width: 32px; + font-size: 16px; + font-weight: bold; +} + + + +td.info0, +td.info00, +td.info1, +td.info2 +{ + vertical-align: middle; + text-align: left; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; +} + +td.info0 +{ + width: 96px; + background-color: #222222; +} + +td.info00 +{ + width: 10px; + background-color: #000000; +} + +td.info1 +{ + width: 130px; + font-size: 16px; + font-weight: bold; +} + +td.info2 +{ + text-align: right; +} + +td.info3 +{ +} + +td.info4 +{ +} + +td.info5 +{ + font-size: 10px; +} + +td.info6 +{ + font-size: 10px; +} + +td.info7 +{ +} + +td.info8 +{ +} + +td.info9 +{ +} + + + +td.lyric0, +td.lyric00, +td.lyric1 +{ + vertical-align: middle; + text-align: center; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; +} + +td.lyric0 +{ + width: 96px; + background-color: #222222; +} + +td.lyric00 +{ + width: 10px; + background-color: #000000; +} + +td.lyric1 +{ + font-size: 14px; +} + + + +td.bottext +{ + vertical-align: top; + text-align: right; + font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; + margin: 0; + font-size: 12px; + font-weight: normal; +} + + + +td.button-item +{ + vertical-align: top; + text-align: center; + height: 26px; +} + + + +/*--------------------------------------------*/ +/* IMG */ +/*--------------------------------------------*/ + +img +{ + vertical-align: top; +} + +img.menu-item +{ + border: 0px solid; + height: 20px; + vertical-align: top; +} + + + +/*--------------------------------------------*/ +/* A */ +/*--------------------------------------------*/ + +a.menu-home_page, +a.menu-about, +a.menu-discography, +a.button-w3c-html, +a.button-w3c-css, +a.button-rx3, +a.button-safe_creative +{ + border: 0px solid; + background-repeat: no-repeat; + display: block; + + /*Transition*/ + + -webkit-transition: all 0.5s ease; + -moz-transition: all 0.5s ease; +/* o-transition: all 0.5s ease; */ + + /*Reflection*/ +/* + -webkit-box-reflect: below 0px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(.7, transparent), to(rgba(0,0,0,0.1))); +*/ +} + +a.menu-home_page:hover, +a.menu-about:hover, +a.menu-discography:hover, +a.button-w3c-html:hover, +a.button-w3c-css:hover, +a.button-rx3:hover, +a.button-safe_creative:hover +{ + /*Glow*/ + + -webkit-box-shadow: 0px 0px 20px rgba(255,255,255,0.8); + -moz-box-shadow: 0px 0px 20px rgba(255,255,255,0.8); + box-shadow: 0px 0px 20px rgba(255,255,255,0.8); + + /*Reflection*/ +/* + -webkit-box-reflect: below 0px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(.7, transparent), to(rgba(0,0,0,0.4))); +*/ +} + + + +a.menu-home_page, +a.menu-about, +a.menu-discography, +a.menu-home_page:hover, +a.menu-about:hover, +a.menu-discography:hover +{ + height: 20px; +} + +a.menu-home_page +{ + background-image: url("/images/menu-home_page-on.png"); +} + +a.menu-home_page:hover +{ + background-image: url("/images/menu-home_page-hi.png"); +} + +a.menu-about +{ + background-image: url("/images/menu-about-on.png"); +} + +a.menu-about:hover +{ + background-image: url("/images/menu-about-hi.png"); +} + +a.menu-discography +{ + background-image: url("/images/menu-discography-on.png"); +} + +a.menu-discography:hover +{ + background-image: url("/images/menu-discography-hi.png"); +} + + + +a.button-w3c-html, +a.button-w3c-css, +a.button-rx3, +a.button-safe_creative, +a.button-w3c-html:hover, +a.button-w3c-css:hover, +a.button-rx3:hover, +a.button-safe_creative:hover +{ + height: 26px; +} + +a.button-w3c-html +{ + background-image: url("/images/button-w3c-html-on.png"); +} + +a.button-w3c-html:hover +{ + background-image: url("/images/button-w3c-html-hi.png"); +} + +a.button-w3c-css +{ + background-image: url("/images/button-w3c-css-on.png"); +} + +a.button-w3c-css:hover +{ + background-image: url("/images/button-w3c-css-hi.png"); + +} + +a.button-rx3 +{ + background-image: url("/images/button-rx3-on.png"); +} + +a.button-rx3:hover +{ + background-image: url("/images/button-rx3-hi.png"); + +} + +a.button-safe_creative +{ + background-image: url("/images/button-safe_creative-on.png"); +} + +a.button-safe_creative:hover +{ + background-image: url("/images/button-safe_creative-hi.png"); + +} diff --git a/html/discography/ep/30-example_ep/.hardware b/html/discography/ep/30-example_ep/.hardware new file mode 100644 index 0000000..2fc6b89 --- /dev/null +++ b/html/discography/ep/30-example_ep/.hardware @@ -0,0 +1,5 @@ + Blah hardware Blah...
+ Blah hardware Blah...
+ Blah hardware Blah...
+ Blah hardware Blah...
+ Blah hardware Blah...
diff --git a/html/discography/ep/30-example_ep/.thanks b/html/discography/ep/30-example_ep/.thanks new file mode 100644 index 0000000..d5396c3 --- /dev/null +++ b/html/discography/ep/30-example_ep/.thanks @@ -0,0 +1 @@ + Thanks to all !
diff --git a/html/discography/ep/30-example_ep/covers/example_ep-cover-1-1024.png b/html/discography/ep/30-example_ep/covers/example_ep-cover-1-1024.png new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/covers/example_ep-cover-1-128.png b/html/discography/ep/30-example_ep/covers/example_ep-cover-1-128.png new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/covers/example_ep-cover-1-256.png b/html/discography/ep/30-example_ep/covers/example_ep-cover-1-256.png new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/covers/example_ep-cover-1-400.png b/html/discography/ep/30-example_ep/covers/example_ep-cover-1-400.png new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/covers/example_ep-cover-1-800.png b/html/discography/ep/30-example_ep/covers/example_ep-cover-1-800.png new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/covers/example_ep-cover-1-96.png b/html/discography/ep/30-example_ep/covers/example_ep-cover-1-96.png new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/covers/example_ep-cover-1-icon.png b/html/discography/ep/30-example_ep/covers/example_ep-cover-1-icon.png new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/tracks/flac/01-test_track-demo_mix.flac b/html/discography/ep/30-example_ep/tracks/flac/01-test_track-demo_mix.flac new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/tracks/mp3-192/01-test_track-demo_mix.mp3 b/html/discography/ep/30-example_ep/tracks/mp3-192/01-test_track-demo_mix.mp3 new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/tracks/mp3-320/01-test_track-demo_mix.mp3 b/html/discography/ep/30-example_ep/tracks/mp3-320/01-test_track-demo_mix.mp3 new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/tracks/ogg-256/01-test_track-demo_mix.ogg b/html/discography/ep/30-example_ep/tracks/ogg-256/01-test_track-demo_mix.ogg new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/videos/1-test_track-demo-1040p.avi b/html/discography/ep/30-example_ep/videos/1-test_track-demo-1040p.avi new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/videos/1-test_track-demo-720p.avi b/html/discography/ep/30-example_ep/videos/1-test_track-demo-720p.avi new file mode 100644 index 0000000..e69de29 diff --git a/html/discography/ep/30-example_ep/videos/1-test_track-demo-icon.png b/html/discography/ep/30-example_ep/videos/1-test_track-demo-icon.png new file mode 100644 index 0000000..e69de29 diff --git a/html/lmbrowse.php b/html/lmbrowse.php new file mode 100644 index 0000000..75b411f --- /dev/null +++ b/html/lmbrowse.php @@ -0,0 +1,2896 @@ + $value) + { + $lmb=$lmb_tab[$section_id]["lmb"]; + + foreach( $lmb as $lmb_id => $value) + { + if( $lmb_id == $lmb_id_lookup) + { + return $section_id; + } + } + } + + return ""; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_get_name( $lmb_id_lookup) +{ + global $lmb_tab; + + + foreach( $lmb_tab as $section_id => $value) + { + $lmb=$lmb_tab[$section_id]["lmb"]; + + foreach( $lmb as $lmb_id => $value) + { + if( $lmb_id == $lmb_id_lookup) + { + return $lmb[$lmb_id]["name"]; + } + } + } + + return ""; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_curverrel_get( $id) +{ + $cmd="ls -rt download/$id/*/$id*.src.rpm | sed -e 's/^download.$id.//' -e 's/.src.rpm$//'"; + $curverrel=exec($cmd); + + $tab=explode( "/", $curverrel); + $curver=$tab[0]; + + $tab=explode( "-$curver-", $curverrel); + $currel=$tab[1]; + + return( array( $curver, $currel)); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_list_get( $id, $curver, $currel) +{ + $cmd="ls download/$id/$curver/$id-*$curver-$currel* | sort | sed -e 's/^download.$id.$curver.//'"; + exec($cmd, $list); + + return( $list); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_tag_get( $lmb_id, $lmb_curver, $lmb_currel, $lmb_name, $lmb_qt) +{ + if( $lmb_name == "") + { + $lmb_name="$lmb_id-$lmb_curver-$lmb_currel.src.rpm"; + } + + $cmd="rpm -qp --qf \"$lmb_qt\" download/$lmb_id/$lmb_curver/$lmb_name | sed -e 's//\>/g'"; + exec( $cmd, $reply_tab); + + return $reply_tab; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_tab_dump( $tab, $start) +{ + + for( $i = $start; $i < count($tab); $i++) + { + echo "$tab[$i]\n"; + } +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Size Convert */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_size_convert( $size) +{ + $unit_tab = array( "b", "Kb", "Mb"); + + + for( $i = 0; $size > 1024; $i++) + { + $size = intval( $size / 1024); + } + + $size_tab["size"] = $size; + $size_tab["unit"] = $unit_tab[$i]; + + return( $size_tab); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* HTML Text Format */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_html_text_format( $input_text) +{ + $search_tab = array( + "\n", + "&" + ); + + $replace_tab = array( + "
\n ", + "&" + ); + + return( str_replace( $search_tab, $replace_tab, $input_text)); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Make Tab */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_make_tab( $tab_id, $css_id, $tab_side, $logo_path, $data) +{ + $tab_file = "tab-{$tab_id}-{$tab_side}.png"; + $image_path = "/images"; + $tab_path = "{$image_path}/{$tab_file}"; + + if( "$tab_side" == "l") + { + $logo_side="r"; + } + else + { + $logo_side="l"; + } + + $tab_tag = "\"\""; + $logo_tag = "\"\""; + + if( "$tab_side" == "l") + { + $l_tag = "{$tab_tag}"; + $r_tag = "{$logo_tag}"; + } + else + { + $l_tag = "$logo_tag"; + $r_tag = "$tab_tag"; + } + + echo " + + + + + {$l_tag} + + + + {$r_tag} + + +
  + + +"; + + echo $data; + + echo " +
+
 
+ + +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Spacer */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_spacer( $size) +{ + + echo " "; + + for( $i = 0; $i < $size; $i++) + { + echo "
"; + } + + echo " +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Menu */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_menu( $menu_id) +{ + global $lmb_url; + + + for( $i = 0; $i < 3; $i++) + { + if( $i == $menu_id) + { + $mode="off"; + } + else + { + $mode="on"; + } + + switch($i) + { + case 0: + { + if( $i == $menu_id) + { + echo " \"Home +"; + } + else + { + + echo " +"; + } + break; + } + + case 1: + { + if( $i == $menu_id) + { + echo " \"About\" +"; + } + else + { + echo " +"; + } + break; + } + + case 2: + { + if( $i == $menu_id) + { + echo " \"Discography\" +"; + } + else + { + echo " +"; + } + break; + } + + default: + { + break; + } + } + + if( $i < 2) + { + echo " \"\" +"; + } + } +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Header */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_header( $page_id, $page_name, $img_path, $img_alt, $keywords, $min_width) +{ + global $lmb_keywords; + + + $page_title = "$page_name"; + $keywords = "$lmb_keywords,$keywords"; + + + if( $min_width != 0) + { + $mw_tag = "min-width: {$min_width}px;"; + } + else + { + $mw_tag = ""; + } + +// include "$lmb_page_header"; + + echo " + + + + + + + + $page_name"; + +// include "$lmb_body_header"; + + echo " + + + + + + + + + + + + + + + + +"; + + echo " +"; + +// include "$lmb_body_1"; + + echo " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\"\"\"\"\"Langueur\"\"\"\"
\"$img_alt\"
\"\"\"\"
+ + + + + + +"; + + lmb_menu($id); + +// include "$lmb_body_2"; + + echo " + + + +
\"\"\"\"
+
+ + + + + + + +"; +// include "$lmb_body_footer"; + + echo " +
+ + +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Footer */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_footer() +{ + global $lmb_myname; + global $lmb_myver; + global $lmb_body_footer; + global $lmb_page_footer; + global $time_start; + + + echo " +
+
+
\"\" \"\"
\"\" + + + + +"; + + $time_stop = microtime_float(); + $time_elaps = intval( ( $time_stop - $time_start) * 1000) / 1000; + + echo " +"; + +// include "$lmb_page_footer"; + + echo " + +
+ + + + + + + + + + + + + + +
         
+
Page generated in $time_elaps seconds by {$lmb_myname} V {$lmb_myver}
+
\"\"
\"\"
+ + +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* News Tab */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_news_tab( ) +{ + global $lmb_url; + + + $news_file = "news.txt"; + + $line = array(); + $cmd = "sed -e 's/\t*\t/\t/g' ${news_file}"; + + exec( $cmd, $line); + + + ob_start(); + + for( $i = 0; $i < count($line); $i++) + { + $tab = explode( "\t", $line[$i]); + $css_row = ( $i + 1) % 2 + 1; + + if( count($tab) > 2) + { + $play_name = $tab[2]; + $play_type = $tab[3]; + $play_id = $tab[4]; + $play_priority = $tab[5]; + + $link_tag = ""; + $img_tag = "\"\""; + $height = 110; + $play_tag=" {$link_tag}{$play_name} + {$link_tag}{$img_tag}"; + $colspan_tag = ""; + } + else + { + $play_tag = ""; + $cover_tag = ""; + $colspan_tag = "colspan=\"3\""; + } + + echo " + + {$tab[0]} + {$tab[1]} +{$play_tag} + +"; + } + + $data = ob_get_contents(); + ob_end_clean(); + + lmb_make_tab( "news", "news", "l", "/images/lm-logo3-n-220.png", $data); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Main Body */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_main_body() +{ + + lmb_news_tab(); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Main Page */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_main_page() +{ + global $lmb_tab; + + + lmb_header( 0, "Langueur Monotone - Home Page", "/images/title-home_page.png", "Home Page", "home page", 0); + lmb_main_body(); + lmb_footer(); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* About Tab */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_about_tab( ) +{ + $about_file = "about.txt"; + $about_string = file_get_contents( "{$about_file}"); + + ob_start(); + + echo " + + "; + +// echo str_replace( "\n", "
\n ", "{$about_string}"); + echo " ".lmb_html_text_format( "{$about_string}")."
+ + + +"; + + $data = ob_get_contents(); + ob_end_clean(); + + lmb_make_tab( "about", "about", "l", "/images/lm-logo4-n-220.png", $data); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* History Tab */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_history_tab() +{ + $history_file = "history.txt"; + $history_string = file_get_contents( "{$history_file}"); + $history_tab = explode( "\n\n", "{$history_string}"); + + ob_start(); + + for( $i = 0; $i < count($history_tab); $i++) + { + $history_line = explode( "\n", "{$history_tab[$i]}"); + $css_row = ( $i + 1) % 2 + 1; + + echo " + + {$history_line[0]} + {$history_line[1]} + +
+"; + + for( $j = 2; $j < count($history_line); $j++) + { + echo " ".lmb_html_text_format( "{$history_line[$j]}")."
+"; + } + + echo "
+ + + +"; + } + + $data = ob_get_contents(); + ob_end_clean(); + + lmb_make_tab( "history", "history", "r", "/images/lm-logo4-n-220.png", $data); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* About Body */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_about_body( $lmb_tab) +{ + lmb_about_tab(); + + lmb_spacer(4); + + lmb_history_tab(); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* About Page */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_about_page() +{ + global $lmb_tab; + + + lmb_header( 1, "Langueur Monotone - About Page", "/images/title-about.png", "About", "about", 0); + lmb_about_body( $lmb_tab); + lmb_footer(); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Play Info Get */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_play_info_get( $play_type, $play_id, $play_priority) +{ + $play_path = "discography/{$play_type}/{$play_priority}-{$play_id}"; + + $cmd = "sed -e 's/\t*\t/\t/g' {$play_path}/.list"; + $line = array(); + $play_info = array(); + + exec( $cmd, $line); + + $tab = explode( "\t", $line[0]); + + $play_info["name"] = $tab[0]; + $play_info["month"] = $tab[1]; + $play_info["year"] = $tab[2]; + $play_info["comment"] = $tab[3]; + + return($play_info); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Play List Cur */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_playlist_cur( $play_type, $path, $row) +{ + global $lmb_url; + + + $line=array(); + $cmd="ls -d {$path}/??-* | sed -e 's/.*\///'"; + + exec($cmd, $line); + + for( $i = 0; $i < count($line); $i++, $row++) + { + $play_tab = explode( "-", $line[$i]); + $play_info = lmb_play_info_get( $play_type, $play_tab[1], $play_tab[0]); + $css_row = ($row+1)%2+1; + + $url = "{$lmb_url}?page=play&type={$play_type}&id={$play_tab[1]}&priority={$play_tab[0]}"; + + echo " \"\"{$play_info["name"]} {$play_info["month"]} {$play_info["year"]} {$play_info["comment"]}  +"; + } + + return ($row); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Play List Next */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_playlist_next( $play_type, $path, $row) +{ + $line=array(); + $cmd="sed -e 's/\t*\t/\t/g' ${path}/.list"; + + exec($cmd, $line); + + for( $i = 0; $i < count($line); $i++, $row++) + { + $tab=explode( "\t", $line[$i]); + + if( "{$tab[4]}" != "") + { + $icon = "/images/{$tab[4]}"; + } + else + { + $icon = "/images/unknown-cover-96.png"; + } + + $css_row=($row+1)%2+1; + + echo " \"\"{$tab[0]} {$tab[1]} {$tab[2]} {$tab[3]}  +"; + } +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Play List */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_playlist( $play_type, $side) +{ + $row = 1; + + ob_start(); + + $row = lmb_playlist_cur( $play_type, "discography/{$play_type}", $row); + $row = lmb_playlist_next( $play_type, "discography/{$play_type}", $row); + + $data = ob_get_contents(); + ob_end_clean(); + + lmb_make_tab( "{$play_type}", "play", $side, "/images/lm-logo3-n-96.png", $data); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Discography Body */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_discography_body() +{ + + /* --- EP --- */ + lmb_playlist( "ep", "l"); + + lmb_spacer( 5); + + /* --- LP --- */ + lmb_playlist( "lp", "r"); + + lmb_spacer( 5); + + /* --- Oldies --- */ + lmb_playlist( "oldies", "l"); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Discography Page */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_discography_page() +{ + global $lmb_tab; + + + lmb_header( 2, "Langueur Monotone - Discography Page", "/images/title-discography.png", "Discography", "discography", 0); + lmb_discography_body(); + lmb_footer(); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Play Introduction */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_play_intro( $play_type, $play_id, $play_priority) +{ + $play_path="discography/{$play_type}/{$play_priority}-{$play_id}"; + $cover_path="{$play_path}/covers/{$play_id}-cover"; + $logo_path="{$play_path}/logos/{$play_id}-logo"; + + echo " + + + + + + + + + + + + + + + +
+ + + + + + +
\"\"
+
+ + + + + + + + + +
Introduction 
+
+"; + include "{$play_path}/.intro"; + echo "
+
+
+ + + + + + +
\"\"
+
+ + + + + + +
\"\"
+
+ + + + + + + + + +
+
+"; + include "{$play_path}/.hardware"; + echo "
+
 Hardware
+
+ +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Track Info Get */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_track_info_get( $play_type, $play_id, $play_priority, $track_id) +{ + $play_path = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $track_path = "{$play_path}/tracks"; + $track_array = glob("{$track_path}/flac/{$track_id}-*.flac"); + $track_file = $track_array[0]; + + $line = array(); + $track_info = array(); + + $cmd="eval \$( metaflac --export-tags-to=- \"${track_file}\" | grep -v -e \".* .*=\" -e \".*-.*=\" | sed -e 's/=/=\\\"/' -e 's/$/\"/') + echo -e \"\${TRACKNUMBER}\t\$(basename ${track_file} .flac)\t\${ARTIST}\t\${ALBUM}\t\$(echo \${TITLE} | sed 's/ (.*//')\t\$(echo \${TITLE} | sed -e 's/.* (//' -e 's/)$//')\t\${COMPOSER}\t\${COMMENT}\t\$(metaflac --show-sample-rate \"${track_file}\")\t\$(metaflac --show-total-samples \"${track_file}\")\t \t\${SAFECREATIVE}\""; + + exec($cmd, $line); + + $tab = explode( "\t", $line[0]); + + $track_info["id"] = $tab[0]; + $track_info["file"] = $tab[1]; + $track_info["artist"] = $tab[2]; + $track_info["album"] = $tab[3]; + $track_info["title"] = $tab[4]; + $track_info["mix"] = $tab[5]; + $track_info["composer"] = $tab[6]; + $track_info["comment"] = $tab[7]; + $track_info["sample_rate"] = $tab[8]; + $track_info["sample_nb"] = $tab[9]; + + $total = intval( $track_info["sample_nb"] / $track_info["sample_rate"]); + $min = intval( $total / 60); + $sec = $total - $min * 60; + + $track_info["length"] = "{$min}' {$sec}\""; + $track_info["safe_creative"] = $tab[10]; + + return( $track_info); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Track File Tag Get */ +/*--------------------------------------------------------------------------------------------------------------------*/ +function lmb_track_file_tag_get( $play_type, $play_id, $play_priority, $track_id) +{ + global $lmb_url; + + + $play_path = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $track_path = "{$play_path}/tracks"; + $file_type_pat = "{$track_path}/{flac,ogg,mp3,med}*"; + $file_dir_tab = glob( "{$file_type_pat}", GLOB_BRACE); + $file_tag = ""; + + + foreach( $file_dir_tab as $file_dir) + { + $dir = basename( $file_dir); + $tab = explode( "-", $dir); + $file_type = $tab[0]; + $file_subtype = $tab[1]; + + $file_pat = "{$track_path}/{$dir}/{$track_id}-*.{$file_type}"; + $file_tab = glob( "{$file_pat}"); + $file_url = $file_tab[0]; + + $file_tag = "{$file_tag}"; + +// echo "TI: $track_id | FD: $tab[0] | FP: $file_pat | file_url: {$file_url}
"; + + if( count( glob( "{$file_url}"))) + { + if( "{$track_id}" == "00") + { + $download_url = "{$lmb_url}?page=download&type={$play_type}&id={$play_id}&priority={$play_priority}&dtype=track&ftype={$dir}"; + + $file_size = lmb_download_tracks( $play_type, $play_id, $play_priority, $dir, "SIZE"); + $size_tab = lmb_size_convert( $file_size); + } + else + { + $download_url = "{$file_url}"; + $size_tab = lmb_size_convert( filesize( "{$file_url}")); + } + + $file_tag = "{$file_tag}
{$file_type} {$file_subtype}
(${size_tab["size"]} {$size_tab["unit"]})
"; + } + + $file_tag = "{$file_tag} +"; + } + + return( "{$file_tag}"); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Track List */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_tracklist( $play_type, $play_id, $play_priority) +{ + global $lmb_url; + + + $play_path = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $cover_path = "{$play_path}/covers/{$play_id}-cover"; + $logo_path = "{$play_path}/logos/{$play_id}-logo"; + $track_path = "{$play_path}/tracks"; + $file_type_tab = array( "flac", "ogg", "mp3", "med"); + + + ob_start(); + + $track_list = glob( "{$track_path}/flac/*.flac"); + + $size=count($track_list) + 1; + $height=220/$size; + + $file_tag = lmb_track_file_tag_get( "{$play_type}", "{$play_id}", "{$play_priority}", "00"); + $title_tag = " \"\""; + + echo "    Full Album including covers {$file_tag} +"; + for( $i = 0, $row = 1; $i < count($track_list); $i++, $row++) + { + $track_id = preg_replace( "/-.*/", "", basename( "{$track_list[$i]}", ".flac")); + $track_info = lmb_track_info_get( $play_type, $play_id, $play_priority, $track_id); + + $css_row = ($row+1)%2+1; + $track_url = "{$lmb_url}?page=track&type={$play_type}&id={$play_id}&priority={$play_priority}&tid={$track_id}"; + + $file_tag = lmb_track_file_tag_get( $play_type, $play_id, $play_priority, $track_id); + + + echo " "; + + echo " {$track_info["id"]}  {$track_info["title"]}  {$track_info["mix"]}  {$track_info["length"]}  {$track_info["composer"]}  {$track_info["comment"]} {$file_tag} +"; + } + + $data = ob_get_contents(); + ob_end_clean(); + + lmb_make_tab( "tracks", "tracks", "r", "/images/lm-logo3-n-96.png", $data); + + return ($row); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* File Entry Print */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_file_entry_print( $file_tab, $format_css_id, $size_css_id, $entry_tag) +{ + echo "{$entry_tag}"; + + foreach( $file_tab as $file) + { + echo " + + + + + +
{$file["format"]}
(${file["size"]} {$file["unit"]})
+ +"; + } + + echo " +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Cover File Tab Get */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_cover_file_tab_get( $play_type, $play_id, $play_priority, $cover_id, $mode) +{ + global $lmb_url; + + + $play_path="discography/{$play_type}/{$play_priority}-{$play_id}"; + $cover_path="{$play_path}/covers"; + + $cmd = "ls {$cover_path}/{$play_id}-cover-1-*.png | sed -e 's/.*-//' -e 's/.png$//' | sort -rn"; + exec( $cmd, $cover_format_tab); + + $file_tab = array(); + + for( $i = 0; $i < count($cover_format_tab); $i++) + { + $cover_format = "{$cover_format_tab[$i]}"; + + if( "{$cover_format}" != "icon") + { + $file_url = "{$cover_path}/{$play_id}-cover-{$cover_id}-{$cover_format}.png"; + $file_tag = "{$file_tag}"; + + if( count( glob( "{$file_url}"))) + { + if( $mode == "MULTI") + { + $file_tab[$i]["url"] = "{$lmb_url}?page=download&type={$play_type}&id={$play_id}&priority={$play_priority}&dtype=cover&cformat={$cover_format}"; + + $file_size = lmb_download_covers( $play_type, $play_id, $play_priority, $cover_format, "SIZE"); + $size_tab = lmb_size_convert( $file_size); + } + else + { + $file_tab[$i]["url"] = "{$file_url}"; + $size_tab = lmb_size_convert( filesize( "{$file_url}")); + } + + $file_tab[$i]["format"] = "{$cover_format}"; + $file_tab[$i]["size"] = "{$size_tab["size"]}"; + $file_tab[$i]["unit"] = "{$size_tab["unit"]}"; + } + } + } + + return( $file_tab); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Cover List */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_coverlist( $play_type, $play_id, $play_priority) +{ + $play_path="discography/{$play_type}/{$play_priority}-{$play_id}"; + $cover_path="{$play_path}/covers/{$play_id}-cover"; + $logo_path="{$play_path}/logos/{$play_id}-logo"; + + + ob_start(); + + $cmd="ls {$cover_path}-*-icon.png | sed -e 's/-icon.png$//' -e 's/.*-//'"; + exec($cmd, $sheet_tab); + + $size=count($sheet_tab) + 1; +// $height=220/$size; +// $height=110; + $height = max( 110, ( ( 220 - 30) / count($sheet_tab))); + + + $file_tab = lmb_cover_file_tab_get( $play_type, $play_id, $play_priority, "*", "MULTI"); + + $entry_tag = " +  All the Covers  +"; + + lmb_file_entry_print( $file_tab, "covers3", "covers4", "{$entry_tag}"); + + for( $i = 0; $i < count($sheet_tab); $i++) + { + if( $i == 0) + { + $sheet_name="Front"; + } + else + { + if( $i == ( count($sheet_tab) - 1)) + { + $sheet_name="Back"; + } + else + { + $sheet_name="$i"; + } + } + + /* Cover Entry */ + + $file_tab = lmb_cover_file_tab_get( $play_type, $play_id, $play_priority, $i+1, "MONO"); + + $css_row = $i % 2 + 1; + + $entry_tag = " + \"\" +  {$sheet_name} "; + + lmb_file_entry_print( $file_tab, "covers3", "covers4", "{$entry_tag}"); + + } + + + $data = ob_get_contents(); + ob_end_clean(); + + lmb_make_tab( "covers", "covers", "l", "{$logo_path}-2-128.png", $data); + + return ($row); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Video File Tab Get */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_video_file_tab_get( $play_type, $play_id, $play_priority, $video_id, $mode) +{ + global $lmb_url; + + + $play_path="discography/{$play_type}/{$play_priority}-{$play_id}"; + $video_path="{$play_path}/videos"; + + $cmd = "ls {$video_path}/{$video_id}-*-*-*.avi | sed -e 's/.*{$play_id}-.*-//' -e 's/.avi$//' | sort -rn"; + exec( $cmd, $video_format_tab); + + $file_tab = array(); + + for( $i = 0; $i < count($video_format_tab); $i++) + { + $video_format = "{$video_format_tab[$i]}"; + $file_url = "{$video_path}/{$video_id}-*-{$video_format}.avi"; + + if( count( glob( "{$file_url}"))) + { + if( $mode == "MULTI") + { + $file_tab[$i]["url"] = "{$lmb_url}?page=download&type={$play_type}&id={$play_id}&priority={$play_priority}&dtype=video&vformat={$video_format}"; + + $file_size = lmb_download_videos( $play_type, $play_id, $play_priority, $video_format, "SIZE"); + $size_tab = lmb_size_convert( $file_size); + } + else + { + $tab = glob( "{$file_url}"); + $file_tab[$i]["url"] = "{$tab[0]}"; + + $size_tab = lmb_size_convert( filesize( "{$file_tab[$i]["url"]}")); + } + + $file_tab[$i]["format"] = "{$video_format}"; + $file_tab[$i]["size"] = "{$size_tab["size"]}"; + $file_tab[$i]["unit"] = "{$size_tab["unit"]}"; + } + } + + return( $file_tab); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Video List */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_videolist( $play_type, $play_id, $play_priority) +{ + $play_path = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $video_path = "{$play_path}/videos"; + $logo_path = "{$play_path}/logos/{$play_id}-logo"; + + ob_start(); + + $cmd="ls {$video_path}/*-icon.png | sed -e 's/-icon.png$//' -e 's/.*\///'"; + exec($cmd, $video_tab); + + if( count($video_tab) == 0) + { + echo "    + \"\" No video found...  +    +"; + } + else + { + $height = max( 110, ( ( 220 - 30) / count($video_tab))); + + $file_tab = lmb_video_file_tab_get( $play_type, $play_id, $play_priority, "*", "MULTI"); + + $entry_tag = " + +   All the Videos  +"; + + lmb_file_entry_print( $file_tab, "videos5", "videos6", $entry_tag); + + for( $i = 0; $i < count($video_tab); $i++) + { + $tab = explode( "-", $video_tab[$i]); + + $video_id = "{$tab[0]}"; + $video_track = "{$tab[1]}"; + $video_mix = "{$tab[2]}"; + + $video_track_name = ucwords( str_replace( "_", " ", "{$video_track}")); + $video_mix_name = ucwords( str_replace( "_", " ", "{$video_mix}")); + + $video_file = "{$video_id}-{$video_track}-{$video_mix}"; + + /* Video Entry */ + + $file_tab = lmb_video_file_tab_get( $play_type, $play_id, $play_priority, $i+1, "MONO"); + + $css_row = $i % 2 + 1; + + $entry_tag = " + \"\" +  {$video_id}  +  {$video_track_name}  +  {$video_mix_name}  +"; + + lmb_file_entry_print( $file_tab, "videos5", "videos6", "{$entry_tag}"); + } + } + + + $data = ob_get_contents(); + ob_end_clean(); + + lmb_make_tab( "videos", "videos", "r", "{$logo_path}-1-128.png", $data); + + return ($row); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Extra File Tab Get */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_extra_file_tab_get( $play_type, $play_id, $play_priority, $extra_id, $mode) +{ + global $lmb_url; + + + $play_path="discography/{$play_type}/{$play_priority}-{$play_id}"; + $extra_path="{$play_path}/extras"; + + $cmd = "ls {$extra_path}/{$play_id}-{$extra_id}-*.png | sed -e 's/.*-//' -e 's/.png$//' | sort -rnu"; + exec( $cmd, $extra_format_tab); + + $file_tab = array(); + + for( $i = 0; $i < count($extra_format_tab); $i++) + { + $extra_format = "{$extra_format_tab[$i]}"; + + if( "{$extra_format}" != "icon") + { + $file_url = "{$extra_path}/{$play_id}-{$extra_id}-{$extra_format}.png"; + $file_tag = "{$file_tag}"; + + if( count( glob( "{$file_url}"))) + { + if( $mode == "MULTI") + { + $file_tab[$i]["url"] = "{$lmb_url}?page=download&type={$play_type}&id={$play_id}&priority={$play_priority}&dtype=extra&eformat={$extra_id}-{$extra_format}"; + + $file_size = lmb_download_extras( $play_type, $play_id, $play_priority, $extra_format, "SIZE"); + $size_tab = lmb_size_convert( $file_size); + } + else + { + $file_tab[$i]["url"] = "{$file_url}"; + $size_tab = lmb_size_convert( filesize( "{$file_url}")); + } + + $file_tab[$i]["format"] = "{$extra_format}"; + $file_tab[$i]["size"] = "{$size_tab["size"]}"; + $file_tab[$i]["unit"] = "{$size_tab["unit"]}"; + } + } + } + + return( $file_tab); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Extra List */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_extralist( $play_type, $play_id, $play_priority) +{ + $play_path = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $extra_path = "{$play_path}/extras"; + + + ob_start(); + + $cmd="ls {$extra_path}/{$play_id}-*-*-icon.png | sed -e 's/-icon.png$//' -e 's/.*{$play_id}-.*-//' | sort -rnu"; + exec($cmd, $format_tab); + + if( count($format_tab) == 0) + { + echo "    + \"\" No extra found...  +    +"; + } + else + { + $format_nb = count($format_tab); + $title_tag = "   All the Extras  +"; + + foreach( $format_tab as $format) + { + $file_tab = lmb_extra_file_tab_get( $play_type, $play_id, $play_priority, "*-{$format}", "MULTI"); + $extra_format = str_replace( "_", "/", "{$format}"); + + $entry_tag = " +${title_tag}  {$extra_format}  +"; + + lmb_file_entry_print( $file_tab, "extras5", "extras6", "{$entry_tag}"); + + $title_tag = ""; + } + + + $cmd="ls {$extra_path}/{$play_id}-*-*-icon.png | sed -e 's/-icon.png$//' -e 's/.*{$play_id}-//'"; + exec($cmd, $extra_tab); + + $height = max( 86, ( ( 220 - 30 * $format_nb) / count($extra_tab))); + + for( $i = 0; $i < count($extra_tab); $i++) + { + $tab = explode( "-", $extra_tab[$i]); + $extra_type = ucwords( $tab[0]); + $extra_subid = $tab[1]; + $extra_format = str_replace( "_", "/", $tab[2]); + $extra_id = "{$tab[0]}-{$tab[1]}-{$tab[2]}"; + $extra_prefix = "{$extra_path}/{$play_id}-{$extra_id}"; + + /* Extra Entry */ + + $file_tab = lmb_extra_file_tab_get( "{$play_type}", "{$play_id}", "{$play_priority}", "{$extra_id}", "MONO"); + + $css_row = $i % 2 + 1; + + $entry_tag = " + \"\" +  {$extra_type}  +  {$extra_subid}  +  {$extra_format}  +"; + + lmb_file_entry_print( $file_tab, "extras5", "extras6", "{$entry_tag}"); + } + } + + $data = ob_get_contents(); + ob_end_clean(); + + lmb_make_tab( "extras", "extras", "l", "/images/lm-logo3-n-96.png", $data); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Links Tab */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_links_tab( $play_type, $play_id, $play_priority) +{ + $play_path="discography/{$play_type}/{$play_priority}-{$play_id}"; + $links_file = "{$play_path}/.links"; + + + $line = array(); + $cmd = "sed -e 's/\t*\t/\t/g' ${links_file}"; + + exec( $cmd, $line); + + echo " + + + + + + + + +
+"; + + for( $i = 0; $i < count($line); $i++) + { + $tab = explode( "\t", $line[$i]); + $css_row = ( $i + 1) % 2 + 1; + + $text = "{$tab[0]}"; + $link = htmlentities( "{$tab[1]}"); + $image = "{$tab[2]}"; + + echo " {$text}   \"\"
+"; + } + + echo "
Links 
+"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Play Last */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_play_last( $play_type, $play_id, $play_priority) +{ + $play_path="discography/{$play_type}/{$play_priority}-{$play_id}"; + + + echo " + + + + + + + + +
+ + + + + + + + + +
 Thanks
+
+"; + include "{$play_path}/.thanks"; + echo "
+
+
+"; + + lmb_links_tab( $play_type, $play_id, $play_priority); +// include "{$play_path}/.links"; + + echo "
+ +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Play Body */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_play_body( $play_type, $play_id, $play_priority) +{ + + /* --- Introduction --- */ + lmb_play_intro( $play_type, $play_id, $play_priority); + + lmb_spacer(4); + + /* --- Tracks --- */ + lmb_tracklist( $play_type, $play_id, $play_priority); + + lmb_spacer(5); + + /* --- Covers --- */ + lmb_coverlist( $play_type, $play_id, $play_priority); + + lmb_spacer(5); + + /* --- Videos --- */ + lmb_videolist( $play_type, $play_id, $play_priority); + + lmb_spacer(5); + + /* --- Etras --- */ + lmb_extralist( $play_type, $play_id, $play_priority); + + lmb_spacer(4); + + /* --- Last --- */ + lmb_play_last( $play_type, $play_id, $play_priority); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Play Type Name Get */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_play_type_name_get( $play_type_id) +{ + switch( "{$play_type_id}") + { + case "ep": + { + return( "EP"); + } + + case "lp": + { + return( "LP"); + } + + case "oldies": + { + return( "Oldies"); + } + } +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Play Name Get */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_play_name_get( $play_type, $play_id, $play_priority) +{ + $file = "discography/{$play_type}/{$play_priotiry}-{}-*"; + + switch( "{$play_type_id}") + { + case "ep": + { + return( "EP"); + } + + case "lp": + { + return( "LP"); + } + + case "oldies": + { + return( "Oldies"); + } + } +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Play Page */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_play_page( $play_type, $play_id, $play_priority) +{ + global $lmb_tab; + + + $play_info = lmb_play_info_get( $play_type, $play_id, $play_priority); + $play_name = lmb_play_type_name_get( $play_type); + $play_title = "{$play_name} - {$play_info["name"]}"; + $play_image = "{$play_type}"; + + lmb_header( 3, "Langueur Monotone - {$play_title} Page", "/images/title-{$play_image}.png", "{$play_name}", "{$play_type},{$play_info["name"]}", 0); + lmb_play_body( $play_type, $play_id, $play_priority); + lmb_footer(); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Track Info */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_track_info( $play_type, $play_id, $play_priority, $track_id) +{ + global $lmb_url; + + + $track_info = lmb_track_info_get( $play_type, $play_id, $play_priority, $track_id); + $height=220/8; + + if ($track_info["safe_creative"] != "") + { + $rowspan = 9; + } + else + { + $rowspan = 8; + } + + echo " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"; + + if ($track_info["safe_creative"] != "") + { + echo " + + + +"; + } + + echo " +
 Group Name{$track_info["artist"]}  \"\"
 Album{$track_info["album"]} 
 Track Number{$track_info["id"]} 
 Track Name{$track_info["title"]} 
 Mix Name{$track_info["mix"]} 
 Composer{$track_info["composer"]} 
 Comment{$track_info["comment"]} 
 Length{$track_info["length"]} 
 Safe CreativeLink 
+"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Track Lyrics */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_track_lyrics( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix) +{ + $play_path = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $cover_path = "{$play_path}/covers/{$play_id}-cover"; + $logo_path = "{$play_path}/logos/{$play_id}-logo"; + $track_path = "{$play_path}/tracks"; + $lyrics_file = "tracks/{$track_name}/{$track_mix}/lyrics.txt"; + + + echo " + + + + + + + +
\"\"  +
+ "; + + + if( file_exists( "{$lyrics_file}")) + { + $lyrics_string = file_get_contents( "{$lyrics_file}"); + } + else + { + $lyrics_string = "No lyrics found...\n"; + } + + echo str_replace( "\n", "
\n ", "{$lyrics_string}"); + + echo "
+
+"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* JPlayer Insert */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_jplayer_insert( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix) +{ + global $lmb_cookie_tab; + global $lmb_url; + + $play_path = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $track_path = "{$play_path}/tracks"; + $track_file_base = "{$track_id}-{$track_name}-{$track_mix}"; + $track_file_ogg = "{$track_path}/ogg-256/{$track_file_base}.ogg"; + $track_file_mp3 = "{$track_path}/mp3-192/{$track_file_base}.mp3"; + + + $solution_cookie = "jpsolution"; + $prefix_url = "{$lmb_url}?cookie_id={$solution_cookie}&cookie_value="; + $query_string = preg_replace( "/cookie_id={$solution_cookie}&cookie_value=[^&]*&/", "", "{$_SERVER['QUERY_STRING']}"); + $solution_html_url = htmlentities( "{$prefix_url}html, flash&{$query_string}"); + $solution_flash_url = htmlentities( "{$prefix_url}flash, html&{$query_string}"); + + $solution_value = $lmb_cookie_tab[$solution_cookie]; + + + echo " + + + + + + + + +
  + + + + + + + + +
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ Update Required + To play the media you will need to either update your browser to a recent version or update your Flash plugin. +
+ +
+
+"; + +/* + echo "
+"; +*/ + +/* + + echo " +"; +*/ + + echo "
 
+"; + +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Track Introduction */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_track_intro( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix) +{ + $play_path="discography/{$play_type}/{$play_priority}-{$play_id}"; + $cover_path="{$play_path}/covers/{$play_id}-cover"; + $logo_path="{$play_path}/logos/{$play_id}-logo"; + $track_path="{$play_path}/tracks"; + + $cover_size = 400; + $border1_size= $cover_size + 30; + $border2_size= $cover_size + 10; + + echo "
+ + + + + + + + + + + + + + + + + +
+ + + + + + +
\"\"
+
+ + + + + + +
+"; + + lmb_track_info( $play_type, $play_id, $play_priority, $track_id); + +// echo "
"; + + echo "
+
+ + + + + + + +
+"; + + lmb_jplayer_insert( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix); + + echo "
+
+ + + + + + + + + +
+
+"; + + lmb_track_lyrics( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix); + +echo "
+
+ + + + + + +
\"\"
+
+ +




+"; + +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Track Introduction */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_track_intro_old( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix) +{ + $play_path="discography/{$play_type}/{$play_priority}-{$play_id}"; + $cover_path="{$play_path}/covers/{$play_id}-cover"; + $logo_path="{$play_path}/logos/{$play_id}-logo"; + $track_path="{$play_path}/tracks"; + + $cover_size = 400; + $border1_size= $cover_size + 30; + $border2_size= $cover_size + 10; + + + echo "
+ + + + + + + + + + + + + + + + +
+ + + + + + +
\"\"
+
+ + + + + + +
+"; + + lmb_track_info( $play_type, $play_id, $play_priority, $track_id); + + + echo "
+
+ + + + + + lmb_jplayer_insert( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix); + +echo " + +
"; + +// \"\"
+
+ + + + + + +
\"\"
+
+ + + + + + +
+"; + + lmb_track_lyrics( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix); + +echo "
+
+ +




+"; + +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Track Download */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_track_download( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix) +{ + global $lmb_url; + + + $play_path ="discography/{$play_type}/{$play_priority}-{$play_id}"; + $logo_path ="{$play_path}/logos/{$play_id}-logo"; + $track_path ="{$play_path}/tracks"; + + $file_tag = lmb_track_file_tag_get( $play_type, $play_id, $play_priority, $track_id); + + + echo "
+ + + + + + + + + +
\"\" + + + + + + {$file_tag} + +
Download 
+
+ + +"; + + $mix_list = glob( "discography/*/*/tracks/flac/*-{$track_name}-*.flac"); + + for( $i = 0, $k = 0; $i < count( $mix_list); $i++) + { + $path_tab = explode( "/", $mix_list[$i]); + $play_tab = explode( "-", $path_tab[2]); + $track_tab = explode( "-", $path_tab[5]); + + $mix_tab[$i]["play_type"] = $path_tab[1]; + $mix_tab[$i]["play_type_name"] = lmb_play_type_name_get( $path_tab[1]); + $mix_tab[$i]["play_id"] = $play_tab[1]; + $mix_tab[$i]["play_pri"] = $play_tab[0]; + $mix_tab[$i]["track_id"] = $track_tab[0]; + + $mix_tab[$i]["play_url"] = "{$lmb_url}?page=play&type={$mix_tab[$i]["play_type"]}&id={$mix_tab[$i]["play_id"]}&priority={$mix_tab[$i]["play_pri"]}"; + $mix_tab[$i]["mix_url"] = "{$lmb_url}?page=track&type={$mix_tab[$i]["play_type"]}&id={$mix_tab[$i]["play_id"]}&priority={$mix_tab[$i]["play_pri"]}&tid={$mix_tab[$i]["track_id"]}"; + + $track_info = lmb_track_info_get( $mix_tab[$i]["play_type"], $mix_tab[$i]["play_id"], $mix_tab[$i]["play_pri"], $mix_tab[$i]["track_id"]); + + $mix_tab[$i]["track_name"] = $track_info["title"]; + $mix_tab[$i]["mix_name"] = $track_info["mix"]; + $mix_tab[$i]["play_name"] = $track_info["album"]; + } + + for( $k = 0; $k < count( $mix_tab); $k++) + { + $css_row = ( $k + 1 + count( $mix_tab)) % 2 + 3; + + echo " + + + + + +"; + } + +echo " + + + +
{$mix_tab[$k]["track_name"]}{$mix_tab[$k]["mix_name"]}{$mix_tab[$k]["play_type_name"]}{$mix_tab[$k]["play_name"]}
Mixes 
+
+ + +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Track Body */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_track_body( $play_type, $play_id, $play_priority, $track_id) +{ + $play_path = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $track_path = "{$play_path}/tracks"; + $track_file_name = glob( "{$track_path}/flac/$track_id-*.flac"); + $tab = explode( "-", basename( "{$track_file_name[0]}", ".flac")); + $track_name = $tab[1]; + $track_mix = $tab[2]; + + /* --- Introduction --- */ + lmb_track_intro_old( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix); + + /* --- Download --- */ + lmb_track_download( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Track Page */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_track_page( $play_type, $play_id, $play_priority, $track_id) +{ + global $lmb_tab; + + + $track_info = lmb_track_info_get( $play_type, $play_id, $play_priority, $track_id); + $track_title = "Track - {$track_info["title"]} ({$track_info["mix"]})"; + +// lmb_header( 4, "Langueur Monotone - Track Page", "/images/title-track.png", "Track", 962); + lmb_header( 4, "Langueur Monotone - {$track_title} Page", "/images/title-track.png", "Track", "track,{$track_info["title"]},{$track_info["title"]} {$track_info["mix"]}", 1234); + lmb_track_body( $play_type, $play_id, $play_priority, $track_id); + lmb_footer(); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Download ZIP */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_download_zip( $directory, $file_list, $mode) +{ + switch($mode) + { + case "SIZE": + { + return( exec( "cd {$directory}; du -cb ${file_list} | tail -1 | cut -f 1")); + } + + case "RSIZE": + { + return( exec( "cd {$directory}; zip -0 -j -p - ${file_list} | wc -c")); + } + + case "DUMP": + { + passthru( "cd {$directory}; zip -0 -j -p - ${file_list}"); +// passthru( "cd {$directory}; zip -0 -j -p - ${file_list} >/tmp/toto.zip"); +// readfile("/tmp/toto.zip"); +// echo "passthru( cd {$directory}; zip -0 -j -p - ${file_list});"; + break; + } + } + +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Download File */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_download_file( $play_dir, $file_list, $mode, $download_name) +{ + if( $mode == "SIZE") + { + return( lmb_download_zip( "{$play_dir}", $file_list, "SIZE")); + } + else + { + $zip_size = lmb_download_zip( "{$play_dir}", $file_list, "RSIZE"); + + header( "Content-Description: Langueur Monotone - {$download_name}"); + header( 'Content-Type: application/zip'); + header( 'Content-Disposition: attachment; filename="'."langueur_monotone-{$download_name}.zip".'"'); + header( 'Content-Length: ' . $zip_size); + + $zip_size = lmb_download_zip( "{$play_dir}", $file_list, "DUMP"); + } +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Download Tracks */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_download_tracks( $play_type, $play_id, $play_priority, $file_type, $mode) +{ + $play_dir = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $file_list = "tracks/{$file_type}/* covers/{$play_id}-*-800.png"; + + return( lmb_download_file( $play_dir, $file_list, $mode, "{$play_id}-{$file_type}")); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Download Covers */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_download_covers( $play_type, $play_id, $play_priority, $cover_format, $mode) +{ + $play_dir = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $file_list = "covers/{$play_id}-cover-*-{$cover_format}.png"; + + return( lmb_download_file( $play_dir, $file_list, $mode, "{$play_id}-{$cover_format}")); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Download Videos */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_download_videos( $play_type, $play_id, $play_priority, $video_format, $mode) +{ + $play_dir = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $file_list = "videos/*-{$video_format}.avi"; + + return( lmb_download_file( $play_dir, $file_list, $mode, "{$play_id}-{$video_format}")); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Download Extras */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_download_extras( $play_type, $play_id, $play_priority, $extra_format, $mode) +{ + $play_dir = "discography/{$play_type}/{$play_priority}-{$play_id}"; + $file_list = "extras/{$play_id}-*-{$extra_format}.png"; + + return( lmb_download_file( $play_dir, $file_list, $mode, "{$play_id}-{$extra_format}")); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_header_old( $id, $name, $summary, $curver, $currel) +{ + $page_name="Rx3 $name Home Page"; + $page_title="$page_name !"; + global $lmb_url; + global $lmb_page_header; + global $lmb_keywords; + $keywords="$lmb_keywords,$id"; + + + include "$lmb_page_header"; + + echo " + $page_name + + + +

$page_title

+

$summary

+

$curver-$currel

+ +
Rx3.Org Main Page  /  Rx3 Free Software Packaging Main Page
+ +
+ +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_body( $id, $name, $curver, $currel) +{ + global $lmb_download_http_url; + global $lmb_download_ftp_url; + + + $description = lmb_tag_get( $id, $curver, $currel, "", "%{DESCRIPTION}"); + $change_log = lmb_tag_get( $id, $curver, $currel, "", "%{CHANGELOGTIME:date} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}"); + + echo "

+
+
+

+ +
+";
+
+  lmb_tab_dump( $description, 0);
+
+  echo "    
+

+
+
+

+"; + + echo "

+
+

+ +
+
Last Release Notes:
+"; + + echo "
+";
+
+  lmb_tab_dump( $change_log, 0);
+
+  echo "    
+"; + + $lmb_list = lmb_list_get( $id, $curver, $currel); + + if( $lmb_list != "") + { + echo"
+
Sub-Package List:

"; + + for( $i = 0; $i < count($lmb_list); $i++) + { + echo "   $lmb_list[$i]"; + } + + echo "

+"; + } + + echo"
+
"; + + echo "$name changelog page   "; + echo "$name file list page   "; + echo "$name HTTP download page   "; + echo "$name FTP download page   "; + echo "
"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_page( $lmb_id, $lmb_name, $lmb_curver, $lmb_currel) +{ + $summary = lmb_tag_get( $lmb_id, $lmb_curver, $lmb_currel, "", "%{SUMMARY}"); + $lmb_summary = $summary[0]; + + lmb_header( $lmb_id, $lmb_name, $lmb_summary, $lmb_curver, $lmb_currel); + lmb_body( $lmb_id, $lmb_name, $pkg_curver, $pkg_currel); + pkg_footer(); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_cl_header( $id, $name, $curver, $currel) +{ + $page_name="Rx3 $name ChangeLog Page"; + $page_title="$page_name"; + global $lmb_url; + global $lmb_header; + global $lmb_keywords; + $keywords="$lmb_keywords,$id, rx3 $id changelog"; + + + include "$lmb_header"; + + echo " + $page_name + + + +

$page_title

+

$curver-$currel

+ +
Rx3.Org Main Page  /  Rx3 Free Software Packaging Main Page  /  Rx3 $name Home Page
+ +
+ +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_cl_body( $id, $curver, $currel) +{ + echo "
+";
+
+  $changelog_tab = lmb_tag_get( $id, $curver, $currel, "", "[\n%{CHANGELOGTIME:date}   %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n]");
+  lmb_tab_dump( $changelog_tab, 0);
+
+  echo "    
+"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_cl_page( $lmb_id, $lmb_name, $lmb_curver, $lmb_currel) +{ + lmb_cl_header( $lmb_id, $lmb_name, $lmb_curver, $lmb_currel); + lmb_cl_body( $lmb_id, $lmb_curver, $lmb_currel); + lmb_footer(); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_fl_header( $id, $name, $curver, $currel) +{ + $page_name="Rx3 $name File List Page"; + $page_title="$page_name"; + global $lmb_url; + global $lmb_header; + global $lmb_keywords; + $keywords="$lmb_keywords,$id, rx3 $id file list"; + + + include "$lmb_header"; + + echo " + $page_name + + + +

$page_title

+

$curver-$currel

+ +
Rx3.Org Main Page  /  Rx3 Free Software Packaging Main Page  /  $name Home Page
+ +
+ +"; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_fl_body( $id, $curver, $currel) +{ + $lmb_list = lmb_list_get( $id, $curver, $currel); + + if( $lmb_list != "") + { + for( $i = 0; $i < count($lmb_list); $i++) + { + echo"
Sub-Package $lmb_list[$i]:
+
";
+
+      $filelist_tab = lmb_tag_get( $id, $curver, $currel, $lmb_list[$i], "[%{FILENAMES}\n]");
+      lmb_tab_dump( $filelist_tab, 0);
+  
+      echo "    
+"; + + if( $i < count($lmb_list) - 1) + { + echo"
+"; + } + } + } + else + { + echo "
+";
+
+      $filelist_tab = lmb_tag_get( $id, $curver, $currel, "", "[%{FILENAMES}\n]");
+      lmb_tab_dump( $filelist_tab, 0);
+
+      echo "    
+"; + } +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_fl_page( $lmb_id, $lmb_name, $lmb_curver, $lmb_currel) +{ + lmb_fl_header( $lmb_id, $lmb_name, $lmb_curver, $lmb_currel); + lmb_fl_body( $lmb_id, $lmb_curver, $lmb_currel); + lmb_footer(); +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Cookies Load */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_Cookies_Load() +{ + global $lmb_cookie_tab; + + + $cookie_id = "jpsolution"; + $cookie_value = $_COOKIE[ $cookie_id]; + + if( ! isset( $cookie_value)) + { + $cookie_value = "html, flash"; + } + + $lmb_cookie_tab[ $cookie_id] = $cookie_value; +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Get Proceed */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +function lmb_get_proceed( $get_array) +{ + global $lmb_cookie_tab; + + + $cookie_id=$get_array["cookie_id"]; + + if( $cookie_id != "") + { + $cookie_value = $get_array["cookie_value"]; + + setcookie( $cookie_id, $cookie_value, time() + 360000); + $lmb_cookie_tab["$cookie_id"] = $cookie_value; + } + + + $page_id=$get_array["page"]; + + switch ($page_id) + { + case "about": + { + lmb_about_page( $lmb_tab); + break; + } + + case "discography": + { + lmb_discography_page( $lmb_tab); + break; + } + + case "play": + { + $play_type=$get_array["type"]; + $play_id=$get_array["id"]; + $play_priority=$get_array["priority"]; + + lmb_play_page( $play_type, $play_id, $play_priority); + break; + } + + case "track": + { + $play_type=$get_array["type"]; + $play_id=$get_array["id"]; + $play_priority=$get_array["priority"]; + $track_id=$get_array["tid"]; + + lmb_track_page( $play_type, $play_id, $play_priority, $track_id); + break; + } + + case "download": + { + $play_type=$get_array["type"]; + $play_id=$get_array["id"]; + $play_priority=$get_array["priority"]; + $download_type=$get_array["dtype"]; + + switch( "{$download_type}") + { + case "track": + { + $file_type=$get_array["ftype"]; + + lmb_download_tracks( $play_type, $play_id, $play_priority, $file_type, "DUMP"); + break; + } + + case "cover": + { + $cover_format=$get_array["cformat"]; + + lmb_download_covers( $play_type, $play_id, $play_priority, $cover_format, "DUMP"); + break; + } + + case "video": + { + $video_format=$get_array["vformat"]; + + lmb_download_videos( $play_type, $play_id, $play_priority, $video_format, "DUMP"); + break; + } + + case "extra": + { + $extra_format=$get_array["eformat"]; + + lmb_download_extras( $play_type, $play_id, $play_priority, $extra_format, "DUMP"); + break; + } + } + + break; + } + + default: + { + lmb_main_page( $lmb_tab); + break; + } + } +} + + + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Main */ +/*--------------------------------------------------------------------------------------------------------------------*/ + + +$lmb_cookie_tab = array(); + +lmb_cookies_load(); + +lmb_get_proceed( $_GET); + +?> diff --git a/html/lmbrowse_config.inc b/html/lmbrowse_config.inc new file mode 100644 index 0000000..6248703 --- /dev/null +++ b/html/lmbrowse_config.inc @@ -0,0 +1,23 @@ + diff --git a/html/news.txt b/html/news.txt new file mode 100644 index 0000000..9a0fcec --- /dev/null +++ b/html/news.txt @@ -0,0 +1,3 @@ +18/09/2012 Web Site creation ! +25/09/2012 Add a new EP: Exemple EP ep exemple_ep 30 +xx/xx/2012 Official Web Site opening ! diff --git a/html/tracks/test_track/demo_mix/lyrics.txt b/html/tracks/test_track/demo_mix/lyrics.txt new file mode 100644 index 0000000..4839013 --- /dev/null +++ b/html/tracks/test_track/demo_mix/lyrics.txt @@ -0,0 +1 @@ +Good lyrics...