sh-3.2# svn diff https://svn.drupal.org/drupal/drupal.org/trunk https://svn.drupal.org/drupal/drupal.org/branches/drupal6
Property changes on: themes
___________________________________________________________________
Deleted: svn:mergeinfo
Reverse-merged /drupal.org/branches/drupal6/themes:r937-1942
Property changes on: COPYRIGHT.txt
___________________________________________________________________
Deleted: svn:mergeinfo
Reverse-merged /vendor/drupal/current-patched/COPYRIGHT.txt:r252,257,262,342,368,712,715,773,907,932,1061,1292,1348,1378,1405,1421,1435,1519
Reverse-merged /drupal.org/branches/drupal6/COPYRIGHT.txt:r937-1942
Property changes on: sites/default/default.settings.php
___________________________________________________________________
Deleted: svn:mergeinfo
Reverse-merged /vendor/drupal/current-patched/sites/default/default.settings.php:r252,257,262,342,368,712,715,773,907,932,1061,1292,1348,1378,1405,1421,1435,1519
Reverse-merged /drupal.org/branches/drupal6/sites/default/default.settings.php:r937-1942
Property changes on: sites/default
___________________________________________________________________
Deleted: svn:ignore
- files
settings.php
Property changes on: sites/all/themes/bluebeach
___________________________________________________________________
Modified: svn:mergeinfo
Reverse-merged /drupal.org/branches/drupal6/sites/all/themes/bluebeach:r937-1942
Property changes on: sites/all/modules/apachesolr/SolrPhpClient
___________________________________________________________________
Added: svnmerge-integrated
+ /vendor/SolrPhpClient/current:1-1334
Property changes on: sites/all/modules/apachesolr
___________________________________________________________________
Modified: svn:mergeinfo
Reverse-merged /vendor/apachesolr/current:r1325-1562
Merged /vendor/drupal/current-patched/sites/all/modules/apachesolr:r1782-1817,1932
Modified: svnmerge-integrated
- /vendor/apachesolr/current:1-1922
+ /vendor/apachesolr/current:1-1326,1563
Index: sites/all/modules/google_analytics/LICENSE.txt
===================================================================
--- sites/all/modules/google_analytics/LICENSE.txt (.../trunk) (revision 1945)
+++ sites/all/modules/google_analytics/LICENSE.txt (.../branches/drupal6) (revision 1945)
@@ -1,274 +0,0 @@
-GNU GENERAL PUBLIC LICENSE
-
- Version 2, June 1991
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
-Cambridge, MA 02139, 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
Index: sites/all/modules/google_analytics/googleanalytics.js
===================================================================
--- sites/all/modules/google_analytics/googleanalytics.js (.../trunk) (revision 1945)
+++ sites/all/modules/google_analytics/googleanalytics.js (.../branches/drupal6) (revision 1945)
@@ -1,4 +1,4 @@
-// $Id: googleanalytics.js,v 1.3.2.6 2008/11/25 22:43:30 hass Exp $
+// $Id: googleanalytics.js,v 1.3.2.8 2009/03/04 07:25:47 hass Exp $
Drupal.behaviors.gaTrackerAttach = function(context) {
@@ -12,28 +12,30 @@
// Expression to check for download links.
var isDownload = new RegExp("\\.(" + ga.trackDownloadExtensions + ")$", "i");
- // Is the clicked URL internal?
- if (isInternal.test(this.href)) {
- // Is download tracking activated and the file extension configured for download tracking?
- if (ga.trackDownload && isDownload.test(this.href)) {
- // Download link clicked.
- var extension = isDownload.exec(this.href);
- pageTracker._trackEvent("Downloads", extension[1].toUpperCase(), this.href.replace(isInternal, ''));
+ try {
+ // Is the clicked URL internal?
+ if (isInternal.test(this.href)) {
+ // Is download tracking activated and the file extension configured for download tracking?
+ if (ga.trackDownload && isDownload.test(this.href)) {
+ // Download link clicked.
+ var extension = isDownload.exec(this.href);
+ pageTracker._trackEvent("Downloads", extension[1].toUpperCase(), this.href.replace(isInternal, ''));
+ }
+ else if (isInternalSpecial.test(this.href)) {
+ // Keep the internal URL for Google Analytics website overlay intact.
+ pageTracker._trackPageview(this.href.replace(isInternal, ''));
+ }
}
- else if (isInternalSpecial.test(this.href)) {
- // Keep the internal URL for Google Analytics website overlay intact.
- pageTracker._trackPageview(this.href.replace(isInternal, ''));
+ else {
+ if (ga.trackMailto && $(this).is("a[href^=mailto:]")) {
+ // Mailto link clicked.
+ pageTracker._trackEvent("Mails", "Click", this.href.substring(7));
+ }
+ else if (ga.trackOutgoing) {
+ // External link clicked.
+ pageTracker._trackEvent("Outgoing links", "Click", this.href);
+ }
}
- }
- else {
- if (ga.trackMailto && $(this).is("a[href^=mailto:]")) {
- // Mailto link clicked.
- pageTracker._trackEvent("Mails", "Click", this.href.substring(7));
- }
- else if (ga.trackOutgoing) {
- // External link clicked.
- pageTracker._trackEvent("Outgoing links", "Click", this.href);
- }
- }
+ } catch(err) {}
});
}
Index: sites/all/modules/google_analytics/translations/de.po
===================================================================
--- sites/all/modules/google_analytics/translations/de.po (.../trunk) (revision 1945)
+++ sites/all/modules/google_analytics/translations/de.po (.../branches/drupal6) (revision 1945)
@@ -7,8 +7,8 @@
msgstr ""
"Project-Id-Version: German translation for Google Analytics module\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-11-26 00:02+0100\n"
-"PO-Revision-Date: 2008-11-26 00:29+0100\n"
+"POT-Creation-Date: 2009-03-29 14:19+0200\n"
+"PO-Revision-Date: 2009-03-29 15:20+0100\n"
"Last-Translator: Alexander Haß\n"
"Language-Team: Alexander Hass\n"
"MIME-Version: 1.0\n"
@@ -129,8 +129,8 @@
msgstr "Es ist Ihnen untersagt, Daten, die Sie von Ihren Websites (oder von Websites eines Dritten) gesammelt haben, mit irgendwelchen persönlichen, identifizierenden Informationen, die ihren Ursprung in Ihrer Benutzung (oder der Benutzung eines Dritten) des Google Analytics Service haben, in Verbindung zu bringen (oder Dritten dies zu gestatten). Nähere Informationen befinden sich im Punkt 8.1 der Google Analytics Bedingungen."
#: googleanalytics.admin.inc:126
-msgid "Selecting one or more values is supported. To select multiple items, hold down CTRL while selecting fields."
-msgstr "Die Auswahl eines oder mehrerer Werte wird unterstützt. Zur Auswahl mehrerer Einträge muss die STRG-Taste während der Feldauswahl gedrückt gehalten werden."
+msgid "Selecting one or more values is supported. To select multiple items, hold down CTRL (PC) or ⌘ (Mac) while selecting fields."
+msgstr "Die Auswahl eines oder mehrerer Werte wird unterstützt. Zur Auswahl mehrerer Einträge muss die STRG-Taste (PC) oder ⌘ (Mac) während der Feldauswahl gedrückt gehalten werden."
#: googleanalytics.admin.inc:136
msgid "Link tracking settings"
@@ -213,54 +213,62 @@
msgstr "Sobald aktiviert, werden die Schlüsselwörter der internen Suche getrackt. Dazu muss im Google Account der interne Suchparameter search konfiguriert werden. Weitere Informationen zu Wie richte ich die Website-Suche für mein Profil ein."
#: googleanalytics.admin.inc:211
+msgid "Track AdSense ads"
+msgstr "AdSense-Anzeigen tracken"
+
+#: googleanalytics.admin.inc:212
+msgid "If checked, your AdSense ads will be tracked in your Google Analytics account."
+msgstr "Sobald aktiviert, werden die AdSense-Anzeigen im Google Analytics-Account getrackt."
+
+#: googleanalytics.admin.inc:218
msgid "Custom JavaScript code"
msgstr "Benutzerdefinierter JavaScript-Code"
-#: googleanalytics.admin.inc:214
+#: googleanalytics.admin.inc:221
msgid "You can add custom Google Analytics code snippets here. These will be added to every page that Google Analytics appears on. Before you add custom code to the below textarea's you should read Google Analytics Tracking Code - Functional Overview and the Google Analytics Tracking API documentation. Do not include the <script> tags, and always end your code with a semicolon (;)."
msgstr "Hier können spezielle Google Analytics-Codeausschnitte eingefügt werden. Diese werden zu jeder Seite hinzugefügt auf der Google Analytics erscheint. Bevor benutzerdefinierter Code in die unten aufgeführten Textfelder eingefügt wird, sollte die Dokumentation zu Google Analytics Tracking Code - Funktionale Übersicht und Google Analytics Tracking API gelesen werden. Die <script> Tags dürfen nicht eingefügt werden und der Code muss immer mit einem Semikolon (;) abschließen."
-#: googleanalytics.admin.inc:218
+#: googleanalytics.admin.inc:225
msgid "Code snippet (before)"
msgstr "Codeausschnitt (vorher)"
-#: googleanalytics.admin.inc:222
+#: googleanalytics.admin.inc:229
msgid "Code in this textarea will be added before pageTracker._trackPageview()."
msgstr "Code in diesem Textfeld wird vor pageTracker._trackPageview() eingefügt."
-#: googleanalytics.admin.inc:226
+#: googleanalytics.admin.inc:233
msgid "Code snippet (after)"
msgstr "Codeausschnitt (nachher)"
-#: googleanalytics.admin.inc:230
+#: googleanalytics.admin.inc:237
msgid "Code in this textarea will be added after pageTracker._trackPageview(). This is useful if you'd like to track a site in two accounts."
msgstr "Code in diesem Textfeld wird nach pageTracker._trackPageview() eingefügt. Dies ist nützlich, um eine Website in zwei Accounts zu tracken."
-#: googleanalytics.admin.inc:235
+#: googleanalytics.admin.inc:242
msgid "JavaScript scope"
msgstr "JavaScript-Bereich"
-#: googleanalytics.admin.inc:236
+#: googleanalytics.admin.inc:243
msgid "Warning: Google recommends adding the external JavaScript files to footer for performance reasons."
msgstr "Warnung: Aus Performancegründen empfielt Google die externen JavaScript-Dateien im Fußbereich einzufügen."
-#: googleanalytics.admin.inc:238
+#: googleanalytics.admin.inc:245
msgid "Footer"
msgstr "Fußbereich"
-#: googleanalytics.admin.inc:239
+#: googleanalytics.admin.inc:246
msgid "Header"
msgstr "Kopfbereich"
-#: googleanalytics.admin.inc:249
+#: googleanalytics.admin.inc:256
msgid "A valid Google Analytics account number is case sensitive and formatted like UA-xxxxxx-x."
msgstr "Bei der Google Analytics-Kontonummer muss die Groß- und Kleinschreibung beachtet werden und diese in der Form UA-xxxxxx-x formatiert sein."
-#: googleanalytics.admin.inc:254;257
+#: googleanalytics.admin.inc:261;264
msgid "Do not add the tracker code provided by Google into the javascript code snippets! This module already builds the tracker code based on your Google Analytics account number and settings."
msgstr "Der von Google zu Verfügung gestellte Tracker-Code darf nicht in die JavaScript-Codeausschnitte eingefügt werden! Dieses Modul erstellt schon den Tracker-Code basierend auf der Google Analytics-Kontonummer und den Einstellungen."
-#: googleanalytics.admin.inc:260;263
+#: googleanalytics.admin.inc:267;270
msgid "Do not include the <script> tags in the javascript code snippets."
msgstr "Die <script> Tags dürfen in die JavaScript-Codeausschnitte nicht eingefügt werden."
@@ -268,23 +276,35 @@
msgid "Google Analytics is a free statistics package based on the excellent Urchin system. This module provides services to better integrate Drupal with Google Analytics."
msgstr "Google Analytics ist ein kostenfreies Statistikpacket, basierend auf dem hervorragenden Urchin-System. Dieses Modul ermöglicht die bessere Integration von Drupal in Google Analytics."
-#: googleanalytics.module:179
+#: googleanalytics.module:186
msgid "Google Analytics configuration"
msgstr "Google Analytics-Konfiguration"
-#: googleanalytics.module:186
-msgid "User tracking"
-msgstr "Benutzertracking"
+#: googleanalytics.module:194
+msgid "Disable user tracking"
+msgstr "Benutzertracking deaktivieren"
-#: googleanalytics.module:207
+#: googleanalytics.module:195
+msgid "Users are tracked by default, but you are able to opt out."
+msgstr "Die Benutzer werden standardmäßig getrackt, können dies aber abschalten."
+
+#: googleanalytics.module:199
+msgid "Enable user tracking"
+msgstr "Benutzertracking aktivieren"
+
+#: googleanalytics.module:200
+msgid "Users are not tracked by default, but you are able to opt in."
+msgstr "Die Benutzer werden standardmäßig nicht getrackt, können dies aber einschalten."
+
+#: googleanalytics.module:228
msgid "Google Analytics module"
msgstr "Google Analytics-Modul"
-#: googleanalytics.module:208
+#: googleanalytics.module:229
msgid "Google Analytics module has not been configured yet. Please configure its settings from the Google Analytics settings page."
msgstr "Das Google Analytics-Modul wurde noch nicht konfiguriert. Die Einstellungen können in den Google Analytics-Einstellungen vorgenommen werden."
-#: googleanalytics.module:210
+#: googleanalytics.module:231
msgid "Not configured"
msgstr "Nicht konfiguriert"
Index: sites/all/modules/google_analytics/translations/googleanalytics.pot
===================================================================
--- sites/all/modules/google_analytics/translations/googleanalytics.pot (.../trunk) (revision 1945)
+++ sites/all/modules/google_analytics/translations/googleanalytics.pot (.../branches/drupal6) (revision 1945)
@@ -1,17 +1,17 @@
-# $Id: googleanalytics.pot,v 1.4.2.5 2008/11/25 23:04:43 hass Exp $
+# $Id: googleanalytics.pot,v 1.4.2.7 2009/03/29 12:21:27 hass Exp $
#
# LANGUAGE translation of Drupal (general)
# Copyright YEAR NAME
# Generated from files:
-# googleanalytics.admin.inc,v 1.4.2.9 2008/11/23 09:44:34 hass
-# googleanalytics.module,v 1.19.2.6 2008/10/13 21:48:49 hass
+# googleanalytics.admin.inc,v 1.4.2.12 2009/03/08 11:38:26 hass
+# googleanalytics.module,v 1.19.2.9 2009/03/29 11:03:01 hass
# googleanalytics.info,v 1.7.2.2 2008/09/18 18:39:45 hass
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2008-11-26 00:02+0100\n"
+"POT-Creation-Date: 2009-03-29 14:19+0200\n"
"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
"Last-Translator: NAME \n"
"Language-Team: LANGUAGE \n"
@@ -129,7 +129,7 @@
msgstr ""
#: googleanalytics.admin.inc:126
-msgid "Selecting one or more values is supported. To select multiple items, hold down CTRL while selecting fields."
+msgid "Selecting one or more values is supported. To select multiple items, hold down CTRL (PC) or ⌘ (Mac) while selecting fields."
msgstr ""
#: googleanalytics.admin.inc:136
@@ -213,54 +213,62 @@
msgstr ""
#: googleanalytics.admin.inc:211
+msgid "Track AdSense ads"
+msgstr ""
+
+#: googleanalytics.admin.inc:212
+msgid "If checked, your AdSense ads will be tracked in your Google Analytics account."
+msgstr ""
+
+#: googleanalytics.admin.inc:218
msgid "Custom JavaScript code"
msgstr ""
-#: googleanalytics.admin.inc:214
+#: googleanalytics.admin.inc:221
msgid "You can add custom Google Analytics code snippets here. These will be added to every page that Google Analytics appears on. Before you add custom code to the below textarea's you should read Google Analytics Tracking Code - Functional Overview and the Google Analytics Tracking API documentation. Do not include the <script> tags, and always end your code with a semicolon (;)."
msgstr ""
-#: googleanalytics.admin.inc:218
+#: googleanalytics.admin.inc:225
msgid "Code snippet (before)"
msgstr ""
-#: googleanalytics.admin.inc:222
+#: googleanalytics.admin.inc:229
msgid "Code in this textarea will be added before pageTracker._trackPageview()."
msgstr ""
-#: googleanalytics.admin.inc:226
+#: googleanalytics.admin.inc:233
msgid "Code snippet (after)"
msgstr ""
-#: googleanalytics.admin.inc:230
+#: googleanalytics.admin.inc:237
msgid "Code in this textarea will be added after pageTracker._trackPageview(). This is useful if you'd like to track a site in two accounts."
msgstr ""
-#: googleanalytics.admin.inc:235
+#: googleanalytics.admin.inc:242
msgid "JavaScript scope"
msgstr ""
-#: googleanalytics.admin.inc:236
+#: googleanalytics.admin.inc:243
msgid "Warning: Google recommends adding the external JavaScript files to footer for performance reasons."
msgstr ""
-#: googleanalytics.admin.inc:238
+#: googleanalytics.admin.inc:245
msgid "Footer"
msgstr ""
-#: googleanalytics.admin.inc:239
+#: googleanalytics.admin.inc:246
msgid "Header"
msgstr ""
-#: googleanalytics.admin.inc:249
+#: googleanalytics.admin.inc:256
msgid "A valid Google Analytics account number is case sensitive and formatted like UA-xxxxxx-x."
msgstr ""
-#: googleanalytics.admin.inc:254;257
+#: googleanalytics.admin.inc:261;264
msgid "Do not add the tracker code provided by Google into the javascript code snippets! This module already builds the tracker code based on your Google Analytics account number and settings."
msgstr ""
-#: googleanalytics.admin.inc:260;263
+#: googleanalytics.admin.inc:267;270
msgid "Do not include the <script> tags in the javascript code snippets."
msgstr ""
@@ -268,23 +276,35 @@
msgid "Google Analytics is a free statistics package based on the excellent Urchin system. This module provides services to better integrate Drupal with Google Analytics."
msgstr ""
-#: googleanalytics.module:179
+#: googleanalytics.module:186
msgid "Google Analytics configuration"
msgstr ""
-#: googleanalytics.module:186
-msgid "User tracking"
+#: googleanalytics.module:194
+msgid "Disable user tracking"
msgstr ""
-#: googleanalytics.module:207
+#: googleanalytics.module:195
+msgid "Users are tracked by default, but you are able to opt out."
+msgstr ""
+
+#: googleanalytics.module:199
+msgid "Enable user tracking"
+msgstr ""
+
+#: googleanalytics.module:200
+msgid "Users are not tracked by default, but you are able to opt in."
+msgstr ""
+
+#: googleanalytics.module:228
msgid "Google Analytics module"
msgstr ""
-#: googleanalytics.module:208
+#: googleanalytics.module:229
msgid "Google Analytics module has not been configured yet. Please configure its settings from the Google Analytics settings page."
msgstr ""
-#: googleanalytics.module:210
+#: googleanalytics.module:231
msgid "Not configured"
msgstr ""
Index: sites/all/modules/google_analytics/translations/ja.po
===================================================================
--- sites/all/modules/google_analytics/translations/ja.po (.../trunk) (revision 1945)
+++ sites/all/modules/google_analytics/translations/ja.po (.../branches/drupal6) (revision 1945)
@@ -1,19 +1,19 @@
-# $Id: ja.po,v 1.3.2.5 2008/11/26 08:29:02 imagine Exp $
+# $Id: ja.po,v 1.3.2.6 2009/03/30 04:50:10 imagine Exp $
# -----------------------------------------------------------------------------
# Japanese translation of Drupal (modules-googleanalytics)
#
-# Copyright (c) 2006-2008 Drupal Japan ( http://drupal.jp/ ) /
+# Copyright (c) 2006-2009 Drupal Japan ( http://drupal.jp/ ) /
# Takafumi ( jp.drupal@imagine **reverse order**)
#
# Generated from file:
-# googleanalytics.admin.inc,v 1.4.2.9 2008/11/23 09:44:34 hass
-# googleanalytics.module,v 1.19.2.6 2008/10/13 21:48:49 hass
+# googleanalytics.admin.inc,v 1.4.2.12 2009/03/08 11:38:26 hass
+# googleanalytics.module,v 1.19.2.8 2009/03/08 11:38:26 hass
# googleanalytics.info,v 1.7.2.2 2008/09/18 18:39:45 hass
#
# -----------------------------------------------------------------------------
msgid ""
msgstr ""
-"POT-Creation-Date: 2008-11-26 15:30+0900\n"
+"POT-Creation-Date: 2009-03-30 13:25+0900\n"
"Last-Translator: Takafumi \n"
"Language-Team: Drupal Japan\n"
"MIME-Version: 1.0\n"
@@ -130,8 +130,8 @@
msgstr "あなたが Google Analytics サービスを使用する(または第三者が利用する)にあたり、ウェブサイト(または第三者のウェブサイト)から集めたデータを、ソースを問わず個人情報と関連づけない(または第三者に関連づけさせない)ようにしてください。 詳細については「Google Analytics サービス利用規約」の「プライバシー」を参照してください。"
#: googleanalytics.admin.inc:126
-msgid "Selecting one or more values is supported. To select multiple items, hold down CTRL while selecting fields."
-msgstr "複数の値を選択することもできます。 複数のアイテムを選択するには、Ctrlキーを押下しながらフィールドを選択してください。"
+msgid "Selecting one or more values is supported. To select multiple items, hold down CTRL (PC) or ⌘ (Mac) while selecting fields."
+msgstr "複数の値を選択することもできます。 複数のアイテムを選択するには、Ctrlキー(PC)/⌘(Mac)を押下しながらフィールドを選択してください。"
#: googleanalytics.admin.inc:136
msgid "Link tracking settings"
@@ -214,54 +214,62 @@
msgstr "チェックを入れると、内部の検索キーワードがトラックされます。内部のクエリパラメータの検索を使用するには、Googleアカウントの設定が必要となります。 詳細については「サイト内検索を設定する方法」を参照してください。"
#: googleanalytics.admin.inc:211
+msgid "Track AdSense ads"
+msgstr "AdSense広告のトラック"
+
+#: googleanalytics.admin.inc:212
+msgid "If checked, your AdSense ads will be tracked in your Google Analytics account."
+msgstr "チェックを入れると、AdSense広告がGoogle Analyticsアカウントでトラックされます。"
+
+#: googleanalytics.admin.inc:218
msgid "Custom JavaScript code"
msgstr "カスタムJavaScriptコード"
-#: googleanalytics.admin.inc:214
+#: googleanalytics.admin.inc:221
msgid "You can add custom Google Analytics code snippets here. These will be added to every page that Google Analytics appears on. Before you add custom code to the below textarea's you should read Google Analytics Tracking Code - Functional Overview and the Google Analytics Tracking API documentation. Do not include the <script> tags, and always end your code with a semicolon (;)."
msgstr "ここに、カスタムGoogle Analyticsのコードスニペットを追加することができます。 これらはGoogle Analyticsが現れる、すべてのページに追加されます。 以下のテキストエリアにカスタムコードを加える前に、Google Analytics Tracking Code - Functional Overview と Google Analytics Tracking API のドキュメントを読むべきです。 <script> タグは含めず、 コードの終端には常にセミコロン (;) を付加してください。"
-#: googleanalytics.admin.inc:218
+#: googleanalytics.admin.inc:225
msgid "Code snippet (before)"
msgstr "コードスニペット(前)"
-#: googleanalytics.admin.inc:222
+#: googleanalytics.admin.inc:229
msgid "Code in this textarea will be added before pageTracker._trackPageview()."
msgstr "このテキストエリアのコードは、pageTracker._trackPageview() の前に追加されます。"
-#: googleanalytics.admin.inc:226
+#: googleanalytics.admin.inc:233
msgid "Code snippet (after)"
msgstr "コードスニペット(後)"
-#: googleanalytics.admin.inc:230
+#: googleanalytics.admin.inc:237
msgid "Code in this textarea will be added after pageTracker._trackPageview(). This is useful if you'd like to track a site in two accounts."
msgstr "このテキストエリアのコードは、pageTracker._trackPageview() の後に追加されます。 これは2つのアカウントでサイトをトラックしたい場合に役立ちます。"
-#: googleanalytics.admin.inc:235
+#: googleanalytics.admin.inc:242
msgid "JavaScript scope"
msgstr "JavaScriptのスコープ"
-#: googleanalytics.admin.inc:236
+#: googleanalytics.admin.inc:243
msgid "Warning: Google recommends adding the external JavaScript files to footer for performance reasons."
msgstr "警告: Google はパフォーマンスの理由から、フッタに外部JavaScriptを追加することを推奨しています。"
-#: googleanalytics.admin.inc:238
+#: googleanalytics.admin.inc:245
msgid "Footer"
msgstr "フッタ"
-#: googleanalytics.admin.inc:239
+#: googleanalytics.admin.inc:246
msgid "Header"
msgstr "ヘッダ"
-#: googleanalytics.admin.inc:249
+#: googleanalytics.admin.inc:256
msgid "A valid Google Analytics account number is case sensitive and formatted like UA-xxxxxx-x."
msgstr "有効なGoogle Analyticsのアカウント番号は大文字・小文字が区別され、UA-xxxxxx-x のような形式です。"
-#: googleanalytics.admin.inc:254;257
+#: googleanalytics.admin.inc:261;264
msgid "Do not add the tracker code provided by Google into the javascript code snippets! This module already builds the tracker code based on your Google Analytics account number and settings."
msgstr "Javascriptコードスニペット内に、Googleから提供されたトラッカーコードを加えないでください! このモジュールは、Google Analyticsのアカウント番号と設定に基づいたトラッカーコードをすでに構築しています。"
-#: googleanalytics.admin.inc:260;263
+#: googleanalytics.admin.inc:267;270
msgid "Do not include the <script> tags in the javascript code snippets."
msgstr "Javascriptコードスニペットに <script> タグを含めないでください。"
@@ -269,23 +277,35 @@
msgid "Google Analytics is a free statistics package based on the excellent Urchin system. This module provides services to better integrate Drupal with Google Analytics."
msgstr "Google Analyticsは、優れたUrchinシステムに基づいたフリーの統計パッケージです。 このモジュールは、DrupalとGoogle Analyticsをより良く統合するためのサービスを提供します。"
-#: googleanalytics.module:179
+#: googleanalytics.module:186
msgid "Google Analytics configuration"
msgstr "Google Analyticsの設定"
-#: googleanalytics.module:186
-msgid "User tracking"
-msgstr "ユーザのトラッキング"
+#: googleanalytics.module:194
+msgid "Disable user tracking"
+msgstr "ユーザのトラッキングを無効化"
-#: googleanalytics.module:207
+#: googleanalytics.module:195
+msgid "Users are tracked by default, but you are able to opt out."
+msgstr "デフォルトでユーザはトラックされますが、あなたはそれを拒否することもできます。"
+
+#: googleanalytics.module:199
+msgid "Enable user tracking"
+msgstr "ユーザのトラッキングを有効化"
+
+#: googleanalytics.module:200
+msgid "Users are not tracked by default, but you are able to opt in."
+msgstr "デフォルトでユーザはトラックされませんが、あなたはそれを許可することもできます。"
+
+#: googleanalytics.module:228
msgid "Google Analytics module"
msgstr "Google Analytics モジュール"
-#: googleanalytics.module:208
+#: googleanalytics.module:229
msgid "Google Analytics module has not been configured yet. Please configure its settings from the Google Analytics settings page."
msgstr "Google Analyticsモジュールは未設定です。 Google Analyticsの設定ページで設定を行ってください。"
-#: googleanalytics.module:210
+#: googleanalytics.module:231
msgid "Not configured"
msgstr "設定されていません"
Index: sites/all/modules/google_analytics/translations/pl.po
===================================================================
--- sites/all/modules/google_analytics/translations/pl.po (.../trunk) (revision 1945)
+++ sites/all/modules/google_analytics/translations/pl.po (.../branches/drupal6) (revision 1945)
@@ -1,18 +1,18 @@
-# $Id: pl.po,v 1.1.4.2 2008/10/28 18:31:48 hass Exp $
+# $Id: pl.po,v 1.1.4.4 2009/03/29 15:35:46 kuling Exp $
#
-# LANGUAGE translation of Drupal (general)
-# Copyright YEAR NAME
+# Polski / Polish translation of Drupal (google_analytics.module)
+# Copyright 2008
# Generated from files:
-# googleanalytics.admin.inc,v 1.2.2.43 2008/05/31 08:14:08 hass
-# googleanalytics.module,v 1.16.2.44 2008/05/17 15:47:52 hass
-# googleanalytics.info,v 1.5.2.3 2007/12/30 20:42:58 hass
+# googleanalytics.admin.inc,v 1.4.2.12 2009/03/08 11:38:26 hass
+# googleanalytics.module,v 1.19.2.9 2009/03/29 11:03:01 hass
+# googleanalytics.info,v 1.7.2.2 2008/09/18 18:39:45 hass
#
msgid ""
msgstr ""
-"Project-Id-Version: 1\n"
-"POT-Creation-Date: 2006-10-19 09:48+0200\n"
-"PO-Revision-Date: 2008-09-26 09:42+0100\n"
-"Last-Translator: Bartlomiej Opajdowski \n"
+"Project-Id-Version: google_analytics 6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-12-29 07:49-0600\n"
+"PO-Revision-Date: 2008-12-30 11:00+0100\n"
+"Last-Translator: Tomasz Kulig \n"
"Language-Team: optionall.pl \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
@@ -23,7 +23,7 @@
#: googleanalytics.admin.inc:15
msgid "General settings"
-msgstr "Główne ustawienia"
+msgstr "Ustawienia podstawowe"
#: googleanalytics.admin.inc:21
msgid "Google Analytics account number"
@@ -31,40 +31,40 @@
#: googleanalytics.admin.inc:26
msgid "The account number is unique to the websites domain. Click the Edit link in your Google Analytics account next to the appropriate profile on the Analytics Settings page, then select Check Status at the top-right of the table to find the account number (UA-xxxx-x) of your site. You can obtain a user account from the Google Analytics website."
-msgstr "Numer konta jest unikalny dla domeny. W Ustawieniach Analytics kliknij Edytuj na wybranym profilu witryny , następnie wybierz Sprawdź status znajdujący się w prawej górnej części tabeli i znajdz numer (UA-xxxx-x) Twojego profilu witryny. Konto możesz utworzyć na Google Analytics."
+msgstr "Numer konta jest unikalny dla domeny. Na stronie Google Analytics w Ustawieniach Analytics kliknij Edytuj dla wybranego profilu witryny, następnie wybierz Sprawdź status znajdujący się w prawej górnej części tabeli i znajdź numer (UA-xxxx-x). Konto możesz utworzyć na Google Analytics."
#: googleanalytics.admin.inc:32
msgid "User specific tracking settings"
-msgstr "Własne ustawienia śledzenia"
+msgstr "Ustawienia dotyczące śledzenia użytkowników"
#: googleanalytics.admin.inc:37
msgid "Custom tracking settings"
-msgstr "Własne ustawienia śledzenia"
+msgstr "Ustawienia śledzenia"
#: googleanalytics.admin.inc:39
msgid "Users cannot control whether they are tracked or not."
-msgstr "Uzytkownik nie może kontrolować czy będzie śledzony czy nie."
+msgstr "Użytkownicy nie mogą kontrolować, czy będą śledzeni czy nie."
#: googleanalytics.admin.inc:40
msgid "Track users by default, but let individual users to opt out."
-msgstr "Domyślnie szpieguje użytkowników, ale zezwala użytkownikowi to wyłączyć."
+msgstr "Domyślnie śledzi użytkowników, ale zezwala poszczególnym użytkownikom tą opcję wyłączyć."
#: googleanalytics.admin.inc:41
msgid "Do not track users by default, but let individual users to opt in."
-msgstr "Domyślnie nie śledź użytkownika, ale zezwala użytkownikowi to włączyć. "
+msgstr "Domyślnie nie śledzi użytkowników, ale zezwala poszczególnym użytkownikom tą opcję włączyć. "
#: googleanalytics.admin.inc:43
msgid "Allow individual users to customize the visibility of tracking in their account settings. Only users with %permission permission are allowed to set their own preference."
-msgstr "Zezwól użytkownikowi na własne ustawienia widoczności śledzenia jego konta. Tylko użytkownicy z uprawnieniami %permission mogą dostosowywać swoje profile zgodnie z preferencjami."
+msgstr "Zezwala użytkownikom na konfigurowanie śledzenia w formularzu edycji ustawień konta. Tylko użytkownicy z uprawnieniami %permission mogą dostosowywać swoje profile zgodnie z preferencjami."
#: googleanalytics.admin.inc:43
-#: googleanalytics.module:22
+#: googleanalytics.module:23
msgid "opt-in or out of tracking"
-msgstr "Włączanie lub wyłączanie śledzenia"
+msgstr "włączanie lub wyłączanie śledzenia"
#: googleanalytics.admin.inc:50
msgid "Role specific tracking settings"
-msgstr "Określenie ustawień śledzenia dla roli"
+msgstr "Ustawień śledzenia dla określonych ról"
#: googleanalytics.admin.inc:61
msgid "Add tracking for specific roles"
@@ -72,11 +72,11 @@
#: googleanalytics.admin.inc:64
msgid "Add tracking only for the selected role(s). If none of the roles are selected, all users will be tracked. If a user has any of the roles checked, that user will be tracked."
-msgstr "Śledzi tylko wybrane role. Jeśli nie wybierzemy żadnej roli, wszyscy użytkownicy będą śledzeni. Jeśli użytkownik ma zaznaczoną którąkolwiek ze swoich ról, będzie śledzony."
+msgstr "Śledzi tylko wybrane role. Jeśli nie zostanie wybrana żadna rola, wówczas wszyscy użytkownicy będą śledzeni. Jeśli użytkownik ma zaznaczoną którąkolwiek ze swoich ról, będzie śledzony."
#: googleanalytics.admin.inc:70
msgid "Page specific tracking settings"
-msgstr "Określenie ustawień śledzenia dla strony"
+msgstr "Ustawienia śledzenia dla określonych stron"
#: googleanalytics.admin.inc:85
msgid "Add to every page except the listed pages."
@@ -88,15 +88,15 @@
#: googleanalytics.admin.inc:86
msgid "Enter one page per line as Drupal paths. The '*' character is a wildcard. Example paths are %blog for the blog page and %blog-wildcard for every personal blog. %front is the front page."
-msgstr "Wprowadz jeden adres strony w każdej z lini jako ścieżkę Drupala. '*' jest dowolnym ciągiem znaków. Na przykład ścieżka %blog dla strony blogów i %blog-* dla blogów użytkowników. %front jest stroną główną."
+msgstr "Adres każdej strony wprowadza się w osobnej linii, podając ścieżki w formacie Drupala. Znak '*' zastępuje dowolną ilość znaków. Przykłady ścieżek: %blog dla strony bloga i %blog-wildcard dla każdego osobistego bloga użytkowników. %front oznacza stronę główną."
#: googleanalytics.admin.inc:89
msgid "Add if the following PHP code returns TRUE (PHP-mode, experts only)."
-msgstr "Dodaj jeśli następujący kod PHP zwraca Prawda(Tryb PHP tylko dla ekspertów)."
+msgstr "Dodaj jeśli następujący kod PHP zwraca Prawda (tryb PHP tylko dla ekspertów)."
#: googleanalytics.admin.inc:90
msgid "If the PHP-mode is chosen, enter PHP code between %php. Note that executing incorrect PHP-code can break your Drupal site."
-msgstr "Jeśli został wybrany tryb PHP, wpisz kod PHP pomiędzy %php. Uwaga, nie prawidłowy kod PHP może uszkodzić Twoją drupalową witrynę."
+msgstr "Jeśli wybrano tryb PHP, kod należy umieścić wewnątrz znaków %php. Warto wiedzieć, że uruchamianie niepoprawnie napisanego kodu PHP może spowodować poważne błędy w witrynie."
#: googleanalytics.admin.inc:94
msgid "Add tracking to specific pages"
@@ -106,200 +106,228 @@
msgid "Pages"
msgstr "Strony"
-#: googleanalytics.admin.inc:109
+#: googleanalytics.admin.inc:110
msgid "User segmentation settings"
msgstr "Ustawienia podziału użytkowników"
#: googleanalytics.admin.inc:115
-msgid "User identifier"
-msgstr "Identyfikator użytkownika"
-
-#: googleanalytics.admin.inc:116
-msgid "User name"
-msgstr "Nazwa użytkownika"
-
-#: googleanalytics.admin.inc:117
msgid "User roles"
msgstr "Role użytkownika"
-#: googleanalytics.admin.inc:128
+#: googleanalytics.admin.inc:125
msgid "Add segmentation information to tracking code"
msgstr "Dodaje informację o podziałach do kodu śledzenia"
-#: googleanalytics.admin.inc:129
+#: googleanalytics.admin.inc:126
msgid "Segment users based on different properties, additionally to the basic IP address based tracking provided by Google Analytics."
-msgstr "Dzieli użytkowników bazując na ich właściwościach bazujących na IP użytkownika poprzez Google Analytics."
+msgstr "Dzieli użytkowników bazując na ich właściwościach, dodatkowo do podstawowego śledzenia bazującego na IP użytkownika dostarczanego przez Google Analytics."
-#: googleanalytics.admin.inc:129
+#: googleanalytics.admin.inc:126
msgid "Enable the profile module to be able to use profile fields for more granular tracking."
-msgstr "Włącz profil modułu aby móc używać pól do bardziej szczegółowego śledzenia."
+msgstr "Włącz moduł Profile, aby móc używać pól profilu do bardziej szczegółowego śledzenia."
-#: googleanalytics.admin.inc:129
-msgid "Selecting one or more values is supported. To select multiple items, hold down CTRL while selecting fields."
-msgstr "Możesz wybrać jedną bądz wiele wartości. Chcąc wybrać wiele elementów trzymaj klawisz CTRL podczas zaznaczania."
+#: googleanalytics.admin.inc:126
+msgid "Make sure you will not associate (or permit any third party to associate) any data gathered from Your Website(s) (or such third parties' website(s)) with any personally identifying information from any source as part of Your use (or such third parties' use) of the Google Analytics service. For more information see section 8.1 in the Google Analytics terms of use."
+msgstr "Upewnij się, że nie będziesz łączył (ani nie zezwolisz żadnej osobie trzeciej na łączenie) jakichkolwiek danych zbieranych z Witryny Internetowej (Witryn Internetowych) (lub z witryny internetowej (witryn internetowych) takich osób trzecich) z żadnymi informacjami umożliwiającymi identyfikację danej osoby z jakiegokolwiek źródła w ramach korzystania z Usługi Google Analytics przez ciebie lub osoby trzecie. W celu uzyskania dalszych informacji zapoznaj się z rozdziałem 8.1 znajdującym się w Google Analytics terms of use."
-#: googleanalytics.admin.inc:139
+#: googleanalytics.admin.inc:126
+msgid "Selecting one or more values is supported. To select multiple items, hold down CTRL (PC) or ⌘ (Mac) while selecting fields."
+msgstr "Możesz wybrać jedną bądź wiele wartości. Aby wybrać wiele elementów przytrzymaj klawisz CTRL (PC) lub ⌘ (Mac) podczas zaznaczania."
+
+#: googleanalytics.admin.inc:136
msgid "Link tracking settings"
msgstr "Ustawienia śledzenia odnośników"
-#: googleanalytics.admin.inc:145
+#: googleanalytics.admin.inc:142
msgid "Track outgoing links"
msgstr "Śledź odnośniki do stron zewnętrznych"
-#: googleanalytics.admin.inc:147
+#: googleanalytics.admin.inc:144
msgid "Enables tracking of clicks on outgoing links."
msgstr "Włącza śledzenie kliknięć na odnośniki zewnętrzne."
-#: googleanalytics.admin.inc:151
+#: googleanalytics.admin.inc:148
msgid "Track mailto links"
msgstr "Śledź odnośniki mailto"
-#: googleanalytics.admin.inc:153
+#: googleanalytics.admin.inc:150
msgid "Enables tracking of clicks on mailto links."
msgstr "Włącza śledzenie kliknięć na odnośniki mailto."
-#: googleanalytics.admin.inc:157
+#: googleanalytics.admin.inc:154
msgid "Track download links"
msgstr "Śledź odnośniki pobrań"
-#: googleanalytics.admin.inc:159
+#: googleanalytics.admin.inc:156
msgid "Enables tracking of clicks on links to files based on the file extensions list below."
msgstr "Włącza śledzenie kliknięć na odnośniki do plików posiadających następujące rozszerzenia."
-#: googleanalytics.admin.inc:163
+#: googleanalytics.admin.inc:160
msgid "File extensions to track"
msgstr "Rozszerzenia plików do śledzenia"
-#: googleanalytics.admin.inc:165
+#: googleanalytics.admin.inc:162
msgid "A pipe separated list of file extensions that should be tracked when clicked with regular expression support. Example: !extensions"
-msgstr "Lista rozszerzeń oddzielona znakiem | powinna być śledzona w przypadku działąjących wyrażeń regularnych. Przykład: !extensions"
+msgstr "Lista rozszerzeń plików oddzielona znakiem fajki '|', które powinny być śledzone podczas kliknięcia. Dozwolone jest użycie wyrażeń regularnych. Przykład: !extensions"
-#: googleanalytics.admin.inc:171
+#: googleanalytics.admin.inc:169
msgid "Advanced settings"
msgstr "Ustawienia zaawansowane"
-#: googleanalytics.admin.inc:178
-msgid "Google Analytics version used"
-msgstr "Użyta wersja Google Analytics"
+#: googleanalytics.admin.inc:176
+msgid "Cache tracking code file locally"
+msgstr "Zapisz kod śledzenia do lokalnej pamięci podręcznej"
-#: googleanalytics.admin.inc:181
-msgid "Latest (ga.js) tracking code"
-msgstr "Nowy kod śledzenia (ga.js) "
+#: googleanalytics.admin.inc:177
+msgid "If checked, the tracking code file is retrieved from Google Analytics and cached locally. It is updated daily from Google's servers to ensure updates to tracking code are reflected in the local copy. Do not activate this until after Google Analytics has confirmed your tracker!"
+msgstr "Gdy zaznaczysz, plik kodu śledzenia będzie pobierany z Google Analytics i przechowywany w lokalnej pamięci podręcznej. Będzie uaktualniany codziennie z serwera Google, tak aby zapewnić aktualizacje kodu śledzenia dla lokalnej kopi. Nie aktywuj, dopóki Google Analytics nie potwierdzi działania twojego kodu śledzenia!"
#: googleanalytics.admin.inc:182
-msgid "Legacy (urchin.js) tracking code"
-msgstr "Stary kod śledzenia (urchin.js) "
+msgid "Public file transfers must be enabled to allow local caching."
+msgstr "Publiczne przesyłanie plików musi być włączone, aby zezwolić na używanie lokalnej pamięci podręcznej."
-#: googleanalytics.admin.inc:184
-msgid "On December 13, 2007, Google rolled out a new API for its tracking code, and suggests all new sites to use this code. You should only use the older legacy code, if you have custom tracking code tied to that API. Otherwise it is suggested you use the latest API, as the legacy code will not receive feature updates and is not compatible with new features."
-msgstr "Od 13 grudnia 2007, Google rozszerzył nowe API dla tego kodu śledzenia i sugeruje aby używać nowego kodu. Starego kodu powinno się używać tylko, kiedy masz stworzony własny kod bazujący na starym API. W innych przypadkach sugeruje się uzywanie nowej wersji, stara przestaje być wspierana i wszelkie nowości i aktualizacje będą wychodzić do nowej wersji."
-
#: googleanalytics.admin.inc:189
-msgid "Cache tracking code file locally"
-msgstr "Kod śledzenia zapisz do lokalnej pamięci podręcznej"
+msgid "Track translation sets as one unit"
+msgstr "Śledź zestawy tłumaczeń jako jedną jednostkę"
#: googleanalytics.admin.inc:190
-msgid "If checked, the tracking code file is retrieved from Google Analytics and cached locally. It is updated daily from Google's servers to ensure updates to tracking code are reflected in the local copy. Do not activate this until after Google Analytics has confirmed your tracker!"
-msgstr "Gdy zaznaczysz, plik kodu śledzenia jest odbierany z Google Analytics i przechowywany w lokalnej pamięci podręcznej. Jest uaktualniany codziennie z serwera googla by zapewnić aktualizacje kodu śledzenia dla lokalnej kopi. Nie aktywuj dopóki Google Analytics nie potwierdzi działania Twojego kodu śledzenia!"
+msgid "When a node is part of a translation set, record statistics for the originating node instead. This allows for a translation set to be treated as a single unit."
+msgstr "Kiedy segment jest częścią zbioru tłumaczeń, nagrywaj statystyki dla oryginalnego segmentu. W taki sposób zestaw tłumaczeń będzie traktowany jak pojedyncza jednostka. "
-#: googleanalytics.admin.inc:195
-msgid "Public file transfers must be enabled to allow local caching."
-msgstr "Publiczne przesyłanie plików musi być włączone aby zezwolić na używanie lokalnej pamięci podręcznej. "
-
-#: googleanalytics.admin.inc:199
+#: googleanalytics.admin.inc:196
msgid "Depends on: !dependencies"
msgstr "Zależy od: !dependencies"
-#: googleanalytics.admin.inc:199
-msgid " (enabled)"
-msgstr " (włączone)"
+#: googleanalytics.admin.inc:196
+msgid "@module (disabled)"
+msgstr "@module (wyłączony)"
-#: googleanalytics.admin.inc:199
-msgid " (disabled)"
-msgstr " (wyłączone)"
+#: googleanalytics.admin.inc:196
+msgid "@module (enabled)"
+msgstr "@module (włączony)"
-#: googleanalytics.admin.inc:206
+#: googleanalytics.admin.inc:203
msgid "Track internal search"
msgstr "Śledź wewnętrzne wyszukiwanie"
-#: googleanalytics.admin.inc:207
-msgid "If checked, internal search keywords are tracked. You must configure your Google account to use the internal query parameter search. For more information see How do I set up Site Search for my profile."
-msgstr "Jeśli zaznaczymy, wewnętrzne przeszukiwanie witryny będzie śledzone. Musisz skonfigurować swoje konto do używania wewnętrznego szukaj. Więcej informacji znajdziesz tutaj: Jak założyć przeszukiwanie strony dla mojego profilu."
+#: googleanalytics.admin.inc:204
+msgid "If checked, internal search keywords are tracked. You must configure your Google account to use the internal query parameter search. For more information see How do I set up Site Search for my profile."
+msgstr "W przypadku zaznaczenia, słowa kluczowe używane w wewnętrznej wyszukiwarce będą śledzone. Należy skonfigurować konto Google Analitycs tak, aby jako wewnętrzny parametr zapytania używało słowa kluczowego search. W celu uzyskania dalszych informacji zapoznaj się z Jak skonfigurować wyszukiwanie w witrynie w moim profilu."
-#: googleanalytics.admin.inc:214
+#: googleanalytics.admin.inc:211
+#, fuzzy
+msgid "Track AdSense ads"
+msgstr "Śledź reklamy AdSense"
+
+#: googleanalytics.admin.inc:212
+#, fuzzy
+msgid "If checked, your AdSense ads will be tracked in your Google Analytics account."
+msgstr "Jeśli zaznaczone, twoje reklamy AdSense będą śledzone na twoim koncie Google Analytics."
+
+#: googleanalytics.admin.inc:218
msgid "Custom JavaScript code"
msgstr "Własny kod JavaScript"
-#: googleanalytics.admin.inc:217
-msgid "You can add custom Google Analytics code snippets here. These will be added to every page that Google Analytics appears on. Do not include the <script> tags, and always end your code with a semicolon (;)."
-msgstr "Możesz dodawać własne kawałki kodu Google Analytics. Kod zostanie dodany do każdej strony na której będzie pojawiać się kod Google Analytics. Nie dodawaj znaczników <script> i zawsze zakańczaj swój kod średnikiem(;)."
+#: googleanalytics.admin.inc:221
+msgid "You can add custom Google Analytics code snippets here. These will be added to every page that Google Analytics appears on. Before you add custom code to the below textarea's you should read Google Analytics Tracking Code - Functional Overview and the Google Analytics Tracking API documentation. Do not include the <script> tags, and always end your code with a semicolon (;)."
+msgstr "Można dodać dodatkowe kawałki kodu Google Analytics. Zostaną one dodane do każdej strony na której będzie umieszczony kod Google Analytics. Przed umieszczeniem kodu w poniższych okienkach testowych należy zapoznać się z Google Analytics Tracking Code - Functional Overview oraz z dokumentacją Google Analytics Tracking API. Nie należy używać znaczników <script>. Kod należy zakończyć średnikiem (;)."
-#: googleanalytics.admin.inc:222
+#: googleanalytics.admin.inc:225
+msgid "Code snippet (before)"
+msgstr "Kawałek kodu (przed)"
+
+#: googleanalytics.admin.inc:229
+msgid "Code in this textarea will be added before pageTracker._trackPageview()."
+msgstr "Kod znajdujący się w tym polu edycyjnym zostanie dodany przed pageTracker._trackPageview()."
+
+#: googleanalytics.admin.inc:233
+msgid "Code snippet (after)"
+msgstr "Kawałek kodu (po)"
+
+#: googleanalytics.admin.inc:237
+msgid "Code in this textarea will be added after pageTracker._trackPageview(). This is useful if you'd like to track a site in two accounts."
+msgstr "Kod znajdujący się w tym polu edycyjnym zostanie dodany po pageTracker._trackPageview(). Może być to użyteczne jeśli chcesz śledzić stronę za pomocą dwóch kont."
+
+#: googleanalytics.admin.inc:242
msgid "JavaScript scope"
-msgstr "Zakres JavaScript"
+msgstr "Miejsce JavaScript"
-#: googleanalytics.admin.inc:223
+#: googleanalytics.admin.inc:243
msgid "Warning: Google recommends adding the external JavaScript files to footer for performance reasons."
-msgstr "OstrzeżenieZe względu na wydajność, Google poleca dodawanie zewnętrznych skryptów JavaScript do stopki."
+msgstr "Ostrzeżenie Ze względu na wydajność, Google poleca dodawanie zewnętrznych skryptów JavaScript do stopki."
-#: googleanalytics.admin.inc:225
+#: googleanalytics.admin.inc:245
msgid "Footer"
msgstr "Stopka"
-#: googleanalytics.admin.inc:226
+#: googleanalytics.admin.inc:246
msgid "Header"
msgstr "Nagłówek"
-#: googleanalytics.admin.inc:236
+#: googleanalytics.admin.inc:256
msgid "A valid Google Analytics account number is case sensitive and formatted like UA-xxxxxx-x."
msgstr "Prawidłowy numer konta Google Analytics jest wrażliwy na wielkość liter i ma format UA-xxxxxx-x."
-#: googleanalytics.admin.inc:241
-msgid "Do not add the tracker code provided by Google into this field! This module already builds the tracker code based on your Google Analytics account number and settings."
-msgstr "Nie dodawaj kodu śledzenia Google Analytics w tym polu! Ten moduł właśnie tworzy ten kod na bazie Twojego numeru konta Goole Analytics i ustawień."
+#: googleanalytics.admin.inc:261;264
+msgid "Do not add the tracker code provided by Google into the javascript code snippets! This module already builds the tracker code based on your Google Analytics account number and settings."
+msgstr "Nie dodawaj kodu śledzącego dostarczonego przez Google do fragmentów kodu javascript! Ten moduł sam tworzy odpowiedni kod w oparciu o twoje ustawienia oraz numer konta Google Analytics."
-#: googleanalytics.admin.inc:244
-msgid "Do not include the <script> tags in this field."
-msgstr "W tym polu nie umieszczaj znacznika <script> "
+#: googleanalytics.admin.inc:267;270
+msgid "Do not include the <script> tags in the javascript code snippets."
+msgstr "Nie używaj znaczników <script> w próbkach kodu javascript."
-#: googleanalytics.module:17
+#: googleanalytics.module:18
msgid "Google Analytics is a free statistics package based on the excellent Urchin system. This module provides services to better integrate Drupal with Google Analytics."
-msgstr "Google Analyticsjest darmowym narzędziem statystycznym bazującym na doskonałym systemie Urchin. Ten moduł umożliwia lepszą integrację Drupala z Google Analytics."
+msgstr "Google Analytics jest darmowym narzędziem statystycznym bazującym na doskonałym systemie Urchin. Ten moduł umożliwia lepszą integrację Drupala z Google Analytics."
-#: googleanalytics.module:199
+#: googleanalytics.module:186
msgid "Google Analytics configuration"
msgstr "Konfiguracja Google Analytics"
-#: googleanalytics.module:206
-msgid "User tracking"
-msgstr "Śledzenie użytkownika"
+#: googleanalytics.module:194
+msgid "Disable user tracking"
+msgstr "Wyłącz śledzenie użytkownika"
-#: googleanalytics.module:227
+#: googleanalytics.module:195
+#, fuzzy
+msgid "Users are tracked by default, but you are able to opt out."
+msgstr "Użytkownicy są domyślnie śledzeni, ale masz możliwość rezygnacji."
+
+#: googleanalytics.module:199
+msgid "Enable user tracking"
+msgstr "Włącz śledzenie użytkownika"
+
+#: googleanalytics.module:200
+#, fuzzy
+msgid "Users are not tracked by default, but you are able to opt in."
+msgstr "Użytkownicy nie są domyślnie śledzeni, ale masz możliwość rezygnacji."
+
+#: googleanalytics.module:228
msgid "Google Analytics module"
msgstr "Moduł Google Analytics"
-#: googleanalytics.module:228
+#: googleanalytics.module:229
msgid "Google Analytics module has not been configured yet. Please configure its settings from the Google Analytics settings page."
msgstr "Moduł Google Analytics nie został jeszcze skonfigurowany. Skonfiguruj go na stronie ustawień Google Analytics."
-#: googleanalytics.module:230
+#: googleanalytics.module:231
msgid "Not configured"
msgstr "Nie skonfigurowano"
-#: googleanalytics.module:22
+#: googleanalytics.module:23
msgid "administer google analytics"
msgstr "zarządzaj google analytics"
-#: googleanalytics.module:22
+#: googleanalytics.module:23
msgid "use PHP for tracking visibility"
-msgstr "użyj PHP do szpiegowania widoczności"
+msgstr "użycie PHP do określenia widoczności kodu śledzenia"
-#: googleanalytics.module:27
+#: googleanalytics.module:28
#: googleanalytics.info:0
msgid "Google Analytics"
msgstr "Google Analytics"
-#: googleanalytics.module:28
+#: googleanalytics.module:29
msgid "Configure the settings used to generate your Google Analytics tracking code."
msgstr "Skonfiguruj ustawienia używane do generowania Twojego kodu śledzenia Google Analytics."
@@ -309,5 +337,9 @@
#: googleanalytics.info:0
msgid "Adds Google Analytics javascript tracking code to all your site's pages."
-msgstr "Dodaje javascriptowy kod śledzenia Google Analytics na wszystkich stronach Twojej witryny."
+msgstr "Dodaje kod śledzenia Google Analytics w formacie javascript do wszystkich stron twojej witryny."
+#: googleanalytics.info:0
+msgid "Statistics"
+msgstr "Statystyki"
+
Index: sites/all/modules/google_analytics/translations/el.po
===================================================================
--- sites/all/modules/google_analytics/translations/el.po (.../trunk) (revision 0)
+++ sites/all/modules/google_analytics/translations/el.po (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,337 @@
+# translation of Google Analytics module to Greek
+# $Id: el.po,v 1.1.2.3 2009/03/29 19:38:34 goofyx Exp $
+# Generated from files:
+# googleanalytics.admin.inc,v 1.9 2009/03/08 11:40:15 hass
+# googleanalytics.module,v 1.25 2009/03/08 11:40:15 hass
+# googleanalytics.info,v 1.9 2008/11/28 00:32:58 hass
+#
+# Vasileios Lourdas , 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: el\n"
+"POT-Creation-Date: 2009-03-29 14:19+0200\n"
+"PO-Revision-Date: 2009-03-29 19:49+0300\n"
+"Last-Translator: Vasileios Lourdas \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: googleanalytics.admin.inc:15
+msgid "General settings"
+msgstr "Γενικές ρυθμίσεις"
+
+#: googleanalytics.admin.inc:21
+msgid "Google Analytics account number"
+msgstr "Αριθμός λογαριασμού Google Analytics"
+
+#: googleanalytics.admin.inc:26
+msgid "The account number is unique to the websites domain. Click the Edit link in your Google Analytics account next to the appropriate profile on the Analytics Settings page, then select Check Status at the top-right of the table to find the account number (UA-xxxx-x) of your site. You can obtain a user account from the Google Analytics website."
+msgstr "Ο αριθμός λογαριασμού είναι μοναδικός μεταξύ των ιστοτόπων. Κάντε κλικ στο σύνδεσμο Edit στο λογαριασμό του Google Analytics δίπλα στο κατάλληλο προφίλ στη σελίδα Analytics Settings, μετά επιλέξτε το Check Status πάνω δεξιά στον πίνακα για να βρείτε τον αριθμό λογαριασμού (UA-xxxx-x) του ιστοτόπου σας. Μπορείτε να αποκτήσετε λογαριασμό χρήστη στον ιστοτόπο του Google Analytics."
+
+#: googleanalytics.admin.inc:32
+msgid "User specific tracking settings"
+msgstr "Ρυθμίσεις χρήστη παρακολούθησης"
+
+#: googleanalytics.admin.inc:37
+msgid "Custom tracking settings"
+msgstr "Προσαρμοσμένες ρυθμίσεις παρακολούθησης"
+
+#: googleanalytics.admin.inc:39
+msgid "Users cannot control whether they are tracked or not."
+msgstr "Οι χρήστες δεν μπορούν να ελέγχουν αν παρακολουθούνται ή όχι."
+
+#: googleanalytics.admin.inc:40
+msgid "Track users by default, but let individual users to opt out."
+msgstr "Να παρακολουθούνται οι χρήστες εξ' ορισμού, αλλά να επιτρέπεται σε ορισμένους χρήστες να εξαιρούνται της παρακολούθησης."
+
+#: googleanalytics.admin.inc:41
+msgid "Do not track users by default, but let individual users to opt in."
+msgstr "Να μην παρακολουθούνται οι χρήστες εξ' ορισμού, αλλά να επιτρέπεται σε ορισμένους χρήστες να περιλαμβάνονται στην παρακολούθηση."
+
+#: googleanalytics.admin.inc:43
+msgid "Allow individual users to customize the visibility of tracking in their account settings. Only users with %permission permission are allowed to set their own preference."
+msgstr "Να επιτρέπεται οι χρήστες να καθορίζουν την ορατότητα της παρακολούθησης στις ρυθμίσεις του λογαριασμού τους. Μόνο χρήστες με την άδεια %permission θα μπορούν να αλλάξουν την προτίμησή τους."
+
+#: googleanalytics.admin.inc:43 googleanalytics.module:23
+msgid "opt-in or out of tracking"
+msgstr "συμπερίληψη ή εξαίρεση από την παρακολούθηση"
+
+#: googleanalytics.admin.inc:50
+msgid "Role specific tracking settings"
+msgstr "Ρυθμίσεις παρακολούθησης ανά ρόλο"
+
+#: googleanalytics.admin.inc:61
+msgid "Add tracking for specific roles"
+msgstr "Προσθήκη παρακολούθησης για ορισμένους ρόλους"
+
+#: googleanalytics.admin.inc:64
+msgid "Add tracking only for the selected role(s). If none of the roles are selected, all users will be tracked. If a user has any of the roles checked, that user will be tracked."
+msgstr "Προσθήκη παρακολούθησης μόνο για τους επιλεγμένους ρόλους. Αν δεν επιλεγεί ρόλος, όλοι οι χρήστες θα παρακολουθούνται. Αν ένας χρήστης έχει έναν από τους επιλεγμένους ρόλους, τότε θα παρακολουθείται."
+
+#: googleanalytics.admin.inc:70
+msgid "Page specific tracking settings"
+msgstr "Ρυθμίσεις παρακολούθησης ανά σελίδα"
+
+#: googleanalytics.admin.inc:85
+msgid "Add to every page except the listed pages."
+msgstr "Να προστίθεται σε κάθε σελίδα εκτός από τις παρακάτω."
+
+#: googleanalytics.admin.inc:85
+msgid "Add to the listed pages only."
+msgstr "Να προστίθεται στις παρακάτω σελίδες μόνο."
+
+#: googleanalytics.admin.inc:86
+msgid "Enter one page per line as Drupal paths. The '*' character is a wildcard. Example paths are %blog for the blog page and %blog-wildcard for every personal blog. %front is the front page."
+msgstr "Εισάγετε μία σελίδα ανά γραμμή ως διαδρομή του Drupal. Το '*' είναι χαρακτήρας μπαλαντέρ. Παραδείγματα διαδρομών είναι %blog για τη σελίδα ιστολογίου και %blog-wildcard για κάθε προσωπικό ιστολόγιο. Το %front είναι η αρχική σελίδα."
+
+#: googleanalytics.admin.inc:89
+msgid "Add if the following PHP code returns TRUE (PHP-mode, experts only)."
+msgstr "Προσθήκη αν ο παρακάτω κώδικας PHP επιστρέφει ΑΛΗΘΕΙΑ (κατάσταση PHP, για ειδικούς μόνο)."
+
+#: googleanalytics.admin.inc:90
+msgid "If the PHP-mode is chosen, enter PHP code between %php. Note that executing incorrect PHP-code can break your Drupal site."
+msgstr "Αν επιλεγεί η κατάσταση PHP, εισάγετε κώδικα PHP μεταξύ των %php. Πρέπει να σημειωθεί ότι η εκτέλεση εσφαλμένου κώδικα PHP μπορεί να δημιουργήσει πρόβλημα στον ιστοτόπο σας."
+
+#: googleanalytics.admin.inc:94
+msgid "Add tracking to specific pages"
+msgstr "Να προστίθεται παρακολούθηση σε συγκεκριμένες σελίδες"
+
+#: googleanalytics.admin.inc:100
+msgid "Pages"
+msgstr "Σελίδες"
+
+#: googleanalytics.admin.inc:110
+msgid "User segmentation settings"
+msgstr "Ρυθμίσεις κατάτμησης χρήστη"
+
+#: googleanalytics.admin.inc:115
+msgid "User roles"
+msgstr "Ρόλοι χρηστών"
+
+#: googleanalytics.admin.inc:125
+msgid "Add segmentation information to tracking code"
+msgstr "Προσθήκη πληροφοριών κατάτμησης στον κώδικα παρακολούθησης"
+
+#: googleanalytics.admin.inc:126
+msgid "Segment users based on different properties, additionally to the basic IP address based tracking provided by Google Analytics."
+msgstr "Να κατατμίζονται οι χρήστες βάσει διαφορετικών ιδιοτήτων, πρόσθετα με τη βασική παρακολούθηση του Google Analytics βάσει της διεύθυνσης IP."
+
+#: googleanalytics.admin.inc:126
+msgid "Enable the profile module to be able to use profile fields for more granular tracking."
+msgstr "Ενεργοποίηση της μονάδας προφίλ για να χρησιμοποιούνται πεδία προφίλ για ποιο λεπτομερή παρακολούθηση."
+
+#: googleanalytics.admin.inc:126
+msgid "Make sure you will not associate (or permit any third party to associate) any data gathered from Your Website(s) (or such third parties' website(s)) with any personally identifying information from any source as part of Your use (or such third parties' use) of the Google Analytics service. For more information see section 8.1 in the Google Analytics terms of use."
+msgstr "Δεν πρέπει να συνδέσετε (ή επιτρέπετε οποιονδήποτε τρίτο να συνδέσει) δεδομένα που συλλέγονται από τους ιστοτόπους σας (ή ιστοτόπους τρίτων) με οποιεσδήποτε πληροφορίες που ταυτοποιούν άτομα από οποιαδήποτε πηγή, ως μέρος της χρήσης σας (ή της χρήσης τρίτων) της υπηρεσίας του Google Analytics. Για περισσότερες πληροφορίες, δείτε το τμήμα 8.1 στους όρους χρήσης του Google Analytics."
+
+#: googleanalytics.admin.inc:126
+msgid "Selecting one or more values is supported. To select multiple items, hold down CTRL (PC) or ⌘ (Mac) while selecting fields."
+msgstr "Υποστηρίζεται η επιλογή ενός ή περισσοτέρων τιμών. Για την επιλογή πολλαπλών στοιχείων, κρατήστε πατημένο το πλήκτρο CTRL (PC) ή ⌘ (Mac) κατά την επιλογή των πεδίων."
+
+#: googleanalytics.admin.inc:136
+msgid "Link tracking settings"
+msgstr "Ρυθμίσεις παρακολούθησης συνδέσμων"
+
+#: googleanalytics.admin.inc:142
+msgid "Track outgoing links"
+msgstr "Παρακολούθηση των προς εξωτερικό συνδέσμων "
+
+#: googleanalytics.admin.inc:144
+msgid "Enables tracking of clicks on outgoing links."
+msgstr "Επιτρέπει την παρακολούθηση των κλικ προς εξωτερικούς συνδέσμους."
+
+#: googleanalytics.admin.inc:148
+msgid "Track mailto links"
+msgstr "Παρακολούθηση των συνδέσμων mailto"
+
+#: googleanalytics.admin.inc:150
+msgid "Enables tracking of clicks on mailto links."
+msgstr "Επιτρέπει την παρακολούθηση των κλικ σε συνδέσμους mailto."
+
+#: googleanalytics.admin.inc:154
+msgid "Track download links"
+msgstr "Παρακολούθηση των συνδέσμων λήψης"
+
+#: googleanalytics.admin.inc:156
+msgid "Enables tracking of clicks on links to files based on the file extensions list below."
+msgstr "Επιτρέπει την παρακολούθηση των κλικ σε συνδέσμους αρχείων βάσει των επεκτάσεων αρχείων που υπάρχουν παρακάτω."
+
+#: googleanalytics.admin.inc:160
+msgid "File extensions to track"
+msgstr "Επεκτάσεις αρχείων που θα παρακολουθούνται"
+
+#: googleanalytics.admin.inc:162
+msgid "A pipe separated list of file extensions that should be tracked when clicked with regular expression support. Example: !extensions"
+msgstr "Μια λίστα επεκτάσεων αρχείων χωρισμένες με το χαρακτήρα '|' που θα παρακολουθούνται κατά το κλικ, με υποστήριξη για κανονικές εκφράσεις. Παράδειγμα: !extensions"
+
+#: googleanalytics.admin.inc:169
+msgid "Advanced settings"
+msgstr "Ρυθμίσεις για προχωρημένους"
+
+#: googleanalytics.admin.inc:176
+msgid "Cache tracking code file locally"
+msgstr "Αποθήκευση του κώδικα παρακολούθησης στην λανθάνουσα μνήμη"
+
+#: googleanalytics.admin.inc:177
+msgid "If checked, the tracking code file is retrieved from Google Analytics and cached locally. It is updated daily from Google's servers to ensure updates to tracking code are reflected in the local copy. Do not activate this until after Google Analytics has confirmed your tracker!"
+msgstr "Αν είναι ενεργοποιημένο, ο κώδικας λαμβάνεται από το Google Analytics και αποθηκεύεται στην λανθάνουσα μνήμη. Ενημερώνεται σε καθημερινή βάση από τους διακομιστές του Google Analytics ώστε οποιεσδήποτε αλλαγές να συμπεριλαμβάνονται στο τοπικό αντίγραφο. Μην ενεργοποιείτε αυτή την επιλογή μέχρις ότου το Google Analytics να επαληθεύσει τον κωδικό παρακολούθησής σας."
+
+#: googleanalytics.admin.inc:182
+msgid "Public file transfers must be enabled to allow local caching."
+msgstr "Η δημόσια μεταφορά αρχείων πρέπει να είναι ενεργοποιημένη για να δίνεται η δυνατότητα αποθήκευσης στην τοπική λανθάνουσα μνήμη."
+
+#: googleanalytics.admin.inc:189
+msgid "Track translation sets as one unit"
+msgstr "Παρακολούθηση των συνόλων μεταφράσεων ως μια μονάδα"
+
+#: googleanalytics.admin.inc:190
+msgid "When a node is part of a translation set, record statistics for the originating node instead. This allows for a translation set to be treated as a single unit."
+msgstr "Όταν ένας κόμβος είναι μέρος ενός συνόλου μετάφρασης, να καταγράφονται στατιστικά από τον αρχικό κόμβο. Αυτό επιτρέπει στα σύνολα μεταφράσεων να εκλαμβάνονται ως μια μονάδα."
+
+#: googleanalytics.admin.inc:196
+msgid "Depends on: !dependencies"
+msgstr "Εξαρτάται από: !dependencies"
+
+#: googleanalytics.admin.inc:196
+msgid "@module (enabled)"
+msgstr "@module (ενεργοποιημένο/span>)"
+
+#: googleanalytics.admin.inc:196
+msgid "@module (disabled)"
+msgstr "@module (απενεργοποιημένο/span>)"
+
+#: googleanalytics.admin.inc:203
+msgid "Track internal search"
+msgstr "Παρακολούθηση της εσωτερικής αναζήτησης"
+
+#: googleanalytics.admin.inc:204
+msgid "If checked, internal search keywords are tracked. You must configure your Google account to use the internal query parameter search. For more information see How do I set up Site Search for my profile."
+msgstr "Αν είναι ενεργοποιημένο, οι λέξεις κλειδιά της αναζήτησης παρακολουθούνται. Θα πρέπει να ρυθμίσετε στο λογαριασμό σας του Google να χρησιμοποιεί την εσωτερική παράμετρο αναζήτησης search. Για περισσότερες πληροφορίες, δείτε το How do I set up Site Search for my profile."
+
+#: googleanalytics.admin.inc:211
+msgid "Track AdSense ads"
+msgstr "Παρακολούθηση των διαφημίσεων AdSense"
+
+#: googleanalytics.admin.inc:212
+msgid "If checked, your AdSense ads will be tracked in your Google Analytics account."
+msgstr "Αν είναι ενεργοποιημένο, οι διαφημίσεις AdSense θα παρακολουθούνται στον λογαριασμό σας του Google Analytics."
+
+#: googleanalytics.admin.inc:218
+msgid "Custom JavaScript code"
+msgstr "Προσαρμοσμένος κώδικας JavaScript"
+
+#: googleanalytics.admin.inc:221
+msgid "You can add custom Google Analytics code snippets here. These will be added to every page that Google Analytics appears on. Before you add custom code to the below textarea's you should read Google Analytics Tracking Code - Functional Overview and the Google Analytics Tracking API documentation. Do not include the <script> tags, and always end your code with a semicolon (;)."
+msgstr "Μπορείτε εδώ να προσθέσετε προσαρμοσμένα τμήματα κώδικα για το Google Analytics. Αυτά τα τμήματα κώδικα θα προστίθενται σε κάθε σελίδα όπου υπάρχει το Google Analytics. Προτού προσθέσετε το δικό σας προσαρμοσμένο κώδικα στις παρακάτω περιοχές κειμένου θα πρέπει να διαβάσετε την τεκμηρίωση Google Analytics Tracking Code - Functional Overview και Google Analytics Tracking API. Μην συμπεριλαμβάνετε τις σημάνσεις <script> και πάντα να τελειώνετε τον κώδικα με ένα ερωτηματικό (;)."
+
+#: googleanalytics.admin.inc:225
+msgid "Code snippet (before)"
+msgstr "Τμήμα κώδικα (πριν)"
+
+#: googleanalytics.admin.inc:229
+msgid "Code in this textarea will be added before pageTracker._trackPageview()."
+msgstr "Ο κώδικας σε αυτή την περιοχή κειμένου θα προστίθεται πριν το pageTracker._trackPageview()."
+
+#: googleanalytics.admin.inc:233
+msgid "Code snippet (after)"
+msgstr "Τμήμα κώδικα (μετά)"
+
+#: googleanalytics.admin.inc:237
+msgid "Code in this textarea will be added after pageTracker._trackPageview(). This is useful if you'd like to track a site in two accounts."
+msgstr "Ο κώδικας σε αυτή την περιοχή κειμένου θα προστίθεται μετά το pageTracker._trackPageview(). Αυτό χρησιμεύει στην περίπτωση που θέλετε να παρακολουθείτε ένα ιστοτόπο από δύο λογαριασμούς."
+
+#: googleanalytics.admin.inc:242
+msgid "JavaScript scope"
+msgstr "Εύρος JavaScript"
+
+#: googleanalytics.admin.inc:243
+msgid "Warning: Google recommends adding the external JavaScript files to footer for performance reasons."
+msgstr "Προσοχή: Το Google προτείνει η πρόσθεση των εξωτερικών αρχείων JavaScript να γίνεται στο υποσέλιδο για λόγους απόδοσης."
+
+#: googleanalytics.admin.inc:245
+msgid "Footer"
+msgstr "Υποσέλιδο"
+
+#: googleanalytics.admin.inc:246
+msgid "Header"
+msgstr "Κεφαλίδα"
+
+#: googleanalytics.admin.inc:256
+msgid "A valid Google Analytics account number is case sensitive and formatted like UA-xxxxxx-x."
+msgstr "Ένας έγκυρος αριθμός λογαριασμού Google Analytics έχει διάκριση σε κεφαλαία-πεζά και μορφοποιείται ως UA-xxxxxx-x."
+
+#: googleanalytics.admin.inc:261;264
+msgid "Do not add the tracker code provided by Google into the javascript code snippets! This module already builds the tracker code based on your Google Analytics account number and settings."
+msgstr "Μην συμπεριλαμβάνετε τον κώδικα παρακολούθησης που δίνει το Google στα τμήματα κώδικα JavaScript! Η μονάδα ήδη δημιουργεί τον κώδικα παρακολούθησης βάσει του αριθμού λογαριασμού του Google Analytics και των ρυθμίσεων."
+
+#: googleanalytics.admin.inc:267;270
+msgid "Do not include the <script> tags in the javascript code snippets."
+msgstr "Να μην συμπεριλαμβάνονται οι σημάνσεις <script> στον κώδικα javascript."
+
+#: googleanalytics.module:18
+msgid "Google Analytics is a free statistics package based on the excellent Urchin system. This module provides services to better integrate Drupal with Google Analytics."
+msgstr "Το Google Analytics είναι ένα δωρεάν πακέτο στατιστικών βασισμένο στο εξαιρετικό σύστημα Urchin. Η μονάδα παρέχει υπηρεσίες για την καλύτερη ενσωμάτωση του Drupal με το Google Analytics."
+
+#: googleanalytics.module:186
+msgid "Google Analytics configuration"
+msgstr "Ρυθμίσεις Google Analytics"
+
+#: googleanalytics.module:194
+msgid "Disable user tracking"
+msgstr "Απενεργοποίηση παρακολούθησης χρήστη"
+
+#: googleanalytics.module:195
+msgid "Users are tracked by default, but you are able to opt out."
+msgstr "Οι χρήστες εξ' ορισμού παρακολουθούνται, αλλά επιτρέπεται να ορίσετε ως επιλογή να μην παρακολουθούνται."
+
+#: googleanalytics.module:199
+msgid "Enable user tracking"
+msgstr "Ενεργοποίηση παρακολούθησης χρήστη"
+
+#: googleanalytics.module:200
+msgid "Users are not tracked by default, but you are able to opt in."
+msgstr "Οι χρήστες εξ' ορισμού δεν παρακολουθούνται, αλλά επιτρέπεται να ορίσετε ως επιλογή να παρακολουθούνται."
+
+#: googleanalytics.module:228
+msgid "Google Analytics module"
+msgstr "Μονάδα Google Analytics"
+
+#: googleanalytics.module:229
+msgid "Google Analytics module has not been configured yet. Please configure its settings from the Google Analytics settings page."
+msgstr "Η μονάδα Google Analytics δεν έχει διευθετηθεί ακόμη. Διευθετήστε τις ρυθμίσεις του στη σελίδα ρυθμίσεων του Google Analytics."
+
+#: googleanalytics.module:231
+msgid "Not configured"
+msgstr "Δεν έχει διευθετηθεί"
+
+#: googleanalytics.module:23
+msgid "administer google analytics"
+msgstr "διαχείριση του google analytics"
+
+#: googleanalytics.module:23
+msgid "use PHP for tracking visibility"
+msgstr "χρήση της PHP για την ορατότητα παρακολούθησης"
+
+#: googleanalytics.module:28 googleanalytics.info:0
+msgid "Google Analytics"
+msgstr "Google Analytics"
+
+#: googleanalytics.module:29
+msgid "Configure the settings used to generate your Google Analytics tracking code."
+msgstr "Διευθέτηση των ρυθμίσεων που χρησιμοποιούνται για τη δημιουργία του κώδικα παρακολούθησης του Google Analytics."
+
+#: googleanalytics.module:0
+msgid "googleanalytics"
+msgstr "googleanalytics"
+
+#: googleanalytics.info:0
+msgid "Adds Google Analytics javascript tracking code to all your site's pages."
+msgstr "Προσθέτει κώδικα παρακολούθησης σε javascript για το Google Analytics σε όλες τις σελίδες του ιστοτόπου."
+
+#: googleanalytics.info:0
+msgid "Statistics"
+msgstr "Στατιστικά"
+
Index: sites/all/modules/google_analytics/tests/googleanalytics_basic.test
===================================================================
--- sites/all/modules/google_analytics/tests/googleanalytics_basic.test (.../trunk) (revision 1945)
+++ sites/all/modules/google_analytics/tests/googleanalytics_basic.test (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
drupalCreateUser($permissions);
$this->drupalLogin($user);
Index: sites/all/modules/google_analytics/googleanalytics.admin.inc
===================================================================
--- sites/all/modules/google_analytics/googleanalytics.admin.inc (.../trunk) (revision 1945)
+++ sites/all/modules/google_analytics/googleanalytics.admin.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
'select',
'#title' => t('Add segmentation information to tracking code'),
- '#description' => t('Segment users based on different properties, additionally to the basic IP address based tracking provided by Google Analytics.') . (!$profile_enabled ? ' '. t('Enable the profile module to be able to use profile fields for more granular tracking.', array('@module_list' => url('admin/build/modules'))) : '') .' '. t('Make sure you will not associate (or permit any third party to associate) any data gathered from Your Website(s) (or such third parties\' website(s)) with any personally identifying information from any source as part of Your use (or such third parties\' use) of the Google Analytics service. For more information see section 8.1 in the Google Analytics terms of use.', array('@ga_tos' => 'http://www.google.com/analytics/en-GB/tos.html')) .' '. t('Selecting one or more values is supported. To select multiple items, hold down CTRL while selecting fields.'),
+ '#description' => t('Segment users based on different properties, additionally to the basic IP address based tracking provided by Google Analytics.') . (!$profile_enabled ? ' '. t('Enable the profile module to be able to use profile fields for more granular tracking.', array('@module_list' => url('admin/build/modules'))) : '') .' '. t('Make sure you will not associate (or permit any third party to associate) any data gathered from Your Website(s) (or such third parties\' website(s)) with any personally identifying information from any source as part of Your use (or such third parties\' use) of the Google Analytics service. For more information see section 8.1 in the Google Analytics terms of use.', array('@ga_tos' => 'http://www.google.com/analytics/en-GB/tos.html')) .' '. t('Selecting one or more values is supported. To select multiple items, hold down CTRL (PC) or ⌘ (Mac) while selecting fields.'),
'#default_value' => variable_get('googleanalytics_segmentation', ''),
'#options' => $fields,
'#size' => (count($fields)>10) ? 10 : count($fields),
@@ -206,6 +206,13 @@
'#disabled' => (module_exists('search') ? FALSE : TRUE),
);
+ $form['advanced']['googleanalytics_trackadsense'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Track AdSense ads'),
+ '#description' => t('If checked, your AdSense ads will be tracked in your Google Analytics account.'),
+ '#default_value' => variable_get('googleanalytics_trackadsense', FALSE),
+ );
+
$form['advanced']['codesnippet'] = array(
'#type' => 'fieldset',
'#title' => t('Custom JavaScript code'),
Index: sites/all/modules/google_analytics/googleanalytics.module
===================================================================
--- sites/all/modules/google_analytics/googleanalytics.module (.../trunk) (revision 1945)
+++ sites/all/modules/google_analytics/googleanalytics.module (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
$link_settings), 'setting', 'header');
drupal_add_js(drupal_get_path('module', 'googleanalytics') .'/googleanalytics.js', 'module', $scope);
}
+
+ // Custom tracking.
+ if (variable_get('googleanalytics_trackadsense', FALSE)) {
+ drupal_add_js('window.google_analytics_uacct = ' . drupal_to_js($id) . ';', 'inline', 'header');
+ }
}
}
@@ -149,7 +154,8 @@
$codesnippet_after = variable_get('googleanalytics_codesnippet_after', '');
// Build tracker code for footer.
- $script = 'var pageTracker = _gat._getTracker('. drupal_to_js($id) .');';
+ $script = 'try{';
+ $script .= 'var pageTracker = _gat._getTracker('. drupal_to_js($id) .');';
if (!empty($segmentation)) {
$script .= $segmentation;
}
@@ -160,6 +166,7 @@
if (!empty($codesnippet_after)) {
$script .= $codesnippet_after;
}
+ $script .= '} catch(err) {}';
drupal_add_js($script, 'inline', 'footer');
}
@@ -181,9 +188,21 @@
'#collapsible' => TRUE,
'#tree' => TRUE
);
+
+ switch ($custom) {
+ case 1:
+ $description = t('Users are tracked by default, but you are able to opt out.');
+ break;
+
+ case 2:
+ $description = t('Users are not tracked by default, but you are able to opt in.');
+ break;
+ }
+
$form['googleanalytics']['custom'] = array(
'#type' => 'checkbox',
- '#title' => t('User tracking'),
+ '#title' => t('Enable user tracking'),
+ '#description' => $description,
'#default_value' => isset($account->googleanalytics['custom']) ? $account->googleanalytics['custom'] : ($custom == 1)
);
Index: sites/all/modules/google_analytics/googleanalytics.install
===================================================================
--- sites/all/modules/google_analytics/googleanalytics.install (.../trunk) (revision 1945)
+++ sites/all/modules/google_analytics/googleanalytics.install (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
name = 'project_issue_tag_all_projects';
- $view->description = 'Project issues for all projects by issue tag';
- $view->tag = 'Project issue';
- $view->view_php = '';
- $view->base_table = 'node';
- $view->is_cacheable = FALSE;
- $view->api_version = 2;
- $view->disabled = FALSE;
- $handler = $view->new_display('default', 'Defaults', 'default');
- $handler->override_option('relationships', array(
- 'assigned' => array(
- 'label' => 'Assigned user',
- 'required' => 0,
- 'id' => 'assigned',
- 'table' => 'project_issues',
- 'field' => 'assigned',
- 'relationship' => 'none',
- ),
- 'rid' => array(
- 'label' => 'Version',
- 'required' => 0,
- 'id' => 'rid',
- 'table' => 'project_issues',
- 'field' => 'rid',
- 'relationship' => 'none',
- ),
- 'pid' => array(
- 'id' => 'pid',
- 'table' => 'project_issues',
- 'field' => 'pid',
- ),
- ));
- $handler->override_option('fields', array(
- 'project_issue_queue' => array(
- 'label' => 'Project',
- 'exclude' => 0,
- 'id' => 'project_issue_queue',
- 'table' => 'node',
- 'field' => 'project_issue_queue',
- 'relationship' => 'pid',
- ),
- 'title' => array(
- 'label' => 'Summary',
- 'link_to_node' => 1,
- 'exclude' => 0,
- 'id' => 'title',
- 'table' => 'node',
- 'field' => 'title',
- 'relationship' => 'none',
- ),
- 'sid' => array(
- 'id' => 'sid',
- 'table' => 'project_issues',
- 'field' => 'sid',
- ),
- 'priority' => array(
- 'id' => 'priority',
- 'table' => 'project_issues',
- 'field' => 'priority',
- ),
- 'category' => array(
- 'label' => 'Category',
- 'link_to_node' => 0,
- 'exclude' => 0,
- 'id' => 'category',
- 'table' => 'project_issues',
- 'field' => 'category',
- 'relationship' => 'none',
- ),
- 'comment_count' => array(
- 'label' => 'Replies',
- 'set_precision' => FALSE,
- 'precision' => 0,
- 'decimal' => '.',
- 'separator' => ',',
- 'prefix' => '',
- 'suffix' => '',
- 'exclude' => 0,
- 'id' => 'comment_count',
- 'table' => 'node_comment_statistics',
- 'field' => 'comment_count',
- 'relationship' => 'none',
- ),
- 'new_comments' => array(
- 'label' => 'New replies',
- 'set_precision' => FALSE,
- 'precision' => 0,
- 'decimal' => '.',
- 'separator' => ',',
- 'prefix' => '',
- 'suffix' => ' new',
- 'link_to_comment' => 1,
- 'no_empty' => 1,
- 'exclude' => 0,
- 'id' => 'new_comments',
- 'table' => 'node',
- 'field' => 'new_comments',
- 'relationship' => 'none',
- ),
- 'last_comment_timestamp' => array(
- 'label' => 'Last updated',
- 'date_format' => 'time ago',
- 'custom_date_format' => '',
- 'exclude' => 0,
- 'id' => 'last_comment_timestamp',
- 'table' => 'node_comment_statistics',
- 'field' => 'last_comment_timestamp',
- 'relationship' => 'none',
- ),
- 'name' => array(
- 'label' => 'Assigned to',
- 'link_to_user' => 1,
- 'exclude' => 0,
- 'id' => 'name',
- 'table' => 'users',
- 'field' => 'name',
- 'relationship' => 'assigned',
- ),
- ));
- $handler->override_option('filters', array(
- 'type' => array(
- 'operator' => 'in',
- 'value' => array(
- 'project_issue' => 'project_issue',
- ),
- 'group' => '0',
- 'exposed' => FALSE,
- 'expose' => array(
- 'operator' => FALSE,
- 'label' => '',
- ),
- 'id' => 'type',
- 'table' => 'node',
- 'field' => 'type',
- 'relationship' => 'none',
- ),
- 'status_extra' => array(
- 'operator' => '=',
- 'value' => '',
- 'group' => '0',
- 'exposed' => FALSE,
- 'expose' => array(
- 'operator' => FALSE,
- 'label' => '',
- ),
- 'id' => 'status_extra',
- 'table' => 'node',
- 'field' => 'status_extra',
- 'relationship' => 'none',
- ),
- 'title' => array(
- 'operator' => '=',
- 'value' => '',
- 'group' => '0',
- 'exposed' => TRUE,
- 'expose' => array(
- 'use_operator' => 0,
- 'operator' => 'title_op',
- 'identifier' => 'title',
- 'label' => 'Project',
- 'optional' => 1,
- 'remember' => 0,
- ),
- 'case' => 0,
- 'id' => 'title',
- 'table' => 'node',
- 'field' => 'title',
- 'relationship' => 'pid',
- ),
- 'sid' => array(
- 'operator' => 'in',
- 'value' => array(
- 'open' => 'open',
- ),
- 'group' => '0',
- 'exposed' => TRUE,
- 'expose' => array(
- 'use_operator' => 0,
- 'operator' => 'sid_op',
- 'identifier' => 'status',
- 'label' => 'Status',
- 'optional' => 1,
- 'single' => 1,
- 'remember' => 0,
- 'reduce' => 0,
- ),
- 'id' => 'sid',
- 'table' => 'project_issues',
- 'field' => 'sid',
- 'relationship' => 'none',
- ),
- 'priority' => array(
- 'operator' => 'in',
- 'value' => array(),
- 'group' => '0',
- 'exposed' => TRUE,
- 'expose' => array(
- 'use_operator' => 0,
- 'operator' => 'priority_op',
- 'identifier' => 'priorities',
- 'label' => 'Priority',
- 'optional' => 1,
- 'single' => 1,
- 'remember' => 0,
- 'reduce' => 0,
- ),
- 'id' => 'priority',
- 'table' => 'project_issues',
- 'field' => 'priority',
- 'relationship' => 'none',
- ),
- 'category' => array(
- 'operator' => 'in',
- 'value' => array(),
- 'group' => '0',
- 'exposed' => TRUE,
- 'expose' => array(
- 'use_operator' => 0,
- 'operator' => 'category_op',
- 'identifier' => 'categories',
- 'label' => 'Category',
- 'optional' => 1,
- 'single' => 1,
- 'remember' => 0,
- 'reduce' => 0,
- ),
- 'id' => 'category',
- 'table' => 'project_issues',
- 'field' => 'category',
- 'relationship' => 'none',
- ),
- ));
- $handler->override_option('arguments', array(
- 'term_node_tid_depth' => array(
- 'id' => 'term_node_tid_depth',
- 'table' => 'node',
- 'field' => 'term_node_tid_depth',
- 'default_action' => 'not found',
- 'style_plugin' => 'default_summary',
- 'style_options' => array(
- 'count' => TRUE,
- 'override' => FALSE,
- 'items_per_page' => 25,
- ),
- 'wildcard' => 'all',
- 'wildcard_substitution' => 'All',
- 'title' => 'Project issues tagged with %1',
- 'default_argument_type' => 'fixed',
- 'default_argument' => '',
- 'validate_type' => 'taxonomy_term',
- 'validate_fail' => 'not found',
- 'depth' => '0',
- 'break_phrase' => 1,
- 'relationship' => 'none',
- 'default_argument_fixed' => '',
- 'default_argument_php' => '',
- 'validate_argument_node_type' => array(
- 'album' => 0,
- 'artist' => 0,
- 'book' => 0,
- 'page' => 0,
- 'story' => 0,
- 'track' => 0,
- ),
- 'validate_argument_vocabulary' => array(
- '3' => 0,
- '4' => 0,
- '1' => 0,
- '5' => 0,
- '2' => 0,
- ),
- 'validate_argument_type' => 'tids',
- 'validate_argument_php' => '',
- ),
- 'term_node_tid_depth_modifier' => array(
- 'id' => 'term_node_tid_depth_modifier',
- 'table' => 'node',
- 'field' => 'term_node_tid_depth_modifier',
- 'default_action' => 'ignore',
- 'style_plugin' => 'default_summary',
- 'style_options' => array(
- 'count' => TRUE,
- 'override' => FALSE,
- 'items_per_page' => 25,
- ),
- 'wildcard' => 'all',
- 'wildcard_substitution' => 'All',
- 'title' => '',
- 'default_argument_type' => 'fixed',
- 'default_argument' => '',
- 'validate_type' => 'none',
- 'validate_fail' => 'not found',
- ),
- ));
- $handler->override_option('access', array(
- 'type' => 'none',
- ));
- $handler->override_option('title', 'Issues for all projects');
- $handler->override_option('items_per_page', 50);
- $handler->override_option('use_pager', '1');
- $handler->override_option('style_plugin', 'project_issue_table');
- $handler->override_option('style_options', array(
- 'grouping' => '',
- 'override' => 1,
- 'sticky' => 0,
- 'order' => 'desc',
- 'columns' => array(
- 'project_issue_queue' => 'project_issue_queue',
- 'title' => 'title',
- 'sid' => 'sid',
- 'priority' => 'priority',
- 'category' => 'category',
- 'comment_count' => 'comment_count',
- 'new_comments' => 'comment_count',
- 'last_comment_timestamp' => 'last_comment_timestamp',
- 'name' => 'name',
- ),
- 'info' => array(
- 'project_issue_queue' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'title' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'sid' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'priority' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'category' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'comment_count' => array(
- 'sortable' => 1,
- 'separator' => ' ',
- ),
- 'new_comments' => array(
- 'separator' => '',
- ),
- 'last_comment_timestamp' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'name' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- ),
- 'default' => 'last_comment_timestamp',
- ));
-
- $handler = $view->new_display('page', 'Page', 'page_1');
- $handler->override_option('path', 'project/issues-term/%');
- $handler->override_option('menu', array(
- 'type' => 'normal',
- 'title' => 'Issues',
- 'weight' => '0',
- 'name' => 'navigation',
- ));
- $handler->override_option('tab_options', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => 0,
- ));
-
- $handler = $view->new_display('feed', 'Feed', 'feed');
- $handler->override_option('sorts', array(
- 'last_comment_timestamp' => array(
- 'order' => 'DESC',
- 'granularity' => 'second',
- 'id' => 'last_comment_timestamp',
- 'table' => 'node_comment_statistics',
- 'field' => 'last_comment_timestamp',
- 'override' => array(
- 'button' => 'Use default',
- ),
- 'relationship' => 'none',
- ),
- ));
- $handler->override_option('style_plugin', 'rss');
- $handler->override_option('style_options', array(
- 'mission_description' => FALSE,
- 'description' => '',
- ));
- $handler->override_option('row_plugin', 'node_rss');
- $handler->override_option('path', 'project/issues-term/%/%/feed');
- $handler->override_option('menu', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => 0,
- 'name' => '',
- ));
- $handler->override_option('tab_options', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => 0,
- ));
- $handler->override_option('displays', array(
- 'page_1' => 'page_1',
- 'default' => 0,
- ));
- $handler->override_option('sitename_title', FALSE);
-
- $handler = $view->new_display('feed', 'Views 1 feed', 'feed_1');
- $handler->override_option('items_per_page', 15);
- $handler->override_option('use_pager', '1');
- $handler->override_option('row_plugin', 'node_rss');
- $handler->override_option('row_options', array(
- 'item_length' => 'default',
- ));
- $handler->override_option('path', 'project/issues-term/%/feed');
- $handler->override_option('menu', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => 0,
- ));
- $handler->override_option('tab_options', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => 0,
- ));
-
- $views[$view->name] = $view;
-
- // ----------------------------------------
- // Term view for a specific project
- // ----------------------------------------
-
- $view = new view;
- $view->name = 'project_issues_tag_by_project';
- $view->description = 'Project issues by project by issue tag';
- $view->tag = 'Project issue';
- $view->view_php = '';
- $view->base_table = 'node';
- $view->is_cacheable = FALSE;
- $view->api_version = 2;
- $view->disabled = FALSE;
-
- $handler = $view->new_display('default', 'Defaults', 'default');
- $handler->override_option('relationships', array(
- 'assigned' => array(
- 'label' => 'Assigned user',
- 'required' => 0,
- 'id' => 'assigned',
- 'table' => 'project_issues',
- 'field' => 'assigned',
- 'relationship' => 'none',
- ),
- 'rid' => array(
- 'label' => 'Version',
- 'required' => 0,
- 'id' => 'rid',
- 'table' => 'project_issues',
- 'field' => 'rid',
- 'relationship' => 'none',
- ),
- ));
- $handler->override_option('fields', array(
- 'title' => array(
- 'label' => 'Summary',
- 'link_to_node' => 1,
- 'exclude' => 0,
- 'id' => 'title',
- 'table' => 'node',
- 'field' => 'title',
- 'relationship' => 'none',
- ),
- 'sid' => array(
- 'id' => 'sid',
- 'table' => 'project_issues',
- 'field' => 'sid',
- ),
- 'priority' => array(
- 'id' => 'priority',
- 'table' => 'project_issues',
- 'field' => 'priority',
- ),
- 'category' => array(
- 'label' => 'Category',
- 'link_to_node' => 0,
- 'exclude' => 0,
- 'id' => 'category',
- 'table' => 'project_issues',
- 'field' => 'category',
- 'relationship' => 'none',
- ),
- 'version' => array(
- 'label' => 'Version',
- 'link_to_node' => 0,
- 'exclude' => 0,
- 'id' => 'version',
- 'table' => 'project_release_nodes',
- 'field' => 'version',
- 'relationship' => 'rid',
- ),
- 'component' => array(
- 'label' => 'Component',
- 'link_to_node' => 0,
- 'exclude' => 0,
- 'id' => 'component',
- 'table' => 'project_issues',
- 'field' => 'component',
- 'relationship' => 'none',
- ),
- 'comment_count' => array(
- 'label' => 'Replies',
- 'set_precision' => FALSE,
- 'precision' => 0,
- 'decimal' => '.',
- 'separator' => ',',
- 'prefix' => '',
- 'suffix' => '',
- 'exclude' => 0,
- 'id' => 'comment_count',
- 'table' => 'node_comment_statistics',
- 'field' => 'comment_count',
- 'relationship' => 'none',
- ),
- 'new_comments' => array(
- 'label' => 'New replies',
- 'set_precision' => FALSE,
- 'precision' => 0,
- 'decimal' => '.',
- 'separator' => ',',
- 'prefix' => '',
- 'suffix' => ' new',
- 'link_to_comment' => 1,
- 'no_empty' => 1,
- 'exclude' => 0,
- 'id' => 'new_comments',
- 'table' => 'node',
- 'field' => 'new_comments',
- 'relationship' => 'none',
- ),
- 'last_comment_timestamp' => array(
- 'label' => 'Last updated',
- 'date_format' => 'time ago',
- 'custom_date_format' => '',
- 'exclude' => 0,
- 'id' => 'last_comment_timestamp',
- 'table' => 'node_comment_statistics',
- 'field' => 'last_comment_timestamp',
- 'relationship' => 'none',
- ),
- 'name' => array(
- 'label' => 'Assigned to',
- 'link_to_user' => 1,
- 'exclude' => 0,
- 'id' => 'name',
- 'table' => 'users',
- 'field' => 'name',
- 'relationship' => 'assigned',
- ),
- ));
- $handler->override_option('arguments', array(
- 'pid' => array(
- 'default_action' => 'not found',
- 'style_plugin' => 'default_summary',
- 'style_options' => array(),
- 'wildcard' => '',
- 'wildcard_substitution' => '',
- 'title' => 'Issues for %1',
- 'default_argument_type' => 'fixed',
- 'default_argument' => '',
- 'validate_type' => 'project_nid',
- 'validate_fail' => 'not found',
- 'break_phrase' => 0,
- 'not' => 0,
- 'id' => 'pid',
- 'table' => 'project_issues',
- 'field' => 'pid',
- 'relationship' => 'none',
- 'default_options_div_prefix' => '',
- 'default_argument_user' => 0,
- 'default_argument_fixed' => '',
- 'default_argument_php' => '',
- ),
- 'term_node_tid_depth' => array(
- 'id' => 'term_node_tid_depth',
- 'table' => 'node',
- 'field' => 'term_node_tid_depth',
- 'default_action' => 'not found',
- 'style_plugin' => 'default_summary',
- 'style_options' => array(
- 'count' => TRUE,
- 'override' => FALSE,
- 'items_per_page' => 25,
- ),
- 'wildcard' => 'all',
- 'wildcard_substitution' => 'All',
- 'title' => 'Issues for %1 tagged with %2',
- 'default_argument_type' => 'fixed',
- 'default_argument' => '',
- 'validate_type' => 'taxonomy_term',
- 'validate_fail' => 'not found',
- 'depth' => '0',
- 'break_phrase' => 1,
- 'relationship' => 'none',
- 'default_argument_fixed' => '',
- 'default_argument_php' => '',
- 'validate_argument_node_type' => array(
- 'album' => 0,
- 'artist' => 0,
- 'book' => 0,
- 'page' => 0,
- 'story' => 0,
- 'track' => 0,
- ),
- 'validate_argument_vocabulary' => array(
- '3' => 0,
- '4' => 0,
- '1' => 0,
- '5' => 0,
- '2' => 0,
- ),
- 'validate_argument_type' => 'tids',
- 'validate_argument_php' => '',
- ),
- 'term_node_tid_depth_modifier' => array(
- 'id' => 'term_node_tid_depth_modifier',
- 'table' => 'node',
- 'field' => 'term_node_tid_depth_modifier',
- 'default_action' => 'ignore',
- 'style_plugin' => 'default_summary',
- 'style_options' => array(
- 'count' => TRUE,
- 'override' => FALSE,
- 'items_per_page' => 25,
- ),
- 'wildcard' => 'all',
- 'wildcard_substitution' => 'All',
- 'title' => '',
- 'default_argument_type' => 'fixed',
- 'default_argument' => '',
- 'validate_type' => 'none',
- 'validate_fail' => 'not found',
- ),
- ));
- $handler->override_option('filters', array(
- 'type' => array(
- 'operator' => 'in',
- 'value' => array(
- 'project_issue' => 'project_issue',
- ),
- 'group' => '0',
- 'exposed' => FALSE,
- 'expose' => array(
- 'operator' => FALSE,
- 'label' => '',
- ),
- 'id' => 'type',
- 'table' => 'node',
- 'field' => 'type',
- 'relationship' => 'none',
- ),
- 'status_extra' => array(
- 'operator' => '=',
- 'value' => '',
- 'group' => '0',
- 'exposed' => FALSE,
- 'expose' => array(
- 'operator' => FALSE,
- 'label' => '',
- ),
- 'id' => 'status_extra',
- 'table' => 'node',
- 'field' => 'status_extra',
- 'relationship' => 'none',
- ),
- 'sid' => array(
- 'operator' => 'in',
- 'value' => array(
- 'open' => 'open',
- ),
- 'group' => '0',
- 'exposed' => TRUE,
- 'expose' => array(
- 'use_operator' => 0,
- 'operator' => 'sid_op',
- 'identifier' => 'status',
- 'label' => 'Status',
- 'optional' => 1,
- 'single' => 1,
- 'remember' => 0,
- 'reduce' => 0,
- ),
- 'id' => 'sid',
- 'table' => 'project_issues',
- 'field' => 'sid',
- 'relationship' => 'none',
- ),
- 'priority' => array(
- 'operator' => 'in',
- 'value' => array(),
- 'group' => '0',
- 'exposed' => TRUE,
- 'expose' => array(
- 'use_operator' => 0,
- 'operator' => 'priority_op',
- 'identifier' => 'priorities',
- 'label' => 'Priority',
- 'optional' => 1,
- 'single' => 1,
- 'remember' => 0,
- 'reduce' => 0,
- ),
- 'id' => 'priority',
- 'table' => 'project_issues',
- 'field' => 'priority',
- 'relationship' => 'none',
- ),
- 'category' => array(
- 'operator' => 'in',
- 'value' => array(),
- 'group' => '0',
- 'exposed' => TRUE,
- 'expose' => array(
- 'use_operator' => 0,
- 'operator' => 'category_op',
- 'identifier' => 'categories',
- 'label' => 'Category',
- 'optional' => 1,
- 'single' => 1,
- 'remember' => 0,
- 'reduce' => 0,
- ),
- 'id' => 'category',
- 'table' => 'project_issues',
- 'field' => 'category',
- 'relationship' => 'none',
- ),
- 'rid' => array(
- 'operator' => 'in',
- 'value' => array(),
- 'group' => '0',
- 'exposed' => TRUE,
- 'expose' => array(
- 'use_operator' => 0,
- 'operator' => 'rid_op',
- 'identifier' => 'version',
- 'label' => 'Version',
- 'optional' => 1,
- 'single' => 1,
- 'remember' => 0,
- 'reduce' => 0,
- ),
- 'id' => 'rid',
- 'table' => 'project_issues',
- 'field' => 'rid',
- 'relationship' => 'none',
- ),
- 'component' => array(
- 'operator' => 'in',
- 'value' => array(),
- 'group' => '0',
- 'exposed' => TRUE,
- 'expose' => array(
- 'use_operator' => 0,
- 'operator' => 'component_op',
- 'identifier' => 'component',
- 'label' => 'Component',
- 'optional' => 1,
- 'single' => 1,
- 'remember' => 0,
- 'reduce' => 0,
- ),
- 'id' => 'component',
- 'table' => 'project_issues',
- 'field' => 'component',
- 'relationship' => 'none',
- ),
- ));
- $handler->override_option('access', array(
- 'type' => 'none',
- ));
- $handler->override_option('title', 'Issues by project');
- $handler->override_option('items_per_page', 50);
- $handler->override_option('use_pager', '1');
- $handler->override_option('style_plugin', 'project_issue_table');
- $handler->override_option('style_options', array(
- 'grouping' => '',
- 'override' => 1,
- 'sticky' => 0,
- 'order' => 'desc',
- 'columns' => array(
- 'title' => 'title',
- 'sid' => 'sid',
- 'priority' => 'priority',
- 'category' => 'category',
- 'version' => 'version',
- 'component' => 'component',
- 'comment_count' => 'comment_count',
- 'new_comments' => 'comment_count',
- 'last_comment_timestamp' => 'last_comment_timestamp',
- 'name' => 'name',
- ),
- 'info' => array(
- 'title' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'sid' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'priority' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'category' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'version' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'component' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'comment_count' => array(
- 'sortable' => 1,
- 'separator' => ' ',
- ),
- 'new_comments' => array(
- 'separator' => '',
- ),
- 'last_comment_timestamp' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- 'name' => array(
- 'sortable' => 1,
- 'separator' => '',
- ),
- ),
- 'default' => 'last_comment_timestamp',
- ));
-
- $handler = $view->new_display('page', 'Page', 'page_1');
- $handler->override_option('path', 'project/issues/%/term/%');
- $handler->override_option('menu', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => '0',
- 'name' => '',
- ));
- $handler->override_option('tab_options', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => 0,
- ));
-
- $handler = $view->new_display('feed', 'Feed', 'feed');
- $handler->override_option('sorts', array(
- 'last_comment_timestamp' => array(
- 'order' => 'DESC',
- 'granularity' => 'second',
- 'id' => 'last_comment_timestamp',
- 'table' => 'node_comment_statistics',
- 'field' => 'last_comment_timestamp',
- 'override' => array(
- 'button' => 'Use default',
- ),
- 'relationship' => 'none',
- ),
- ));
- $handler->override_option('style_plugin', 'rss');
- $handler->override_option('style_options', array(
- 'mission_description' => FALSE,
- 'description' => '',
- ));
- $handler->override_option('row_plugin', 'node_rss');
- $handler->override_option('path', 'project/issues/%/term/%/%/feed');
- $handler->override_option('menu', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => 0,
- 'name' => '',
- ));
- $handler->override_option('tab_options', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => 0,
- ));
- $handler->override_option('displays', array(
- 'page_1' => 'page_1',
- 'default' => 0,
- ));
- $handler->override_option('sitename_title', FALSE);
-
- $handler = $view->new_display('feed', 'Views 1 feed', 'feed_1');
- $handler->override_option('items_per_page', 15);
- $handler->override_option('use_pager', '1');
- $handler->override_option('row_plugin', 'node_rss');
- $handler->override_option('row_options', array(
- 'item_length' => 'default',
- ));
- $handler->override_option('path', 'project/issues/%/term/%/feed');
- $handler->override_option('menu', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => 0,
- ));
- $handler->override_option('tab_options', array(
- 'type' => 'none',
- 'title' => '',
- 'weight' => 0,
- ));
-
- $views[$view->name] = $view;
- }
-
- return $views;
-}
-
Index: sites/all/modules/comment_alter_taxonomy/comment_alter_taxonomy.info
===================================================================
--- sites/all/modules/comment_alter_taxonomy/comment_alter_taxonomy.info (.../trunk) (revision 1945)
+++ sites/all/modules/comment_alter_taxonomy/comment_alter_taxonomy.info (.../branches/drupal6) (revision 1945)
@@ -6,9 +6,9 @@
package = Taxonomy
core = 6.x
-; Information added by d.o-cvs-to-svn export/import script on 2009-02-16
-version = "6.x-1.0-rc1"
+; Information added by d.o-cvs-to-svn export/import script on 2009-03-23
+version = "6.x-1.x-dev"
core = "6.x"
project = "comment_alter_taxonomy"
-datestamp = "1234803258"
+datestamp = "1237855505"
Index: sites/all/modules/comment_alter_taxonomy/comment_alter_taxonomy_legacy_pages.inc
===================================================================
--- sites/all/modules/comment_alter_taxonomy/comment_alter_taxonomy_legacy_pages.inc (.../trunk) (revision 0)
+++ sites/all/modules/comment_alter_taxonomy/comment_alter_taxonomy_legacy_pages.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,61 @@
+ $vocabulary) {
+ if ($term->vid == $vid) {
+ $is_issue_term = TRUE;
+ break;
+ }
+ }
+ }
+ if (!$is_issue_term) {
+ return drupal_not_found();
+ }
+ $filter_id = project_issue_views_filter_identifier($vocabulary->name);
+ $query = array($filter_id => $term->name);
+
+ // If the project argument was set, validate that, too.
+ if (!empty($project)) {
+ if (is_numeric($project)) {
+ $project_uri = project_get_uri_from_nid($project);
+ }
+ else {
+ $project_nid = project_get_nid_from_uri($project);
+ if (!empty($project_nid)) {
+ $project_uri = $project;
+ }
+ }
+ if (empty($project_uri)) {
+ return drupal_not_found();
+ }
+ }
+
+ // Finally, create the appropriate advanced search URL and redirect
+ $url = 'project/issues/search';
+ if (!empty($project_uri)) {
+ $url .= '/' . $project_uri;
+ }
+
+ drupal_goto($url, $query);
+}
+
Index: sites/all/modules/comment_alter_taxonomy/comment_alter_taxonomy.module
===================================================================
--- sites/all/modules/comment_alter_taxonomy/comment_alter_taxonomy.module (.../trunk) (revision 1945)
+++ sites/all/modules/comment_alter_taxonomy/comment_alter_taxonomy.module (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
array('comment_alter_taxonomy_admin_settings'),
'access arguments' => array('administer site configuration'),
);
+ $legacy = variable_get('comment_alter_taxonomy_legacy_issue_paths', FALSE);
+ if (module_exists('project_issue') && !empty($legacy)) {
+ $items['project/issues/%/term/%'] = array(
+ 'title' => 'Issues for a project with a given term',
+ 'page callback' => 'comment_alter_taxonomy_legacy_project_issue_redirect',
+ 'page arguments' => array(4, 2),
+ 'access arguments' => array('access content'),
+ 'file' => 'comment_alter_taxonomy_legacy_pages.inc',
+ );
+ $items['project/issues-term/%'] = array(
+ 'title' => 'Issues with a given term',
+ 'page callback' => 'comment_alter_taxonomy_legacy_project_issue_redirect',
+ 'page arguments' => array(2),
+ 'access arguments' => array('access content'),
+ 'file' => 'comment_alter_taxonomy_legacy_pages.inc',
+ );
+ }
return $items;
}
/**
- * Implementation of hook_views_api().
- */
-function comment_alter_taxonomy_views_api() {
- return array('api' => 2.0);
-}
-
-/**
* Administration settings form.
*/
function comment_alter_taxonomy_admin_settings() {
@@ -60,9 +70,35 @@
'#default_value' => array_filter(variable_get('comment_alter_taxonomy_vocabularies', array())),
);
+ if (module_exists('project_issue')) {
+ $form['project_issue'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Project issue support'),
+ '#collapsible' => TRUE,
+ '#collapsed' => TRUE,
+ );
+ $form['project_issue']['comment_alter_taxonomy_legacy_issue_paths'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Provide support for legacy project issue taxonomy listing paths'),
+ '#default_value' => variable_get('comment_alter_taxonomy_legacy_issue_paths', FALSE),
+ );
+ $form['#submit'][] = 'comment_alter_taxonomy_settings_submit';
+ }
+
return system_settings_form($form);
}
+function comment_alter_taxonomy_settings_submit($form, $form_state) {
+ $current_value = variable_get('comment_alter_taxonomy_legacy_issue_paths', 'FALSE');
+ $form_value = $form_state['values']['comment_alter_taxonomy_legacy_issue_paths'];
+ if ($current_value != $form_value) {
+ // If the setting changed, record that and force a menu rebuild to ensure
+ // we have the right menu items defined based on the setting.
+ variable_set('comment_alter_taxonomy_legacy_issue_paths', $form_value);
+ menu_rebuild();
+ }
+}
+
/**
* Implementation of hook_form_alter().
*/
@@ -488,13 +524,18 @@
*/
function theme_comment_alter_taxonomy_project_issue_metadata_term($node, $term) {
if (isset($term->tid)) {
+ $link_options = array();
if (module_exists('project_issue') && $node->type == 'project_issue') {
- $path = 'project/issues/'. $node->project_issue['pid'] .'/term/'. $term->tid;
+ $project = node_load($node->project_issue['pid']);
+ $vocabulary = taxonomy_vocabulary_load($term->vid);
+ $identifier = project_issue_views_filter_identifier($vocabulary->name);
+ $path = 'project/issues/search/'. $project->project['uri'];
+ $link_options['query'] = array($identifier => $term->name);
}
else {
$path = taxonomy_term_path($term);
}
- return l($term->name, $path);
+ return l($term->name, $path, $link_options);
}
else {
// New free tagging terms won't yet have a tid in the node preview mode
Property changes on: sites/all/modules/comment_alter_taxonomy
___________________________________________________________________
Modified: svn:mergeinfo
Merged /vendor/comment_alter_taxonomy/current:r1070,1078
Merged /vendor/drupal/current-patched/sites/all/modules/comment_alter_taxonomy:r1782-1817,1932
Modified: svnmerge-integrated
- /vendor/comment_alter_taxonomy/current:1-267,474,795
+ /vendor/comment_alter_taxonomy/current:1-267,474,795,1070,1078
Index: sites/all/modules/views/views.module
===================================================================
--- sites/all/modules/views/views.module (.../trunk) (revision 1945)
+++ sites/all/modules/views/views.module (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
'views-more',
'pattern' => 'views_more__',
- 'arguments' => array('more_url' => NULL),
+ 'arguments' => array('more_url' => NULL, 'link_text' => 'more'),
);
return $hooks;
}
@@ -397,7 +397,7 @@
* Implementation of hook_flush_caches().
*/
function views_flush_caches() {
- return array('cache_views');
+ return array('cache_views', 'cache_views_data');
}
/**
@@ -872,7 +872,12 @@
else {
$output = var_export($message, TRUE);
}
- drupal_set_content(variable_get('views_devel_region', 'footer'), '
',
+ '#value' => t('You may also adjust the !settings for the currently selected style by clicking on the icon.', array('!settings' => $this->option_link(t('settings'), 'cache_options'))),
+ );
+ }
+ break;
+ case 'cache_options':
+ $cache = $this->get_option('cache');
+ $plugin = $this->get_cache_plugin();
+ $form['#title'] .= t('Caching options');
+ if ($plugin) {
+ $form['#help_topic'] = $plugin->definition['help topic'];
+
+ $form['cache_options'] = array(
+ '#tree' => TRUE,
+ );
+ $form['cache_options']['type'] = array(
+ '#type' => 'value',
+ '#value' => $cache['type'],
+ );
+ $plugin->options_form($form['cache_options'], $form_state);
+ }
+ break;
case 'header':
$form['#title'] .= t('Header');
$form['header_empty'] = array(
@@ -1018,8 +1123,19 @@
case 'analyze-theme':
$form['#title'] .= t('Theming information');
$form['#help_topic'] = 'analyze-theme';
+
+ if (isset($_POST['theme'])) {
+ $this->view->theme = $_POST['theme'];
+ }
+ else if (empty($this->view->theme)) {
+ $this->view->theme = variable_get('theme_default', 'garland');
+ }
+
+ global $custom_theme;
+ $custom_theme = $this->view->theme;
+ init_theme();
+
$funcs = array();
-
// Get theme functions for the display. Note that some displays may
// not have themes. The 'feed' display, for example, completely
// delegates to the style.
@@ -1069,6 +1185,26 @@
'#value' => '
' . t('This section lists all possible templates for the display plugin and for the style plugins, ordered roughly from the least specific to the most specific. The active template for each plugin -- which is the most specific template found on the system -- is highlighted in bold.') . '
',
@@ -1215,7 +1351,6 @@
* Format a list of theme templates for output by the theme info helper.
*/
function format_themes($themes) {
- init_theme();
$registry = theme_get_registry();
// Run through the theme engine variables, if necessary
@@ -1269,6 +1404,12 @@
$plugin->options_validate($form['access_options'], $form_state);
}
break;
+ case 'cache_options':
+ $plugin = $this->get_cache_plugin();
+ if ($plugin) {
+ $plugin->options_validate($form['cache_options'], $form_state);
+ }
+ break;
}
}
@@ -1277,6 +1418,12 @@
* There is no need for this function to actually store the data.
*/
function options_submit(&$form, &$form_state) {
+ // Not sure I like this being here, but it seems (?) like a logical place.
+ $cache_plugin = $this->get_cache_plugin();
+ if ($cache_plugin) {
+ $cache_plugin->cache_flush();
+ }
+
$section = $form_state['section'];
switch ($section) {
case 'display_title':
@@ -1304,6 +1451,28 @@
$this->set_option('access', $form_state['values'][$section]);
}
break;
+ case 'cache':
+ $cache = $this->get_option('cache');
+ if ($cache['type'] != $form_state['values']['cache']['type']) {
+ $plugin = views_get_plugin('cache', $form_state['values']['cache']['type']);
+ if ($plugin) {
+ $cache = array('type' => $form_state['values']['cache']['type']);
+ $plugin->option_defaults($cache);
+ $this->set_option('cache', $cache);
+ if (!empty($plugin->definition['uses options'])) {
+ views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('cache_options'));
+ }
+ }
+ }
+
+ break;
+ case 'cache_options':
+ $plugin = views_get_plugin('cache', $form_state['values'][$section]['type']);
+ if ($plugin) {
+ $plugin->options_submit($form['cache_options'], $form_state);
+ $this->set_option('cache', $form_state['values'][$section]);
+ }
+ break;
case 'title':
case 'link_display':
$this->set_option($section, $form_state['values'][$section]);
@@ -1320,6 +1489,8 @@
$this->set_option('offset', intval($form_state['values']['offset']));
break;
case 'use_more':
+ $this->set_option($section, intval($form_state['values'][$section]));
+ $this->set_option('use_more_text', $form_state['values']['use_more_text']);
case 'distinct':
$this->set_option($section, $form_state['values'][$section]);
break;
@@ -1487,10 +1658,9 @@
if (!empty($this->view->exposed_raw_input)) {
$url_options['query'] = $this->view->exposed_raw_input;
}
-
$theme = views_theme_functions('views_more', $this->view, $this->display);
$path = check_url(url($path, $url_options));
- return theme($theme, $path);
+ return theme($theme, $path, $this->use_more_text());
}
}
}
Index: sites/all/modules/views/plugins/views_plugin_row.inc
===================================================================
--- sites/all/modules/views/plugins/views_plugin_row.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/plugins/views_plugin_row.inc (.../branches/drupal6) (revision 1945)
@@ -1,11 +1,22 @@
base_table)) {
$options['relationship'] = array('default' => 'none');
}
+
+ return $options;
}
/**
@@ -120,3 +133,8 @@
return theme($this->theme_functions(), $this->view, $this->options, $row, $this->field_alias);
}
}
+
+/**
+ * @}
+ */
+
Index: sites/all/modules/views/translations/uk-ua.po
===================================================================
--- sites/all/modules/views/translations/uk-ua.po (.../trunk) (revision 0)
+++ sites/all/modules/views/translations/uk-ua.po (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,4909 @@
+# $Id: uk-ua.po,v 1.2 2009/05/25 11:10:06 podarok Exp $
+#
+# Ukrainian translation of Drupal (general)
+# Copyright YEAR NAME
+# Generated from files:
+# views.module,v 1.332 2009/04/08 16:11:51 merlinofchaos
+# admin.inc,v 1.154 2009/04/07 20:48:28 merlinofchaos
+# views_ui.module,v 1.109 2009/01/30 00:56:01 merlinofchaos
+# views_export.module,v 1.4 2009/04/08 16:11:51 merlinofchaos
+# views.info,v 1.7 2007/08/12 06:52:14 merlinofchaos
+# views_ui.info,v 1.10 2008/01/09 00:05:08 merlinofchaos
+# views_export.info,v 1.1 2008/06/12 16:17:25 merlinofchaos
+# plugins.inc,v 1.152 2009/01/07 23:31:12 merlinofchaos
+# convert.inc,v 1.14 2009/04/07 23:21:00 merlinofchaos
+# theme.inc,v 1.72 2009/04/08 04:24:52 merlinofchaos
+# docs.php,v 1.13 2009/02/06 21:56:36 merlinofchaos
+# node.views.inc,v 1.93 2009/04/08 20:54:57 merlinofchaos
+# upload.views.inc,v 1.15 2008/11/24 19:58:31 merlinofchaos
+# views_handler_argument.inc,v 1.7 2009/02/20 20:12:38 merlinofchaos
+# views_handler_relationship_translation.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos
+# aggregator.views.inc,v 1.2 2009/04/07 23:07:31 merlinofchaos
+# comment.views.inc,v 1.32 2009/04/08 06:38:41 merlinofchaos
+# views_plugin_display.inc,v 1.20 2009/04/07 22:48:04 merlinofchaos
+# views_plugin_display_page.inc,v 1.5 2009/01/27 18:40:31 merlinofchaos
+# views_handler_field.inc,v 1.14 2009/04/08 05:23:56 merlinofchaos
+# views_handler_filter.inc,v 1.6 2009/04/07 23:05:29 merlinofchaos
+# views_handler_relationship.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_sort.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_argument_date.inc,v 1.3 2009/03/24 22:28:26 merlinofchaos
+# views_handler_argument_many_to_one.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_argument_numeric.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_argument_string.inc,v 1.4 2009/01/07 21:30:31 merlinofchaos
+# taxonomy.views.inc,v 1.50 2009/01/08 00:36:02 merlinofchaos
+# views_handler_argument_null.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# view.inc,v 1.151 2009/02/18 01:41:34 merlinofchaos
+# views_handler_field_boolean.inc,v 1.2 2009/01/30 00:01:41 merlinofchaos
+# views_handler_filter_boolean_operator.inc,v 1.3 2008/11/24 19:58:30 merlinofchaos
+# views_handler_filter_in_operator.inc,v 1.6 2009/01/31 19:38:59 merlinofchaos
+# views_handler_filter_node_tnid.inc,v 1.1 2008/12/02 16:34:24 merlinofchaos
+# views_plugin_display_attachment.inc,v 1.3 2009/01/06 04:45:39 merlinofchaos
+# views_handler_field_date.inc,v 1.2 2009/02/21 23:36:42 merlinofchaos
+# views_handler_field_numeric.inc,v 1.5 2009/04/07 22:59:14 merlinofchaos
+# views_handler_field_prerender_list.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_plugin_row_aggregator_rss.inc,v 1.1 2009/01/07 19:38:08 merlinofchaos
+# views_plugin_row_node_rss.inc,v 1.6 2009/04/07 22:02:40 merlinofchaos
+# views_plugin_style_list.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_row_fields.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_style_summary_unformatted.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_url.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_field_aggregator_title_link.inc,v 1.1 2009/01/07 19:38:08 merlinofchaos
+# views_handler_field_accesslog_path.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_filter_numeric.inc,v 1.7 2009/03/25 17:29:33 merlinofchaos
+# views_handler_filter_string.inc,v 1.7 2009/01/27 20:40:29 merlinofchaos
+# views_handler_filter_date.inc,v 1.3 2008/11/26 19:01:44 merlinofchaos
+# views_handler_filter_equality.inc,v 1.2 2008/09/10 01:08:06 merlinofchaos
+# views_handler_filter_many_to_one.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# system.views.inc,v 1.7 2008/09/03 19:21:29 merlinofchaos
+# views_plugin_access.inc,v 1.1 2008/09/08 22:50:17 merlinofchaos
+# views_handler_field_search_score.inc,v 1.2 2009/02/23 23:30:38 merlinofchaos
+# views_plugin_style_table.inc,v 1.5 2008/10/15 22:25:36 merlinofchaos
+# views_handler_sort_date.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_sort_formula.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_plugin_style.inc,v 1.5 2009/03/24 22:22:11 merlinofchaos
+# user.views.inc,v 1.56 2009/02/06 20:54:53 merlinofchaos
+# statistics.views.inc,v 1.9 2008/10/28 20:21:37 merlinofchaos
+# views_plugin_display_block.inc,v 1.2 2008/11/19 19:50:54 merlinofchaos
+# views_plugin_display_feed.inc,v 1.3 2008/09/30 18:52:15 merlinofchaos
+# book.views.inc,v 1.5 2008/12/02 19:37:08 merlinofchaos
+# views_plugin_row.inc,v 1.3 2009/04/11 17:18:58 merlinofchaos
+# ajax.inc,v 1.19 2008/09/22 20:50:58 merlinofchaos
+# analyze.inc,v 1.1 2008/10/28 22:50:00 merlinofchaos
+# form.inc,v 1.10 2008/06/25 21:10:10 merlinofchaos
+# handlers.inc,v 1.109 2009/04/10 20:22:54 merlinofchaos
+# views_plugin_access_role.inc,v 1.2 2009/01/07 23:31:13 merlinofchaos
+# views_plugin_access_perm.inc,v 1.3 2009/01/07 23:31:13 merlinofchaos
+# ajax.js,v 1.25 2009/03/24 23:03:32 merlinofchaos
+# ajax_view.js,v 1.17 2009/03/25 00:11:25 merlinofchaos
+# tabs.js,v 1.3 2008/03/30 15:58:26 merlinofchaos
+# views_handler_argument_term_node_tid_depth.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# locale.views.inc,v 1.1 2009/02/23 22:20:04 merlinofchaos
+# views_handler_filter_locale_group.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# views_handler_filter_locale_version.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# translation.views.inc,v 1.8 2009/01/07 23:13:46 merlinofchaos
+# views_handler_filter_locale_language.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# views_handler_filter_node_language.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos
+# views_plugin_row_node_view.inc,v 1.3 2009/04/08 20:54:58 merlinofchaos
+# poll.views.inc,v 1.4 2008/12/03 19:10:21 merlinofchaos
+# profile.views.inc,v 1.9 2008/09/24 21:21:21 merlinofchaos
+# search.views.inc,v 1.17 2009/02/23 23:30:38 merlinofchaos
+# views_plugin_argument_validate_taxonomy_term.inc,v 1.4 2009/04/08 05:10:07 merlinofchaos
+# views_handler_filter_term_node_tid.inc,v 1.8 2009/04/07 23:21:01 merlinofchaos
+# views_handler_filter_upload_fid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views.views.inc,v 1.6 2009/01/30 00:01:41 merlinofchaos
+# views_handler_argument_comment_user_uid.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_argument_user_uid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_comment.inc,v 1.5 2009/02/10 20:37:49 merlinofchaos
+# views_handler_field_node_new_comments.inc,v 1.6 2009/04/07 23:02:07 merlinofchaos
+# views_handler_field_node.inc,v 1.3 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_file.inc,v 1.3 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_taxonomy.inc,v 1.3 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_user.inc,v 1.3 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_comment_link.inc,v 1.2 2008/09/10 00:16:14 merlinofchaos
+# views_handler_field_locale_link_edit.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# views_handler_field_node_link.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_user_link.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_comment_link_delete.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_node_link_delete.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_node_revision_link_delete.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_user_link_delete.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_comment_link_edit.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_node_link_edit.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_user_link_edit.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_comment_link_reply.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_comment_node_link.inc,v 1.1 2009/04/08 06:38:41 merlinofchaos
+# views_handler_field_comment_username.inc,v 1.2 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_node_comment.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_filter_node_comment.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_plugin_row_comment_view.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_argument_locale_group.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# views_handler_argument_locale_language.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# views_handler_argument_node_language.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_argument_node_language.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos
+# views_handler_argument_dates_various.inc,v 1.4 2009/01/08 00:25:19 merlinofchaos
+# views_handler_argument_node_type.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_history_user_timestamp.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_node_revision_link_revert.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_filter_node_type.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_plugin_argument_validate_node.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_filter_search.inc,v 1.5 2009/04/10 19:32:19 merlinofchaos
+# views_plugin_row_search_view.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_argument_file_fid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_upload_description.inc,v 1.3 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_upload_fid.inc,v 1.6 2009/04/07 22:48:03 merlinofchaos
+# views_handler_argument_taxonomy.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_argument_term_node_tid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_argument_vocabulary_vid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_term_node_tid.inc,v 1.3 2009/04/07 22:02:40 merlinofchaos
+# views_handler_field_user_mail.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_user_name.inc,v 1.2 2009/02/05 04:31:15 merlinofchaos
+# views_handler_filter_user_current.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_filter_user_name.inc,v 1.2 2008/09/22 23:41:14 merlinofchaos
+# views_plugin_argument_default_user.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_argument_validate_user.inc,v 1.2 2009/02/17 23:32:33 merlinofchaos
+# views_plugin_access_none.inc,v 1.1 2008/09/08 22:50:17 merlinofchaos
+# views_plugin_argument_default.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_argument_default_php.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_argument_validate.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_argument_validate_php.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_style_summary.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_style_grid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_style_rss.inc,v 1.2 2008/12/02 00:02:06 merlinofchaos
+# views-more.tpl.php,v 1.2 2008/04/11 08:46:26 merlinofchaos
+# views-ui-edit-item.tpl.php,v 1.9 2008/08/08 16:57:44 merlinofchaos
+# views-ui-edit-tab.tpl.php,v 1.11 2008/08/08 16:57:44 merlinofchaos
+# views-ui-edit-view.tpl.php,v 1.10 2009/04/07 23:05:29 merlinofchaos
+# views-ui-list-views.tpl.php,v 1.6 2008/10/28 18:11:43 merlinofchaos
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: views uk Ukrainian Translation\n"
+"POT-Creation-Date: 2009-05-25 13:53+0300\n"
+"PO-Revision-Date: 2009-05-25 13:55+0200\n"
+"Last-Translator: podarok \n"
+"Language-Team: uk \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=((((n%10)==1)&&((n%100)!=11))?(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));\n"
+"X-Poedit-Language: Ukrainian\n"
+"X-Poedit-Country: UKRAINE\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: views.module:644
+msgid "Broken handler @table.@field"
+msgstr "Втрачено handler @table.@field"
+
+#: views.module:762
+msgid "Skipping broken view @view"
+msgstr "Пропущено поломаний view @view"
+
+#: views.module:814;854
+#: includes/admin.inc:114;232;232;646
+msgid "Overridden"
+msgstr "Пріоритетно"
+
+#: views.module:817;850
+#: views_ui.module:282
+#: includes/admin.inc:113;231;231;613;794
+msgid "Default"
+msgstr "Стандартний (default)"
+
+#: views.module:964
+#: includes/admin.inc:311
+#: views_export/views_export.module:117
+msgid "Apply"
+msgstr "Застосувати"
+
+#: views.module:146
+msgid "access all views"
+msgstr "доступ до всіх виглядів"
+
+#: views.module:146
+msgid "administer views"
+msgstr "адмініструвати вигляди"
+
+#: views.module:158
+#: views_ui.module:26
+#: views.info:0;0
+#: views_ui.info:0
+#: views_export/views_export.info:0
+msgid "Views"
+msgstr "Views"
+
+#: views.module:162
+msgid "Ajax callback for view loading."
+msgstr "Ajax callback для завантаження view."
+
+#: views.module:0
+msgid "views"
+msgstr "views"
+
+#: views_ui.module:159
+msgid "The converter will make a best-effort attempt to convert a Views 1 view to Views 2. This conversion is not reliable; you will very likely have to make adjustments to your view to get it to match. You can import Views 1 views through the normal Import tab."
+msgstr ""
+
+#: views_ui.module:258
+msgid "Changes cannot be made to a locked view."
+msgstr "Зміни не можуть бути зроблені до заблокованого вигляду."
+
+#: views_ui.module:28
+msgid "Views are customized lists of content on your system; they are highly configurable and give you control over how lists of content are presented."
+msgstr ""
+
+#: views_ui.module:32
+#: includes/plugins.inc:135
+msgid "List"
+msgstr "Список"
+
+#: views_ui.module:38
+#: includes/admin.inc:1206;1206;2193
+msgid "Add"
+msgstr "Додати"
+
+#: views_ui.module:43
+#: includes/admin.inc:752
+msgid "Import"
+msgstr "Імпортувати"
+
+#: views_ui.module:49
+msgid "Tools"
+msgstr "Утиліти"
+
+#: views_ui.module:55
+msgid "Basic"
+msgstr "Базовий"
+
+#: views_ui.module:63
+#: includes/convert.inc:30
+msgid "Convert"
+msgstr "Конвертування"
+
+#: views_ui.module:64
+msgid "Convert stored Views 1 views."
+msgstr "Конвертувати збережений View 1 view."
+
+#: views_ui.module:70;83;88
+msgid "Delete view"
+msgstr "Стерти view"
+
+#: views_ui.module:76
+msgid "Convert view"
+msgstr "Конвертація view"
+
+#: views_ui.module:113
+#: includes/admin.inc:109
+#: theme/theme.inc:91
+msgid "Edit"
+msgstr "Редагувати"
+
+#: views_ui.module:0
+msgid "views_ui"
+msgstr "views_ui"
+
+#: views.info:0
+msgid "Create customized lists and queries from your database."
+msgstr "Створення видозмінених виглядів і запитів з Вашої Бази Даних"
+
+#: views_ui.info:0
+msgid "Views UI"
+msgstr "Views UI"
+
+#: views_ui.info:0
+msgid "Administrative interface to views. Without this module, you cannot create or edit your views."
+msgstr "Адміністративний інтерфейс для виглядів. Без цього модуля Ви не зможете створювати або змінювати Ваші вигляди."
+
+#: docs/docs.php:90;97
+msgid "Example table"
+msgstr "Таблиця приклад"
+
+#: docs/docs.php:98
+msgid "Example table contains example content and can be related to nodes."
+msgstr "Таблиця прикладів відображає варіанти і може бути застосована для матеріалів."
+
+#: docs/docs.php:122
+msgid "Example content"
+msgstr "Матеріал приклад"
+
+#: docs/docs.php:123
+msgid "Some example content that references a node."
+msgstr "Деякі приклади, пов'язані з матеріалами"
+
+#: docs/docs.php:131
+msgid "Example node"
+msgstr "Матеріал приклад"
+
+#: docs/docs.php:137
+msgid "Plain text field"
+msgstr "Поле чистого тексту"
+
+#: docs/docs.php:138
+msgid "Just a plain text field."
+msgstr "Просто поле з просто текстом."
+
+#: docs/docs.php:156
+msgid "Numeric field"
+msgstr "Цифрове поле"
+
+#: docs/docs.php:157
+msgid "Just a numeric field."
+msgstr "Просто поле з просто цифр."
+
+#: docs/docs.php:172
+msgid "Boolean field"
+msgstr "Булеве поле"
+
+#: docs/docs.php:173
+msgid "Just an on/off field."
+msgstr "Просто поле так/ні, 1/0, ввімкнено/вимкнено"
+
+#: docs/docs.php:180
+#: modules/node.views.inc:159;167
+#: modules/upload.views.inc:82
+msgid "Published"
+msgstr "Оприлюднений"
+
+#: docs/docs.php:190
+msgid "Timestamp field"
+msgstr "Поле моменту часу"
+
+#: docs/docs.php:191
+msgid "Just a timestamp field."
+msgstr "Просто поле для часу"
+
+#: docs/docs.php:262
+msgid "Emulates the default Drupal front page; you may set the default home page path to this view to make it your front page."
+msgstr "Емулює базову головну сторінку Друпал; Ви можете встановити базовою сторінкою сайту цей вигляд, щоб спробувати різні модифікації головної сторінки"
+
+#: docs/docs.php:263
+msgid "default"
+msgstr "за замовчуванням"
+
+#: docs/docs.php:272
+#: includes/plugins.inc:25
+msgid "Defaults"
+msgstr "Базове"
+
+#: docs/docs.php:361
+#: includes/plugins.inc:39;47
+msgid "Page"
+msgstr "Сторінка"
+
+#: docs/docs.php:416
+#: includes/plugins.inc:72;80
+msgid "Feed"
+msgstr "RSS стрічка"
+
+#: docs/docs.php:484
+msgid "Front page feed"
+msgstr "Стрічка головної сторінки"
+
+#: handlers/views_handler_argument.inc:102
+#: modules/translation/views_handler_relationship_translation.inc:23
+msgid "All"
+msgstr "Усе"
+
+#: handlers/views_handler_argument.inc:119
+#: includes/admin.inc:288;407
+#: modules/aggregator.views.inc:40;172
+#: modules/comment.views.inc:44
+#: modules/node.views.inc:85;417
+#: plugins/views_plugin_display.inc:592
+#: plugins/views_plugin_display_page.inc:291;375
+msgid "Title"
+msgstr "Назва"
+
+#: handlers/views_handler_argument.inc:121
+msgid "The title to use when this argument is present. It will override the title of the view and titles from previous arguments. You can use percent substitution here to replace with argument titles. Use \"%1\" for the first argument, \"%2\" for the second, etc."
+msgstr ""
+
+#: handlers/views_handler_argument.inc:134
+msgid "Action to take if argument is not present"
+msgstr ""
+
+#: handlers/views_handler_argument.inc:146
+msgid "Wildcard"
+msgstr "Джокер"
+
+#: handlers/views_handler_argument.inc:149
+msgid "If this value is received as an argument, the argument will be ignored; i.e, \"all values\""
+msgstr ""
+
+#: handlers/views_handler_argument.inc:155
+msgid "Wildcard title"
+msgstr "Джокер назви"
+
+#: handlers/views_handler_argument.inc:158
+msgid "The title to use for the wildcard in substitutions elsewhere."
+msgstr ""
+
+#: handlers/views_handler_argument.inc:181
+msgid "Validator options"
+msgstr "Параметри перевірки"
+
+#: handlers/views_handler_argument.inc:186
+msgid "Validator"
+msgstr "Перевірка"
+
+#: handlers/views_handler_argument.inc:190
+msgid ""
+msgstr "<Базова перевірка>"
+
+#: handlers/views_handler_argument.inc:229
+msgid "Action to take if argument does not validate"
+msgstr ""
+
+#: handlers/views_handler_argument.inc:248
+msgid "Display all values"
+msgstr "Показувати всі значення"
+
+#: handlers/views_handler_argument.inc:253
+msgid "Hide view / Page not found (404)"
+msgstr "Сховати вигляд / Сторінку не знайдено (404)"
+
+#: handlers/views_handler_argument.inc:258
+msgid "Display empty text"
+msgstr "Відображати пустий текст"
+
+#: handlers/views_handler_argument.inc:263
+msgid "Summary, sorted ascending"
+msgstr "Сумарно, сортування пряме"
+
+#: handlers/views_handler_argument.inc:270
+msgid "Summary, sorted descending"
+msgstr "Сумарно, сортування зворотнє"
+
+#: handlers/views_handler_argument.inc:277
+msgid "Provide default argument"
+msgstr "Вказати аргумент по замовчуванню"
+
+#: handlers/views_handler_argument.inc:310
+msgid "Provide default argument options"
+msgstr ""
+
+#: handlers/views_handler_argument.inc:320
+msgid "Default argument type"
+msgstr "Базовий тип аргумента"
+
+#: handlers/views_handler_argument.inc:744
+#: handlers/views_handler_field.inc:599
+#: handlers/views_handler_filter.inc:593
+#: handlers/views_handler_relationship.inc:133
+#: handlers/views_handler_sort.inc:66
+msgid "Broken/missing handler"
+msgstr ""
+
+#: handlers/views_handler_argument.inc:752
+#: handlers/views_handler_field.inc:607
+#: handlers/views_handler_filter.inc:601
+#: handlers/views_handler_relationship.inc:141
+#: handlers/views_handler_sort.inc:74
+msgid "The handler for this item is broken or missing and cannot be used. If a module provided the handler and was disabled, re-enabling the module may restore it. Otherwise, you should probably delete this item."
+msgstr ""
+
+#: handlers/views_handler_argument_date.inc:29
+msgid "Current date"
+msgstr "Теперішня дата"
+
+#: handlers/views_handler_argument_date.inc:30
+msgid "Current node's creation time"
+msgstr ""
+
+#: handlers/views_handler_argument_date.inc:31
+msgid "Current node's update time"
+msgstr ""
+
+#: handlers/views_handler_argument_many_to_one.inc:45
+#: handlers/views_handler_argument_numeric.inc:30
+msgid "Allow multiple terms per argument."
+msgstr "Дозволити багато термінів на аргумент"
+
+#: handlers/views_handler_argument_many_to_one.inc:46
+msgid "If selected, users can enter multiple arguments in the form of 1+2+3 (for OR) or 1,2,3 (for AND)."
+msgstr ""
+
+#: handlers/views_handler_argument_many_to_one.inc:53
+#: handlers/views_handler_argument_string.inc:95
+msgid "Allow multiple arguments to work together."
+msgstr "Дозволити багато аргументів в спільній роботі"
+
+#: handlers/views_handler_argument_many_to_one.inc:54
+#: handlers/views_handler_argument_string.inc:96
+msgid "If selected, multiple instances of this argument can work together, as though multiple terms were supplied to the same argument. This setting is not compatible with the \"Reduce duplicates\" setting."
+msgstr ""
+
+#: handlers/views_handler_argument_many_to_one.inc:60
+#: handlers/views_handler_argument_string.inc:102
+msgid "Do not display items with no value in summary"
+msgstr ""
+
+#: handlers/views_handler_argument_many_to_one.inc:95;109
+#: handlers/views_handler_argument_numeric.inc:45;57
+#: modules/taxonomy.views.inc:133;212;296
+msgid "Uncategorized"
+msgstr "Без категорії"
+
+#: handlers/views_handler_argument_many_to_one.inc:113
+#: handlers/views_handler_argument_numeric.inc:61
+msgid "Invalid input"
+msgstr "Некоректний ввід"
+
+#: handlers/views_handler_argument_null.inc:21
+msgid "Fail basic validation if any argument is given"
+msgstr ""
+
+#: handlers/views_handler_argument_null.inc:23
+msgid "By checking this field, you can use this to make sure views with more arguments than necessary fail validation."
+msgstr ""
+
+#: handlers/views_handler_argument_numeric.inc:31
+msgid "If selected, users can enter multiple arguments in the form of 1+2+3 or 1,2,3."
+msgstr ""
+
+#: handlers/views_handler_argument_numeric.inc:37
+msgid "Exclude the argument"
+msgstr "Пропук аргумента"
+
+#: handlers/views_handler_argument_numeric.inc:38
+msgid "If selected, the numbers entered in the argument will be excluded rather than limiting the view."
+msgstr ""
+
+#: handlers/views_handler_argument_string.inc:44
+msgid "Glossary mode"
+msgstr "Режим глосарію"
+
+#: handlers/views_handler_argument_string.inc:45
+msgid "Glossary mode applies a limit to the number of characters used in the argument, which allows the summary view to act as a glossary."
+msgstr ""
+
+#: handlers/views_handler_argument_string.inc:51
+msgid "Character limit"
+msgstr "Лімит символа"
+
+#: handlers/views_handler_argument_string.inc:52
+msgid "How many characters of the argument to filter against. If set to 1, all fields starting with the letter in the argument would be matched."
+msgstr ""
+
+#: handlers/views_handler_argument_string.inc:60
+msgid "Case"
+msgstr "Вибір"
+
+#: handlers/views_handler_argument_string.inc:61
+msgid "When printing the argument result, how to transform the case."
+msgstr ""
+
+#: handlers/views_handler_argument_string.inc:63;77
+msgid "No transform"
+msgstr "Без перетворення"
+
+#: handlers/views_handler_argument_string.inc:64;78
+msgid "Upper case"
+msgstr "Великі літери"
+
+#: handlers/views_handler_argument_string.inc:65;79
+msgid "Lower case"
+msgstr "Малі літери"
+
+#: handlers/views_handler_argument_string.inc:66;80
+msgid "Capitalize first letter"
+msgstr "Виправлення першої букви"
+
+#: handlers/views_handler_argument_string.inc:67;81
+msgid "Capitalize each word"
+msgstr "Виправлення першої літери в кожному слові"
+
+#: handlers/views_handler_argument_string.inc:74
+msgid "Case in path"
+msgstr "Вибір в шляху"
+
+#: handlers/views_handler_argument_string.inc:75
+msgid "When printing url paths, how to transform the of the argument. Do not use this unless with Postgres as it uses case sensitive comparisons."
+msgstr ""
+
+#: handlers/views_handler_argument_string.inc:88
+msgid "Transform spaces to dashes in URL"
+msgstr ""
+
+#: handlers/views_handler_field.inc:173
+#: handlers/views_handler_filter.inc:322
+#: handlers/views_handler_relationship.inc:78
+msgid "Label"
+msgstr "Заголовок"
+
+#: handlers/views_handler_field.inc:175
+msgid "The label for this field that will be displayed to end users if the style requires it."
+msgstr ""
+
+#: handlers/views_handler_field.inc:179
+msgid "Exclude from display"
+msgstr ""
+
+#: handlers/views_handler_field.inc:181
+msgid "Check this box to not display this field, but still load it in the view. Use this option to not show a grouping field in each record, or when doing advanced theming."
+msgstr ""
+
+#: handlers/views_handler_field.inc:188
+msgid "Rewrite the output of this field"
+msgstr ""
+
+#: handlers/views_handler_field.inc:189
+msgid "If checked, you can alter the output of this field by specifying a string of text with replacement tokens that can use any existing field output."
+msgstr ""
+
+#: handlers/views_handler_field.inc:194
+msgid "Text"
+msgstr "Текст"
+
+#: handlers/views_handler_field.inc:197
+msgid "The text to display for this field. You may include HTML. You may enter data from this view as per the \"Replacement patterns\" below."
+msgstr ""
+
+#: handlers/views_handler_field.inc:206
+msgid "Output this field as a link"
+msgstr "Вивід даного поля в вигляді посилання"
+
+#: handlers/views_handler_field.inc:207
+msgid "If checked, this field will be made into a link. The destination must be given below."
+msgstr ""
+
+#: handlers/views_handler_field.inc:211
+msgid "Link path"
+msgstr "Шлях посилання"
+
+#: handlers/views_handler_field.inc:214
+msgid "The Drupal path or absolute URL for this link. You may enter data from this view as per the \"Replacement patterns\" below."
+msgstr ""
+
+#: handlers/views_handler_field.inc:221
+msgid "Alt text"
+msgstr "Альтернативний текст"
+
+#: handlers/views_handler_field.inc:224
+msgid "Text to place as \"alt\" text which most browsers display as a tooltip when hovering over the link."
+msgstr ""
+
+#: handlers/views_handler_field.inc:231
+msgid "Prefix text"
+msgstr "Текст-префікс"
+
+#: handlers/views_handler_field.inc:234
+msgid "Any text to display before this link. You may include HTML."
+msgstr ""
+
+#: handlers/views_handler_field.inc:241
+msgid "Suffix text"
+msgstr "Текст-суфікс"
+
+#: handlers/views_handler_field.inc:244
+msgid "Any text to display after this link. You may include HTML."
+msgstr ""
+
+#: handlers/views_handler_field.inc:254
+#: includes/plugins.inc:173
+#: includes/view.inc:1911
+msgid "Fields"
+msgstr "Поля"
+
+#: handlers/views_handler_field.inc:262
+#: includes/admin.inc:491
+#: includes/view.inc:1918
+msgid "Arguments"
+msgstr "Аргументи"
+
+#: handlers/views_handler_field.inc:266
+msgid "
You must add some additional fields to this display before using this field. These fields may be marked as Exclude from display if you prefer. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.
The following substitution patterns are available for this display. Use the pattern shown on the left to display the value indicated on the right. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.
"
+msgstr ""
+
+#: handlers/views_handler_field.inc:288
+msgid "Replacement patterns"
+msgstr "Шаблони заміни"
+
+#: handlers/views_handler_field.inc:298
+msgid "Trim this field to a maximum length"
+msgstr "Скоротити це поле до максимальної довжини"
+
+#: handlers/views_handler_field.inc:299
+msgid "If checked, this field be trimmed to a maximum length in characters."
+msgstr ""
+
+#: handlers/views_handler_field.inc:304
+msgid "Maximum length"
+msgstr "Максимальна довжина"
+
+#: handlers/views_handler_field.inc:307
+msgid "The maximum number of characters his field can be."
+msgstr ""
+
+#: handlers/views_handler_field.inc:316
+msgid "Trim only on a word boundary"
+msgstr ""
+
+#: handlers/views_handler_field.inc:317
+msgid "If checked, this field be trimmed only on a word boundary. This is guaranteed to be the maximum characters stated or less. If there are no word boundaries this could trim a field to nothing."
+msgstr ""
+
+#: handlers/views_handler_field.inc:327
+msgid "Add an ellipsis"
+msgstr ""
+
+#: handlers/views_handler_field.inc:328
+msgid "If checked, a \"...\" will be added if a field was trimmed."
+msgstr ""
+
+#: handlers/views_handler_field.inc:338
+msgid "Strip HTML tags"
+msgstr "Обмежувати теги HTML"
+
+#: handlers/views_handler_field.inc:339
+msgid "If checked, all HTML tags will be stripped."
+msgstr ""
+
+#: handlers/views_handler_field.inc:349
+msgid "Field can contain HTML"
+msgstr "Поле може сприймати HTML"
+
+#: handlers/views_handler_field.inc:350
+msgid "If checked, HTML corrector will be run to ensure tags are properly closed after trimming."
+msgstr ""
+
+#: handlers/views_handler_field_boolean.inc:25
+msgid "Output format"
+msgstr "Вихідний формат"
+
+#: handlers/views_handler_field_boolean.inc:27
+msgid "Yes/No"
+msgstr "Так/Ні"
+
+#: handlers/views_handler_field_boolean.inc:28
+msgid "True/False"
+msgstr "True/False"
+
+#: handlers/views_handler_field_boolean.inc:29
+msgid "On/Off"
+msgstr "Ввімкнено/Вимкнено"
+
+#: handlers/views_handler_field_boolean.inc:35
+msgid "Reverse"
+msgstr "Реверс"
+
+#: handlers/views_handler_field_boolean.inc:36
+msgid "If checked, true will be displayed as false."
+msgstr "Відмічене - TRUE буде відображене як FALSE"
+
+#: handlers/views_handler_field_boolean.inc:50
+#: handlers/views_handler_filter_boolean_operator.inc:43
+#: handlers/views_handler_filter_in_operator.inc:25
+#: modules/translation/views_handler_filter_node_tnid.inc:25
+#: plugins/views_plugin_display.inc:633;642;659;667;717;803;1207
+#: plugins/views_plugin_display_attachment.inc:63;69
+msgid "Yes"
+msgstr "Так"
+
+#: handlers/views_handler_field_boolean.inc:50
+#: handlers/views_handler_filter_boolean_operator.inc:43
+#: handlers/views_handler_filter_in_operator.inc:25
+#: modules/translation/views_handler_filter_node_tnid.inc:26
+#: plugins/views_plugin_display.inc:633;642;659;667;717;803;811;1207
+#: plugins/views_plugin_display_attachment.inc:63;69
+msgid "No"
+msgstr "Ні"
+
+#: handlers/views_handler_field_boolean.inc:52
+#: handlers/views_handler_filter_boolean_operator.inc:20;52
+msgid "True"
+msgstr "Так"
+
+#: handlers/views_handler_field_boolean.inc:52
+#: handlers/views_handler_filter_boolean_operator.inc:52
+msgid "False"
+msgstr "False"
+
+#: handlers/views_handler_field_boolean.inc:54
+#: handlers/views_handler_filter_boolean_operator.inc:46
+msgid "On"
+msgstr "Ввімкнено"
+
+#: handlers/views_handler_field_boolean.inc:54
+#: handlers/views_handler_filter_boolean_operator.inc:46
+msgid "Off"
+msgstr "Вимкнено"
+
+#: handlers/views_handler_field_date.inc:24
+msgid "Date format"
+msgstr "Формат Дати"
+
+#: handlers/views_handler_field_date.inc:29
+msgid "Custom"
+msgstr "Власна"
+
+#: handlers/views_handler_field_date.inc:30
+msgid "Time ago"
+msgstr "Часу назад"
+
+#: handlers/views_handler_field_date.inc:31
+msgid "Time ago (with \"ago\" appended)"
+msgstr ""
+
+#: handlers/views_handler_field_date.inc:37
+msgid "Custom date format"
+msgstr "Свій формат часу"
+
+#: handlers/views_handler_field_date.inc:38
+msgid "If \"Custom\", see the PHP docs for date formats. If \"Time ago\" this is the the number of different units to display, which defaults to two."
+msgstr ""
+
+#: handlers/views_handler_field_date.inc:56
+msgid "%time ago"
+msgstr "%time тому"
+
+#: handlers/views_handler_field_numeric.inc:32
+msgid "Round"
+msgstr "Округлення"
+
+#: handlers/views_handler_field_numeric.inc:33
+msgid "If checked, the number will be rounded."
+msgstr ""
+
+#: handlers/views_handler_field_numeric.inc:38
+msgid "Precision"
+msgstr "Точність"
+
+#: handlers/views_handler_field_numeric.inc:40
+msgid "Specify how many digits to print after the decimal point."
+msgstr ""
+
+#: handlers/views_handler_field_numeric.inc:47
+msgid "Decimal point"
+msgstr "Десяткова точка"
+
+#: handlers/views_handler_field_numeric.inc:49
+msgid "What single character to use as a decimal point."
+msgstr ""
+
+#: handlers/views_handler_field_numeric.inc:55
+msgid "Thousands separator"
+msgstr "Розділювач тисяч"
+
+#: handlers/views_handler_field_numeric.inc:57
+msgid "What single character to use as the thousands separator."
+msgstr ""
+
+#: handlers/views_handler_field_numeric.inc:62
+msgid "Prefix"
+msgstr "Префікс"
+
+#: handlers/views_handler_field_numeric.inc:64
+msgid "Text to put before the number, such as currency symbol."
+msgstr ""
+
+#: handlers/views_handler_field_numeric.inc:68
+msgid "Suffix"
+msgstr "Суфікс"
+
+#: handlers/views_handler_field_numeric.inc:70
+msgid "Text to put after the number, such as currency symbol."
+msgstr ""
+
+#: handlers/views_handler_field_prerender_list.inc:29
+#: modules/aggregator/views_plugin_row_aggregator_rss.inc:23
+#: modules/node/views_plugin_row_node_rss.inc:30
+msgid "Display type"
+msgstr "Тип відображення"
+
+#: handlers/views_handler_field_prerender_list.inc:31
+#: plugins/views_plugin_style_list.inc:33
+msgid "Unordered list"
+msgstr "Ненумерований список"
+
+#: handlers/views_handler_field_prerender_list.inc:32
+#: plugins/views_plugin_style_list.inc:33
+msgid "Ordered list"
+msgstr "Нумерований список"
+
+#: handlers/views_handler_field_prerender_list.inc:33
+msgid "Simple separator"
+msgstr "Простий розділювач"
+
+#: handlers/views_handler_field_prerender_list.inc:40
+#: includes/admin.inc:3010
+#: plugins/views_plugin_row_fields.inc:47
+#: plugins/views_plugin_style_summary_unformatted.inc:30
+msgid "Separator"
+msgstr "Розділювач"
+
+#: handlers/views_handler_field_prerender_list.inc:48
+msgid "Empty list text"
+msgstr "Текст, коли пустий список"
+
+#: handlers/views_handler_field_prerender_list.inc:50
+msgid "If the list is empty, you may enter text here that will be displayed."
+msgstr ""
+
+#: handlers/views_handler_field_url.inc:24
+#: modules/aggregator/views_handler_field_aggregator_title_link.inc:28
+#: modules/statistics/views_handler_field_accesslog_path.inc:31
+msgid "Display as link"
+msgstr "Відображати як посилання"
+
+#: handlers/views_handler_filter.inc:136
+msgid "Operator"
+msgstr "Оператор"
+
+#: handlers/views_handler_filter.inc:201
+msgid "Expose"
+msgstr "Показувати фільтр"
+
+#: handlers/views_handler_filter.inc:206
+msgid "This item is currently not exposed. If you expose it, users will be able to change the filter as they view it."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:213
+msgid "Hide"
+msgstr "Приховати"
+
+#: handlers/views_handler_filter.inc:218
+msgid "This item is currently exposed. If you hide it, users will not be able to change the filter as they view it."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:289
+msgid "Unlock operator"
+msgstr "Розблокувати оператор"
+
+#: handlers/views_handler_filter.inc:290
+msgid "When checked, the operator will be exposed to the user"
+msgstr ""
+
+#: handlers/views_handler_filter.inc:296
+msgid "Operator identifier"
+msgstr "Ідентифікатор оператора"
+
+#: handlers/views_handler_filter.inc:298
+msgid "This will appear in the URL after the ? to identify this operator."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:315
+msgid "Filter identifier"
+msgstr "Ідентифікатор фільтра"
+
+#: handlers/views_handler_filter.inc:317
+msgid "This will appear in the URL after the ? to identify this filter. Cannot be blank."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:333
+msgid "Optional"
+msgstr "Необов'язковий"
+
+#: handlers/views_handler_filter.inc:334
+msgid "This exposed filter is optional and will have added options to allow it not to be set."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:340
+msgid "Force single"
+msgstr "Примусово одиничний"
+
+#: handlers/views_handler_filter.inc:341
+msgid "Force this exposed filter to accept only one option."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:347
+msgid "Remember"
+msgstr "Запам'ятати"
+
+#: handlers/views_handler_filter.inc:348
+msgid "Remember the last setting the user gave this filter."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:359
+msgid "The identifier is required if the filter is exposed."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:364
+msgid "This identifier is not allowed."
+msgstr "Ідентифікатор недозволено"
+
+#: handlers/views_handler_filter.inc:465
+#: includes/admin.inc:2744
+msgid ""
+msgstr "<любе>"
+
+#: handlers/views_handler_filter.inc:465
+#: includes/admin.inc:2744
+msgid "- Any -"
+msgstr "- любе -"
+
+#: handlers/views_handler_filter_boolean_operator.inc:97
+#: handlers/views_handler_filter_in_operator.inc:175
+#: handlers/views_handler_filter_numeric.inc:247
+#: handlers/views_handler_filter_string.inc:111
+msgid "exposed"
+msgstr "відображено"
+
+#: handlers/views_handler_filter_date.inc:24
+msgid "Value type"
+msgstr "Тип значення"
+
+#: handlers/views_handler_filter_date.inc:26
+msgid "A date in any machine readable format. CCYY-MM-DD HH:MM:SS is preferred."
+msgstr ""
+
+#: handlers/views_handler_filter_date.inc:27
+msgid "An offset from the current time such as \"+1 day\" or \"-2 hours and 30 minutes\""
+msgstr ""
+
+#: handlers/views_handler_filter_date.inc:77;83;87
+msgid "Invalid date format."
+msgstr "Некоректний формат дати"
+
+#: handlers/views_handler_filter_equality.inc:15
+#: handlers/views_handler_filter_numeric.inc:38
+#: handlers/views_handler_filter_string.inc:28
+msgid "Is equal to"
+msgstr "Дорівнює до"
+
+#: handlers/views_handler_filter_equality.inc:16
+#: handlers/views_handler_filter_numeric.inc:44
+#: handlers/views_handler_filter_string.inc:34
+msgid "Is not equal to"
+msgstr "Не дорівнює до"
+
+#: handlers/views_handler_filter_equality.inc:26
+#: handlers/views_handler_filter_numeric.inc:148;163
+#: handlers/views_handler_filter_string.inc:170
+msgid "Value"
+msgstr "Значення"
+
+#: handlers/views_handler_filter_in_operator.inc:15
+msgid "Options"
+msgstr "Опції (варіанти)"
+
+#: handlers/views_handler_filter_in_operator.inc:37
+msgid "Limit list to selected items"
+msgstr ""
+
+#: handlers/views_handler_filter_in_operator.inc:38
+msgid "If checked, the only items presented to the user will be the ones selected here."
+msgstr ""
+
+#: handlers/views_handler_filter_in_operator.inc:57
+#: handlers/views_handler_filter_many_to_one.inc:32
+msgid "Is one of"
+msgstr "Один з"
+
+#: handlers/views_handler_filter_in_operator.inc:58
+msgid "Is not one of"
+msgstr "Жоден з"
+
+#: handlers/views_handler_filter_in_operator.inc:193
+#: modules/system.views.inc:209
+#: plugins/views_plugin_access.inc:55
+msgid "Unknown"
+msgstr "Невідоме"
+
+#: handlers/views_handler_filter_many_to_one.inc:33
+msgid "Is all of"
+msgstr "З всіма"
+
+#: handlers/views_handler_filter_many_to_one.inc:34
+msgid "Is none of"
+msgstr "Без жодного"
+
+#: handlers/views_handler_filter_numeric.inc:26
+msgid "Is less than"
+msgstr "Менше чим"
+
+#: handlers/views_handler_filter_numeric.inc:28
+msgid "<"
+msgstr "<"
+
+#: handlers/views_handler_filter_numeric.inc:32
+msgid "Is less than or equal to"
+msgstr "Менше-рівне до"
+
+#: handlers/views_handler_filter_numeric.inc:34
+msgid "<="
+msgstr "<="
+
+#: handlers/views_handler_filter_numeric.inc:40
+#: handlers/views_handler_filter_string.inc:29
+msgid "="
+msgstr "="
+
+#: handlers/views_handler_filter_numeric.inc:46
+#: handlers/views_handler_filter_string.inc:35
+msgid "!="
+msgstr "!="
+
+#: handlers/views_handler_filter_numeric.inc:50
+msgid "Is greater than or equal to"
+msgstr "Більше-рівне від"
+
+#: handlers/views_handler_filter_numeric.inc:52
+msgid ">="
+msgstr ">="
+
+#: handlers/views_handler_filter_numeric.inc:56
+msgid "Is greater than"
+msgstr "Більше чим"
+
+#: handlers/views_handler_filter_numeric.inc:58
+msgid ">"
+msgstr ">"
+
+#: handlers/views_handler_filter_numeric.inc:62
+msgid "Is between"
+msgstr "Між"
+
+#: handlers/views_handler_filter_numeric.inc:64
+msgid "between"
+msgstr "між"
+
+#: handlers/views_handler_filter_numeric.inc:68
+msgid "Is not between"
+msgstr "Поза межами"
+
+#: handlers/views_handler_filter_numeric.inc:70
+msgid "not between"
+msgstr "оза межами"
+
+#: handlers/views_handler_filter_numeric.inc:79
+#: handlers/views_handler_filter_string.inc:80
+msgid "Is empty (NULL)"
+msgstr "Пусто (NULL)"
+
+#: handlers/views_handler_filter_numeric.inc:81
+#: handlers/views_handler_filter_string.inc:82
+msgid "empty"
+msgstr "пусто"
+
+#: handlers/views_handler_filter_numeric.inc:85
+#: handlers/views_handler_filter_string.inc:86
+msgid "Is not empty (NULL)"
+msgstr "Не пусто (NOT NULL)"
+
+#: handlers/views_handler_filter_numeric.inc:87
+#: handlers/views_handler_filter_string.inc:88
+msgid "not empty"
+msgstr "не пусто"
+
+#: handlers/views_handler_filter_numeric.inc:175
+msgid "Min"
+msgstr "Мін"
+
+#: handlers/views_handler_filter_numeric.inc:181
+msgid "And max"
+msgstr "І макс"
+
+#: handlers/views_handler_filter_numeric.inc:181
+msgid "And"
+msgstr "І"
+
+#: handlers/views_handler_filter_numeric.inc:253
+msgid "@min and @max"
+msgstr "@min та @max"
+
+#: handlers/views_handler_filter_string.inc:40
+msgid "Contains"
+msgstr "Містить"
+
+#: handlers/views_handler_filter_string.inc:41
+msgid "contains"
+msgstr "містить"
+
+#: handlers/views_handler_filter_string.inc:46
+msgid "Contains any word"
+msgstr "Містить будь-яке слово"
+
+#: handlers/views_handler_filter_string.inc:47
+msgid "has word"
+msgstr "містить слово"
+
+#: handlers/views_handler_filter_string.inc:52
+msgid "Contains all words"
+msgstr "Містить всі слова"
+
+#: handlers/views_handler_filter_string.inc:53
+msgid "has all"
+msgstr "містить всі"
+
+#: handlers/views_handler_filter_string.inc:58
+msgid "Starts with"
+msgstr "Починається з"
+
+#: handlers/views_handler_filter_string.inc:59
+msgid "begins"
+msgstr "починається"
+
+#: handlers/views_handler_filter_string.inc:64
+msgid "Ends with"
+msgstr "Закінчується на"
+
+#: handlers/views_handler_filter_string.inc:65
+msgid "ends"
+msgstr "закінчується"
+
+#: handlers/views_handler_filter_string.inc:70
+msgid "Does not contain"
+msgstr "Не містить"
+
+#: handlers/views_handler_filter_string.inc:71
+msgid "!has"
+msgstr "!has"
+
+#: handlers/views_handler_filter_string.inc:126
+msgid "Case sensitive"
+msgstr "Чутливе до регістру"
+
+#: handlers/views_handler_filter_string.inc:128
+msgid "Case sensitive filters may be faster. MySQL might ignore case sensitivity."
+msgstr ""
+
+#: handlers/views_handler_relationship.inc:80
+msgid "The label for this relationship that will be displayed only administratively."
+msgstr ""
+
+#: handlers/views_handler_relationship.inc:85
+msgid "Require this relationship"
+msgstr ""
+
+#: handlers/views_handler_relationship.inc:86
+msgid "If required, items that do not contain this relationship will not appear."
+msgstr ""
+
+#: handlers/views_handler_sort.inc:38
+msgid "asc"
+msgstr "зрост"
+
+#: handlers/views_handler_sort.inc:42
+msgid "desc"
+msgstr "спад"
+
+#: handlers/views_handler_sort.inc:54
+msgid "Sort order"
+msgstr "Сортування"
+
+#: handlers/views_handler_sort.inc:55
+#: modules/search/views_handler_field_search_score.inc:37
+#: plugins/views_plugin_style_table.inc:149
+msgid "Ascending"
+msgstr "Зростання"
+
+#: handlers/views_handler_sort.inc:55
+#: modules/search/views_handler_field_search_score.inc:37
+#: plugins/views_plugin_style_table.inc:149
+msgid "Descending"
+msgstr "Спадання"
+
+#: handlers/views_handler_sort_date.inc:26
+msgid "Granularity"
+msgstr "Деталізація"
+
+#: handlers/views_handler_sort_date.inc:28
+msgid "Second"
+msgstr "Секунда"
+
+#: handlers/views_handler_sort_date.inc:29
+msgid "Minute"
+msgstr "Хвилина"
+
+#: handlers/views_handler_sort_date.inc:30
+msgid "Hour"
+msgstr "Година"
+
+#: handlers/views_handler_sort_date.inc:31
+msgid "Day"
+msgstr "День"
+
+#: handlers/views_handler_sort_date.inc:32
+msgid "Month"
+msgstr "Місяць"
+
+#: handlers/views_handler_sort_date.inc:33
+msgid "Year"
+msgstr "Рік"
+
+#: handlers/views_handler_sort_date.inc:35
+msgid "The granularity is the smallest unit to use when determining whether two dates are the same; for example, if the granularity is \"Year\" then all dates in 1999, regardless of when they fall in 1999, will be considered the same date."
+msgstr ""
+
+#: handlers/views_handler_sort_formula.inc:24
+msgid "views_handler_sort_formula missing default: @formula"
+msgstr ""
+
+#: includes/admin.inc:36
+msgid "If you enable the advanced help module, Views will provide more and better help. Hide this message."
+msgstr ""
+
+#: includes/admin.inc:39
+msgid "If you install the advanced help module from !href, Views will provide more and better help. Hide this message."
+msgstr "Проінсталювавши advanced help модуль із !href, Views буде описано краще. Сховати."
+
+#: includes/admin.inc:55;318
+msgid "Reset"
+msgstr "Повернути"
+
+#: includes/admin.inc:110;1006
+#: theme/theme.inc:98
+#: views_export/views_export.module:129
+msgid "Export"
+msgstr "Експортувати"
+
+#: includes/admin.inc:111;1011
+#: theme/theme.inc:103
+msgid "Clone"
+msgstr "Клонування"
+
+#: includes/admin.inc:114;649
+msgid "Revert"
+msgstr "Відновити"
+
+#: includes/admin.inc:114;654;875
+#: includes/convert.inc:35;108
+msgid "Delete"
+msgstr "Стерти"
+
+#: includes/admin.inc:119
+msgid "Disable"
+msgstr "Вимкнути"
+
+#: includes/admin.inc:122
+msgid "Enable"
+msgstr "Увімкнути"
+
+#: includes/admin.inc:128
+msgid "Warning! Broken view!"
+msgstr ""
+
+#: includes/admin.inc:143
+#: includes/view.inc:1714
+msgid "Broken"
+msgstr "Пошкоджено"
+
+#: includes/admin.inc:205
+msgid "Install the advanced help module for the getting started"
+msgstr "Проінсталюйте модуль advanced help для початку роботи"
+
+#: includes/admin.inc:208
+msgid "Not sure what to do? Try the \"!getting-started\" page."
+msgstr "Не впевнені що робити?? Спробуйте \"!getting-started\" сторінку."
+
+#: includes/admin.inc:222;229;2159
+msgid ""
+msgstr "<Всі>"
+
+#: includes/admin.inc:223
+#: plugins/views_plugin_style.inc:76
+msgid ""
+msgstr "<Нічого>"
+
+#: includes/admin.inc:227
+msgid "Storage"
+msgstr "Зберігання"
+
+#: includes/admin.inc:230;230
+#: includes/view.inc:1208;1258
+msgid "Normal"
+msgstr "Нормально"
+
+#: includes/admin.inc:244;291
+#: modules/node.views.inc:140
+#: plugins/views_plugin_display_page.inc:279
+msgid "Type"
+msgstr "Тип"
+
+#: includes/admin.inc:262;289;1091
+#: views_export/views_export.module:147
+msgid "Tag"
+msgstr "Таг"
+
+#: includes/admin.inc:278
+msgid "Displays"
+msgstr "Відображення"
+
+#: includes/admin.inc:285
+msgid "Sort by"
+msgstr "Сортувати за"
+
+#: includes/admin.inc:287
+#: modules/system.views.inc:69
+#: modules/user.views.inc:59;80
+#: plugins/views_plugin_display.inc:580
+msgid "Name"
+msgstr "Ім'я"
+
+#: includes/admin.inc:290;415
+#: modules/statistics.views.inc:149
+#: modules/system.views.inc:88
+#: plugins/views_plugin_display_page.inc:208
+msgid "Path"
+msgstr "Шлях"
+
+#: includes/admin.inc:292
+#: includes/convert.inc:21
+#: modules/aggregator.views.inc:230
+#: modules/upload.views.inc:56
+#: plugins/views_plugin_display_page.inc:299;383
+#: views_export/views_export.module:147
+msgid "Description"
+msgstr "Опис"
+
+#: includes/admin.inc:299
+msgid "Order"
+msgstr "Послідовність"
+
+#: includes/admin.inc:301
+msgid "Up"
+msgstr "Вгору"
+
+#: includes/admin.inc:302
+msgid "Down"
+msgstr "Вниз"
+
+#: includes/admin.inc:394;425
+msgid "Query"
+msgstr "Запит"
+
+#: includes/admin.inc:396
+msgid "These queries were run during view rendering:"
+msgstr ""
+
+#: includes/admin.inc:401
+msgid "[@time ms]"
+msgstr ""
+
+#: includes/admin.inc:404
+msgid "Other queries"
+msgstr "Інші запити"
+
+#: includes/admin.inc:412
+msgid "This display has no path."
+msgstr "Цей вигляд немає шляху"
+
+#: includes/admin.inc:417
+msgid "Query build time"
+msgstr ""
+
+#: includes/admin.inc:417;418;419
+msgid "@time ms"
+msgstr ""
+
+#: includes/admin.inc:418
+msgid "Query execute time"
+msgstr ""
+
+#: includes/admin.inc:419
+msgid "View render time"
+msgstr ""
+
+#: includes/admin.inc:425
+msgid "No query was run"
+msgstr ""
+
+#: includes/admin.inc:432
+msgid "Unable to preview due to validation errors."
+msgstr ""
+
+#: includes/admin.inc:483
+msgid "Display"
+msgstr "Відображення"
+
+#: includes/admin.inc:493
+msgid "Separate arguments with a / as though they were a URL path."
+msgstr ""
+
+#: includes/admin.inc:499
+msgid "Preview"
+msgstr "Переглянути"
+
+#: includes/admin.inc:537
+msgid "Clone view %view"
+msgstr ""
+
+#: includes/admin.inc:550;741
+#: includes/convert.inc:20
+msgid "View name"
+msgstr "Ім'я Вигляду"
+
+#: includes/admin.inc:551
+msgid "This is the unique name of the view. It must contain only alphanumeric characters and underscores; it is used to identify the view internally and to generate unique theming template names for this view. If overriding a module provided view, the name must not be changed or instead a new view will be created."
+msgstr ""
+
+#: includes/admin.inc:560;1854
+msgid "View description"
+msgstr "Опис Вигляду"
+
+#: includes/admin.inc:561;1855
+msgid "This description will appear on the Views administrative UI to tell you what the view is about."
+msgstr ""
+
+#: includes/admin.inc:567;1861
+msgid "View tag"
+msgstr "Тег Вигляду"
+
+#: includes/admin.inc:568;1862
+msgid "Enter an optional tag for this view; it is used only to help sort views on the administrative page."
+msgstr ""
+
+#: includes/admin.inc:580
+msgid "View type"
+msgstr "Тип Вигляду"
+
+#: includes/admin.inc:581
+msgid "The view type is the primary table for which information is being retrieved. The view type controls what arguments, fields, sort criteria and filters are available, so once this is set it cannot be changed."
+msgstr ""
+
+#: includes/admin.inc:592
+msgid "Next"
+msgstr "Наступне"
+
+#: includes/admin.inc:608;786
+msgid "View name must be alphanumeric or underscores only."
+msgstr ""
+
+#: includes/admin.inc:614
+msgid "You must use a unique name for this view."
+msgstr ""
+
+#: includes/admin.inc:647
+msgid "Are you sure you want to revert the view %name?"
+msgstr ""
+
+#: includes/admin.inc:648
+msgid "Reverting the view will delete the view that is in the database, reverting it to the original default view. Any changes you have made will be lost and cannot be recovered."
+msgstr ""
+
+#: includes/admin.inc:652
+#: includes/convert.inc:105
+msgid "Are you sure you want to delete the view %name?"
+msgstr ""
+
+#: includes/admin.inc:653
+msgid "Deleting a view cannot be undone."
+msgstr ""
+
+#: includes/admin.inc:662;698;868;1357
+#: includes/convert.inc:109
+msgid "Cancel"
+msgstr "Скасувати"
+
+#: includes/admin.inc:671
+msgid "The view has been deleted."
+msgstr ""
+
+#: includes/admin.inc:683
+msgid "There is no lock on view %view to break."
+msgstr ""
+
+#: includes/admin.inc:693
+msgid "Are you sure you want to break the lock on view %name?"
+msgstr ""
+
+#: includes/admin.inc:696
+msgid "By breaking this lock, any unsaved changes made by !user will be lost!"
+msgstr ""
+
+#: includes/admin.inc:697
+msgid "Break lock"
+msgstr ""
+
+#: includes/admin.inc:707
+msgid "The lock has been broken and you may now edit this view."
+msgstr ""
+
+#: includes/admin.inc:714
+msgid "Edit view %view"
+msgstr "Змінити Вигляд %view"
+
+#: includes/admin.inc:742
+msgid "Enter the name to use for this view if it is different from the source view. Leave blank to use the name of the view."
+msgstr ""
+
+#: includes/admin.inc:747
+msgid "Paste view code here"
+msgstr "Вставити код Вигляду сюди"
+
+#: includes/admin.inc:769
+msgid "Unable to interpret view code."
+msgstr "Неможливо інтерпретувати код Вигляду"
+
+#: includes/admin.inc:777
+msgid "You are importing a view created in Views version 1. You may need to adjust some parameters to work correctly in version 2."
+msgstr ""
+
+#: includes/admin.inc:780
+msgid "That view is not compatible with this version of Views."
+msgstr ""
+
+#: includes/admin.inc:795
+msgid "A view by that name already exists; please choose a different name"
+msgstr ""
+
+#: includes/admin.inc:804
+msgid "Display plugin @plugin is not available."
+msgstr ""
+
+#: includes/admin.inc:811
+msgid "Style plugin @plugin is not available."
+msgstr ""
+
+#: includes/admin.inc:817
+msgid "Row plugin @plugin is not available."
+msgstr ""
+
+#: includes/admin.inc:827
+msgid "@type handler @table.@field is not available."
+msgstr ""
+
+#: includes/admin.inc:840
+msgid "Unable to import view."
+msgstr ""
+
+#: includes/admin.inc:861;889
+msgid "Save"
+msgstr "Зберегти"
+
+#: includes/admin.inc:913
+msgid "The view has been saved."
+msgstr ""
+
+#: includes/admin.inc:957
+msgid "Unknown or missing table name"
+msgstr ""
+
+#: includes/admin.inc:962
+msgid "Click on an item to edit that item's details."
+msgstr ""
+
+#: includes/admin.inc:965
+msgid "This view has a broken default display and cannot be used."
+msgstr ""
+
+#: includes/admin.inc:1007
+#: theme/theme.inc:99
+msgid "Export this view"
+msgstr "Експортувати вигляд"
+
+#: includes/admin.inc:1012
+#: theme/theme.inc:104
+msgid "Create a copy of this view"
+msgstr "Створити копію даного вигляду"
+
+#: includes/admin.inc:1023
+msgid "View \"!display\""
+msgstr ""
+
+#: includes/admin.inc:1024
+msgid "Go to the real page for this display"
+msgstr ""
+
+#: includes/admin.inc:1090;3044
+#: includes/plugins.inc:218
+#: plugins/views_plugin_display.inc:587;704;723
+#: plugins/views_plugin_display_attachment.inc:90
+#: plugins/views_plugin_display_block.inc:73
+#: plugins/views_plugin_display_feed.inc:108
+#: plugins/views_plugin_display_page.inc:199
+msgid "None"
+msgstr "Немає"
+
+#: includes/admin.inc:1168
+msgid "Invalid"
+msgstr "Некоректно"
+
+#: includes/admin.inc:1169
+msgid "Error: Display @display refers to a plugin named '@plugin', but that plugin doesn't exist!"
+msgstr ""
+
+#: includes/admin.inc:1204;1204
+msgid "Rearrange"
+msgstr "Пересортувати"
+
+#: includes/admin.inc:1244;2244;2420;2488;2573
+msgid "Error: handler for @table > @field doesn't exist!"
+msgstr ""
+
+#: includes/admin.inc:1263;1263;1272
+msgid "Settings"
+msgstr "Налаштування"
+
+#: includes/admin.inc:1268
+#: plugins/views_plugin_display.inc:598;616
+msgid "Missing style plugin"
+msgstr "Загублено додаток стилю"
+
+#: includes/admin.inc:1272
+#: plugins/views_plugin_display.inc:611;626
+msgid "Change settings for this style"
+msgstr ""
+
+#: includes/admin.inc:1275
+msgid " Style: !style"
+msgstr ""
+
+#: includes/admin.inc:1306
+msgid "Invalid display id found while regenerating tabs"
+msgstr ""
+
+#: includes/admin.inc:1339
+msgid "Update"
+msgstr "Оновити"
+
+#: includes/admin.inc:1357
+msgid "Ok"
+msgstr "Ok"
+
+#: includes/admin.inc:1628
+msgid "Unable to initialize default display"
+msgstr ""
+
+#: includes/admin.inc:1660
+msgid "Add display"
+msgstr "Додати відображення"
+
+#: includes/admin.inc:1700
+msgid "Remove display"
+msgstr "Видалити відображення"
+
+#: includes/admin.inc:1711
+msgid "Restore display"
+msgstr "Відновити відображення"
+
+#: includes/admin.inc:1783
+msgid "Analyze"
+msgstr "Аналіз"
+
+#: includes/admin.inc:1795
+msgid "View analysis"
+msgstr "Аналізування Вигляду"
+
+#: includes/admin.inc:1849
+msgid "View details"
+msgstr "Деталі Вигляду"
+
+#: includes/admin.inc:1890;1944;1999;2145;2237;2413;2481;2566
+msgid "Invalid display id @display"
+msgstr ""
+
+#: includes/admin.inc:1948
+msgid "Configure @type"
+msgstr "Конфігурування @type"
+
+#: includes/admin.inc:2003
+msgid "Rearrange @type"
+msgstr "Пересортування @type"
+
+#: includes/admin.inc:2046
+msgid "Broken field @id"
+msgstr "Втрачене поле @id"
+
+#: includes/admin.inc:2086;2095;2329
+msgid "Remove"
+msgstr "Видалити"
+
+#: includes/admin.inc:2086;2086
+msgid "Remove this item"
+msgstr "Видалити цей елемент"
+
+#: includes/admin.inc:2092
+msgid "No fields available."
+msgstr "Недоступні поля"
+
+#: includes/admin.inc:2095
+#: modules/book.views.inc:57
+#: modules/taxonomy.views.inc:139
+#: modules/upload.views.inc:91
+#: plugins/views_plugin_display_page.inc:339
+msgid "Weight"
+msgstr "Вага"
+
+#: includes/admin.inc:2151
+msgid "Add @type"
+msgstr "Додати @type"
+
+#: includes/admin.inc:2162
+msgid "Groups"
+msgstr "Групи"
+
+#: includes/admin.inc:2181
+msgid "!group: !field"
+msgstr "!group: !field"
+
+#: includes/admin.inc:2190
+msgid "There are no @types available to add."
+msgstr ""
+
+#: includes/admin.inc:2287
+#: plugins/views_plugin_row.inc:65
+msgid "Do not use a relationship"
+msgstr ""
+
+#: includes/admin.inc:2302
+#: includes/view.inc:1942;1943
+#: plugins/views_plugin_row.inc:74
+msgid "Relationship"
+msgstr "Зв'язок"
+
+#: includes/admin.inc:2315
+msgid "Configure @type %item"
+msgstr ""
+
+#: includes/admin.inc:2428
+msgid "Configure extra settings for @type %item"
+msgstr ""
+
+#: includes/admin.inc:2493
+msgid "Change summary style for @type %item"
+msgstr ""
+
+#: includes/admin.inc:2516;2530
+msgid "Internal error: broken plugin."
+msgstr ""
+
+#: includes/admin.inc:2580
+msgid "Configure summary style for @type %item"
+msgstr ""
+
+#: includes/admin.inc:2672
+msgid "Clear Views' cache"
+msgstr "Очистити кеш"
+
+#: includes/admin.inc:2678
+msgid "Add Views signature to all SQL queries"
+msgstr ""
+
+#: includes/admin.inc:2679
+msgid "All Views-generated queries will include a special 'VIEWS' = 'VIEWS' string in the WHERE clause. This makes identifying Views queries in database server logs simpler, but should only be used when troubleshooting."
+msgstr ""
+
+#: includes/admin.inc:2685
+msgid "Disable views data caching"
+msgstr ""
+
+#: includes/admin.inc:2686
+msgid "Views caches data about tables, modules and views available, to increase performance. By checking this box, Views will skip this cache and always rebuild this data when needed. This can have a serious performance impact on your site."
+msgstr ""
+
+#: includes/admin.inc:2692
+msgid "Ignore missing advanced help module"
+msgstr ""
+
+#: includes/admin.inc:2693
+msgid "Views uses the advanced help module to provide help text; if this module is not present Views will complain, unless this setting is checked."
+msgstr ""
+
+#: includes/admin.inc:2699
+msgid "Show query above live preview"
+msgstr ""
+
+#: includes/admin.inc:2700
+msgid "The live preview feature will show you the output of the view you're creating, as well as the view. Check here to show the query and other information above the view; leave this unchecked to show that information below the view."
+msgstr ""
+
+#: includes/admin.inc:2706
+msgid "Show other queries run during render during live preview"
+msgstr ""
+
+#: includes/admin.inc:2707
+msgid "Drupal has the potential to run many queries while a view is being rendered. Checking this box will display every query run during view render as part of the live preview."
+msgstr ""
+
+#: includes/admin.inc:2713
+msgid "Do not show hover links over views"
+msgstr ""
+
+#: includes/admin.inc:2714
+msgid "To make it easier to administrate your views, Views provides 'hover' links to take you to the edit and export screen of a view whenever the view is used. This can be distracting on some themes, though; if it is problematic, you can turn it off here."
+msgstr ""
+
+#: includes/admin.inc:2720
+msgid "Enable views performance statistics via the Devel module"
+msgstr ""
+
+#: includes/admin.inc:2721
+msgid "Check this to enable some Views query and performance statistics if Devel is installed."
+msgstr ""
+
+#: includes/admin.inc:2727
+msgid "Disable javascript with Views"
+msgstr ""
+
+#: includes/admin.inc:2728
+msgid "If you are having problems with the javascript, you can disable it here; the Views UI should degrade and still be usable without javascript, it just not as good."
+msgstr ""
+
+#: includes/admin.inc:2736
+msgid "Page region to output performance statistics"
+msgstr ""
+
+#: includes/admin.inc:2743
+msgid "Label for \"Any\" value on optional single-select exposed filters"
+msgstr ""
+
+#: includes/admin.inc:2756
+msgid "The cache has been cleared."
+msgstr ""
+
+#: includes/admin.inc:2922
+msgid "Error: missing @component"
+msgstr ""
+
+#: includes/admin.inc:3008
+#: includes/view.inc:1913
+msgid "Field"
+msgstr "Поле"
+
+#: includes/admin.inc:3009
+msgid "Column"
+msgstr ""
+
+#: includes/admin.inc:3012
+msgid "Sortable"
+msgstr ""
+
+#: includes/admin.inc:3016
+msgid "Default sort"
+msgstr ""
+
+#: includes/ajax.inc:82
+msgid "Server reports invalid input error."
+msgstr ""
+
+#: includes/ajax.inc:83
+msgid "Error"
+msgstr "Помилка"
+
+#: includes/analyze.inc:38
+msgid "View analysis can find nothing to report."
+msgstr ""
+
+#: includes/analyze.inc:104
+msgid "This view has only a default display and therefore will not be placed anywhere on your site; perhaps you want to add a page or a block display."
+msgstr ""
+
+#: includes/convert.inc:14
+msgid "There are no Views 1 views stored in the database to convert."
+msgstr ""
+
+#: includes/convert.inc:22
+msgid "Operations"
+msgstr "Дії"
+
+#: includes/convert.inc:33
+msgid "Converted"
+msgstr ""
+
+#: includes/convert.inc:68
+msgid "The table below lists Views version 1 views that are stored in the database. You can either convert them to work in Views version 2, or delete them. The views are convertible only if there is no Views 2 view with the same name."
+msgstr ""
+
+#: includes/convert.inc:79
+msgid "Unable to find view."
+msgstr ""
+
+#: includes/convert.inc:89
+msgid "Unable to convert view."
+msgstr ""
+
+#: includes/convert.inc:107
+msgid "This action cannot be undone."
+msgstr "Цю дію не можна буде скасувати."
+
+#: includes/convert.inc:117
+msgid "The view has been deleted"
+msgstr ""
+
+#: includes/form.inc:249
+msgid "Validation error, please try again. If this error persists, please contact the site administrator."
+msgstr "Помилка при перевірці значення, будь-ласка, спробуйте ще. Якщо помилка повториться, повідомте адміністратора сайту."
+
+#: includes/handlers.inc:43
+msgid "Handler @handler include tried to loop infinitely!"
+msgstr ""
+
+#: includes/handlers.inc:270
+msgid "!group: !title"
+msgstr ""
+
+#: includes/handlers.inc:521
+msgid "Reduce duplicates"
+msgstr ""
+
+#: includes/handlers.inc:522
+msgid "This filter can cause items that have more than one of the selected options to appear as duplicate results. If this filter causes duplicate results to occur, this checkbox can reduce those duplicates; however, the more terms it has to search for, the less performant the query will be, so use this with caution."
+msgstr ""
+
+#: includes/plugins.inc:26
+msgid "Default settings for this view."
+msgstr ""
+
+#: includes/plugins.inc:40
+msgid "Display the view as a page, with a URL and menu links."
+msgstr ""
+
+#: includes/plugins.inc:51;60
+msgid "Block"
+msgstr "Блок"
+
+#: includes/plugins.inc:52
+msgid "Display the view as a block."
+msgstr ""
+
+#: includes/plugins.inc:64
+msgid "Attachment"
+msgstr "Причіплений файл"
+
+#: includes/plugins.inc:65
+msgid "Attachments added to other displays to achieve multiple views in the same view."
+msgstr "Додатки додаються до інших виглядів для збору кількох VIEW в один."
+
+#: includes/plugins.inc:73
+msgid "Display the view as a feed, such as an RSS feed."
+msgstr ""
+
+#: includes/plugins.inc:93;144
+msgid "Unformatted"
+msgstr "Неформатоване"
+
+#: includes/plugins.inc:94
+msgid "Displays rows one after another."
+msgstr ""
+
+#: includes/plugins.inc:104
+msgid "HTML List"
+msgstr ""
+
+#: includes/plugins.inc:105
+msgid "Displays rows as an HTML list."
+msgstr ""
+
+#: includes/plugins.inc:114
+msgid "Grid"
+msgstr ""
+
+#: includes/plugins.inc:115
+msgid "Displays rows in a grid."
+msgstr ""
+
+#: includes/plugins.inc:124
+msgid "Table"
+msgstr "Таблиця"
+
+#: includes/plugins.inc:125
+msgid "Displays rows in a table."
+msgstr ""
+
+#: includes/plugins.inc:136
+msgid "Displays the default summary as a list."
+msgstr ""
+
+#: includes/plugins.inc:145
+msgid "Displays the summary unformatted, with option for one after another or inline."
+msgstr ""
+
+#: includes/plugins.inc:154
+msgid "RSS Feed"
+msgstr ""
+
+#: includes/plugins.inc:155
+msgid "Generates an RSS feed from a view."
+msgstr ""
+
+#: includes/plugins.inc:174
+msgid "Displays the fields with an optional template."
+msgstr ""
+
+#: includes/plugins.inc:187
+msgid "Fixed entry"
+msgstr ""
+
+#: includes/plugins.inc:191;203
+msgid "PHP Code"
+msgstr "Код PHP"
+
+#: includes/plugins.inc:207
+msgid "Numeric"
+msgstr ""
+
+#: includes/plugins.inc:219
+msgid "Will be available to all users."
+msgstr ""
+
+#: includes/plugins.inc:224
+#: plugins/views_plugin_access_role.inc:40
+msgid "Role"
+msgstr "Роль"
+
+#: includes/plugins.inc:225
+msgid "Access will be granted to users with any of the specified roles."
+msgstr ""
+
+#: includes/plugins.inc:231
+#: plugins/views_plugin_access_perm.inc:35
+msgid "Permission"
+msgstr "Повноваження"
+
+#: includes/plugins.inc:232
+msgid "Access will be granted to users with the specified permission string."
+msgstr ""
+
+#: includes/view.inc:263
+msgid "set_display() called with invalid display id @display."
+msgstr ""
+
+#: includes/view.inc:1104
+msgid "Home"
+msgstr "Головна"
+
+#: includes/view.inc:1912
+msgid "fields"
+msgstr "поля"
+
+#: includes/view.inc:1914
+msgid "field"
+msgstr "поле"
+
+#: includes/view.inc:1919
+msgid "arguments"
+msgstr "аргументи"
+
+#: includes/view.inc:1920;1921
+msgid "Argument"
+msgstr "Аргумент"
+
+#: includes/view.inc:1925
+msgid "Sort criteria"
+msgstr "Критерій сортування"
+
+#: includes/view.inc:1926
+msgid "sort criteria"
+msgstr "критерій сортування"
+
+#: includes/view.inc:1927
+msgid "Sort criterion"
+msgstr "Критерій сортування"
+
+#: includes/view.inc:1928
+msgid "sort criterion"
+msgstr "критерій сортування"
+
+#: includes/view.inc:1932
+msgid "Filters"
+msgstr "Фільтри"
+
+#: includes/view.inc:1933
+msgid "filters"
+msgstr "фільтри"
+
+#: includes/view.inc:1934
+msgid "Filter"
+msgstr "Фільтрація"
+
+#: includes/view.inc:1935
+msgid "filter"
+msgstr "фільтр"
+
+#: includes/view.inc:1940
+msgid "Relationships"
+msgstr "Зв'язки"
+
+#: includes/view.inc:1941
+msgid "relationships"
+msgstr "зв'язки"
+
+#: js/ajax.js:0;0;0;0;0;0;0
+#: js/ajax_view.js:0;0
+msgid "An error occurred at @path."
+msgstr ""
+
+#: js/tabs.js:0
+msgid "jQuery UI Tabs: Mismatching fragment identifier."
+msgstr ""
+
+#: js/tabs.js:0
+msgid "jQuery UI Tabs: Not enough arguments to add tab."
+msgstr ""
+
+#: modules/aggregator.views.inc:26
+msgid "Aggregator"
+msgstr "Підбірка новин"
+
+#: modules/aggregator.views.inc:31;299
+msgid "Aggregator item"
+msgstr ""
+
+#: modules/aggregator.views.inc:32
+msgid "Aggregator items are imported from external RSS and Atom news feeds."
+msgstr ""
+
+#: modules/aggregator.views.inc:41
+msgid "The title of the aggregator item."
+msgstr ""
+
+#: modules/aggregator.views.inc:59;191
+#: modules/node.views.inc:246
+msgid "Link"
+msgstr "Посилання"
+
+#: modules/aggregator.views.inc:60
+msgid "The link to the original source URL of the item."
+msgstr ""
+
+#: modules/aggregator.views.inc:76
+#: modules/comment.views.inc:95
+msgid "Author"
+msgstr "Автор"
+
+#: modules/aggregator.views.inc:77
+msgid "The author of the original imported item."
+msgstr ""
+
+#: modules/aggregator.views.inc:97
+#: modules/comment.views.inc:63
+#: modules/node.views.inc:362
+msgid "Body"
+msgstr "Тіло"
+
+#: modules/aggregator.views.inc:98
+msgid "The actual content of the imported item."
+msgstr ""
+
+#: modules/aggregator.views.inc:112
+#: modules/statistics.views.inc:231
+msgid "Timestamp"
+msgstr "Час"
+
+#: modules/aggregator.views.inc:113
+msgid "The date the original feed item was posted. (With some feeds, this will be the date it was imported.)"
+msgstr ""
+
+#: modules/aggregator.views.inc:135
+msgid "Aggregator feed"
+msgstr ""
+
+#: modules/aggregator.views.inc:147
+msgid "Feed ID"
+msgstr ""
+
+#: modules/aggregator.views.inc:148
+msgid "The unique ID of the aggregator feed."
+msgstr ""
+
+#: modules/aggregator.views.inc:173
+msgid "The title of the aggregator feed."
+msgstr ""
+
+#: modules/aggregator.views.inc:192
+msgid "The link to the source URL of the feed."
+msgstr ""
+
+#: modules/aggregator.views.inc:209
+msgid "Last checked"
+msgstr ""
+
+#: modules/aggregator.views.inc:210
+msgid "The date the feed was last checked for new content."
+msgstr ""
+
+#: modules/aggregator.views.inc:231
+msgid "The description of the aggregator feed."
+msgstr ""
+
+#: modules/aggregator.views.inc:245
+msgid "Last modified"
+msgstr ""
+
+#: modules/aggregator.views.inc:246
+msgid "The date of the most recent new content onf the feed."
+msgstr ""
+
+#: modules/aggregator.views.inc:300
+msgid "Display the aggregator item using the data from the original source."
+msgstr ""
+
+#: modules/book.views.inc:21;36;46;99
+msgid "Book"
+msgstr "Книга"
+
+#: modules/book.views.inc:30
+msgid "Top level book"
+msgstr ""
+
+#: modules/book.views.inc:31
+msgid "The book the node is in."
+msgstr ""
+
+#: modules/book.views.inc:58
+msgid "The weight of the book page."
+msgstr ""
+
+#: modules/book.views.inc:69
+#: modules/comment.views.inc:211
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:24
+msgid "Depth"
+msgstr ""
+
+#: modules/book.views.inc:70
+msgid "The depth of the book page in the hierarchy; top level books have a depth of 1."
+msgstr ""
+
+#: modules/book.views.inc:87
+msgid "Hierarchy"
+msgstr "Ієрархія"
+
+#: modules/book.views.inc:88
+msgid "The order of pages in the book hierarchy. If you want the exactly right order, remember to sort by weight, too."
+msgstr ""
+
+#: modules/book.views.inc:110
+#: modules/taxonomy.views.inc:263
+msgid "Parent"
+msgstr "Попередник"
+
+#: modules/book.views.inc:111
+msgid "The parent book node."
+msgstr ""
+
+#: modules/book.views.inc:116
+msgid "Book parent"
+msgstr ""
+
+#: modules/comment.views.inc:22;26;400;411
+msgid "Comment"
+msgstr "Коментар"
+
+#: modules/comment.views.inc:27
+msgid "Comments are responses to node content."
+msgstr ""
+
+#: modules/comment.views.inc:45
+msgid "The title of the comment."
+msgstr ""
+
+#: modules/comment.views.inc:64
+msgid "The text of the comment."
+msgstr ""
+
+#: modules/comment.views.inc:76
+msgid "ID"
+msgstr "Ідентифікатор"
+
+#: modules/comment.views.inc:77
+msgid "The comment ID of the field"
+msgstr ""
+
+#: modules/comment.views.inc:96
+msgid "The name of the comment's author. Can be rendered as a link to the author's homepage."
+msgstr ""
+
+#: modules/comment.views.inc:114
+msgid "Author's website"
+msgstr ""
+
+#: modules/comment.views.inc:115
+msgid "The website address of the comment's author. Can be rendered as a link. Will be empty if the author is a registered user."
+msgstr ""
+
+#: modules/comment.views.inc:133
+#: modules/node.views.inc:108
+msgid "Post date"
+msgstr ""
+
+#: modules/comment.views.inc:134
+msgid "Date and time of when the comment was posted."
+msgstr ""
+
+#: modules/comment.views.inc:149
+msgid "In moderation"
+msgstr ""
+
+#: modules/comment.views.inc:150
+msgid "Whether or not the comment is currently in moderation."
+msgstr ""
+
+#: modules/comment.views.inc:157
+#: modules/node.views.inc:206;215
+msgid "Moderated"
+msgstr ""
+
+#: modules/comment.views.inc:168
+msgid "View link"
+msgstr ""
+
+#: modules/comment.views.inc:169
+msgid "Provide a simple link to view the comment."
+msgstr ""
+
+#: modules/comment.views.inc:177
+#: modules/locale.views.inc:123
+#: modules/node.views.inc:254
+#: modules/user.views.inc:209
+msgid "Edit link"
+msgstr ""
+
+#: modules/comment.views.inc:178
+msgid "Provide a simple link to edit the comment."
+msgstr ""
+
+#: modules/comment.views.inc:186
+#: modules/node.views.inc:262;476
+#: modules/user.views.inc:217
+msgid "Delete link"
+msgstr ""
+
+#: modules/comment.views.inc:187
+msgid "Provide a simple link to delete the comment."
+msgstr ""
+
+#: modules/comment.views.inc:195
+msgid "Reply-to link"
+msgstr ""
+
+#: modules/comment.views.inc:196
+msgid "Provide a simple link to reply to the comment."
+msgstr ""
+
+#: modules/comment.views.inc:203
+msgid "Node link"
+msgstr ""
+
+#: modules/comment.views.inc:204
+msgid "Display the standard comment link used on regular nodes."
+msgstr ""
+
+#: modules/comment.views.inc:212
+msgid "Display the depth of the comment if it is threaded."
+msgstr ""
+
+#: modules/comment.views.inc:216
+msgid "Thread"
+msgstr "Напрям"
+
+#: modules/comment.views.inc:217
+msgid "Sort by the threaded order. This will keep child comments together with their parents."
+msgstr ""
+
+#: modules/comment.views.inc:223;229;264
+#: modules/node.views.inc:24;29;90;361;376;488;620;631;644
+#: modules/upload.views.inc:43
+msgid "Node"
+msgstr "Матеріал"
+
+#: modules/comment.views.inc:224
+msgid "The node the comment is a reply to."
+msgstr ""
+
+#: modules/comment.views.inc:234;240
+#: modules/node.views.inc:349
+#: modules/statistics.views.inc:204
+#: modules/user.views.inc:23;27;226;317
+msgid "User"
+msgstr "Користувач"
+
+#: modules/comment.views.inc:235
+msgid "The User ID of the comment's author."
+msgstr ""
+
+#: modules/comment.views.inc:245
+msgid "Parent CID"
+msgstr ""
+
+#: modules/comment.views.inc:246
+msgid "The Comment ID of the parent comment."
+msgstr ""
+
+#: modules/comment.views.inc:251;256
+msgid "Parent comment"
+msgstr ""
+
+#: modules/comment.views.inc:252
+msgid "The parent comment."
+msgstr ""
+
+#: modules/comment.views.inc:278
+msgid "Last comment time"
+msgstr "Час останнього коментаря"
+
+#: modules/comment.views.inc:279
+msgid "Date and time of when the last comment was posted."
+msgstr ""
+
+#: modules/comment.views.inc:294
+msgid "Last comment author"
+msgstr "Автор останнього коментаря"
+
+#: modules/comment.views.inc:295
+msgid "The name of the author of the last posted comment."
+msgstr ""
+
+#: modules/comment.views.inc:307
+msgid "Comment count"
+msgstr "Кількість коментарів"
+
+#: modules/comment.views.inc:308
+msgid "The number of comments a node has."
+msgstr ""
+
+#: modules/comment.views.inc:326
+msgid "Updated/commented date"
+msgstr ""
+
+#: modules/comment.views.inc:327
+msgid "The most recent of last comment posted or node updated time."
+msgstr ""
+
+#: modules/comment.views.inc:350
+msgid "New comments"
+msgstr ""
+
+#: modules/comment.views.inc:351
+msgid "The number of new comments on the node."
+msgstr ""
+
+#: modules/comment.views.inc:359
+msgid "Comment status"
+msgstr "Статус коментарів"
+
+#: modules/comment.views.inc:360
+msgid "Whether comments are enabled or disabled on the node."
+msgstr ""
+
+#: modules/comment.views.inc:374
+msgid "User posted or commented"
+msgstr ""
+
+#: modules/comment.views.inc:375
+msgid "Display nodes only if a user posted the node or commented on the node."
+msgstr ""
+
+#: modules/comment.views.inc:401
+msgid "Display the comment with standard comment view."
+msgstr ""
+
+#: modules/comment.views.inc:412
+msgid "Display the comment as RSS."
+msgstr ""
+
+#: modules/locale.views.inc:23;28;55;75;92;105;121
+msgid "Locale source"
+msgstr ""
+
+#: modules/locale.views.inc:29
+msgid "A source string for translation, in English or the default site language."
+msgstr ""
+
+#: modules/locale.views.inc:34
+msgid "LID"
+msgstr ""
+
+#: modules/locale.views.inc:35
+msgid "The ID of the source string."
+msgstr ""
+
+#: modules/locale.views.inc:56
+msgid "Location"
+msgstr "Розташування"
+
+#: modules/locale.views.inc:57
+msgid "A description of the location or context of the string."
+msgstr ""
+
+#: modules/locale.views.inc:76
+#: modules/locale/views_handler_filter_locale_group.inc:10
+msgid "Group"
+msgstr "Група"
+
+#: modules/locale.views.inc:77
+msgid "The group the translation is in."
+msgstr ""
+
+#: modules/locale.views.inc:93
+msgid "Source"
+msgstr "Джерело"
+
+#: modules/locale.views.inc:94
+msgid "The full original string."
+msgstr ""
+
+#: modules/locale.views.inc:106
+#: modules/locale/views_handler_filter_locale_version.inc:10
+msgid "Version"
+msgstr "Версія"
+
+#: modules/locale.views.inc:107
+msgid "The version of Drupal core that this string is for."
+msgstr ""
+
+#: modules/locale.views.inc:124
+msgid "Provide a simple link to edit the translations."
+msgstr ""
+
+#: modules/locale.views.inc:134;146;159;175;185
+msgid "Locale target"
+msgstr ""
+
+#: modules/locale.views.inc:147
+msgid "Translation"
+msgstr "Переклад"
+
+#: modules/locale.views.inc:148
+msgid "The full translation string."
+msgstr ""
+
+#: modules/locale.views.inc:160
+#: modules/translation.views.inc:32
+#: modules/locale/views_handler_filter_locale_language.inc:10
+#: modules/translation/views_handler_filter_node_language.inc:9
+msgid "Language"
+msgstr "Мова"
+
+#: modules/locale.views.inc:161
+msgid "The language this translation is in."
+msgstr ""
+
+#: modules/locale.views.inc:176
+msgid "Singular LID"
+msgstr ""
+
+#: modules/locale.views.inc:177
+msgid "The ID of the parent translation."
+msgstr ""
+
+#: modules/locale.views.inc:186;194
+msgid "Plural"
+msgstr ""
+
+#: modules/locale.views.inc:187
+msgid "Whether or not the translation is plural."
+msgstr ""
+
+#: modules/node.views.inc:30
+msgid "Nodes are a Drupal site's primary content."
+msgstr ""
+
+#: modules/node.views.inc:57
+msgid "Nid"
+msgstr ""
+
+#: modules/node.views.inc:58
+msgid "The node ID of the node."
+msgstr ""
+
+#: modules/node.views.inc:86;418
+msgid "The title of the node."
+msgstr ""
+
+#: modules/node.views.inc:109
+msgid "The date the node was posted."
+msgstr ""
+
+#: modules/node.views.inc:124
+msgid "Updated date"
+msgstr "Дата оновлення"
+
+#: modules/node.views.inc:125
+msgid "The date the node was last updated."
+msgstr ""
+
+#: modules/node.views.inc:141
+msgid "The type of a node (for example, \"blog entry\", \"forum post\", \"story\", etc)."
+msgstr ""
+
+#: modules/node.views.inc:160
+msgid "Whether or not the node is published."
+msgstr ""
+
+#: modules/node.views.inc:177;182
+msgid "Published or admin"
+msgstr ""
+
+#: modules/node.views.inc:178
+msgid "Filters out unpublished nodes if the current user cannot view them."
+msgstr ""
+
+#: modules/node.views.inc:188;196
+msgid "Promoted to front page"
+msgstr "Розміщене на першій сторінці"
+
+#: modules/node.views.inc:189
+msgid "Whether or not the node is promoted to the front page."
+msgstr ""
+
+#: modules/node.views.inc:207
+msgid "Whether or not the node is moderated."
+msgstr ""
+
+#: modules/node.views.inc:225;234
+msgid "Sticky"
+msgstr "Причіплено"
+
+#: modules/node.views.inc:226
+msgid "Whether or not the node is sticky."
+msgstr ""
+
+#: modules/node.views.inc:247
+msgid "Provide a simple link to the node."
+msgstr ""
+
+#: modules/node.views.inc:255
+msgid "Provide a simple link to edit the node."
+msgstr ""
+
+#: modules/node.views.inc:263
+msgid "Provide a simple link to delete the node."
+msgstr ""
+
+#: modules/node.views.inc:271;452
+#: modules/user.views.inc:129
+msgid "Created date"
+msgstr "Дата створення"
+
+#: modules/node.views.inc:272
+msgid "In the form of CCYYMMDD."
+msgstr ""
+
+#: modules/node.views.inc:280
+msgid "Created year + month"
+msgstr ""
+
+#: modules/node.views.inc:281
+msgid "In the form of YYYYMM."
+msgstr ""
+
+#: modules/node.views.inc:289
+msgid "Created year"
+msgstr ""
+
+#: modules/node.views.inc:290
+msgid "In the form of YYYY."
+msgstr ""
+
+#: modules/node.views.inc:298
+msgid "Created month"
+msgstr ""
+
+#: modules/node.views.inc:299
+msgid "In the form of MM (01 - 12)."
+msgstr ""
+
+#: modules/node.views.inc:307
+msgid "Created day"
+msgstr ""
+
+#: modules/node.views.inc:308
+msgid "In the form of DD (01 - 31)."
+msgstr ""
+
+#: modules/node.views.inc:316
+msgid "Created week"
+msgstr ""
+
+#: modules/node.views.inc:317
+msgid "In the form of WW (01 - 53)."
+msgstr ""
+
+#: modules/node.views.inc:329;334
+msgid "Node revision"
+msgstr ""
+
+#: modules/node.views.inc:335
+msgid "Node revisions are a history of changes to nodes."
+msgstr ""
+
+#: modules/node.views.inc:350
+msgid "Relate a node revision to the user who created the revision."
+msgstr ""
+
+#: modules/node.views.inc:355
+msgid "user"
+msgstr "користувач"
+
+#: modules/node.views.inc:363
+msgid "The actual, full data in the body field; this may not be valid data on all node types."
+msgstr ""
+
+#: modules/node.views.inc:377
+#: modules/node/views_plugin_row_node_view.inc:52
+msgid "Teaser"
+msgstr "Анонс"
+
+#: modules/node.views.inc:378
+msgid "The stored teaser field. This may not be valid or useful data on all node types."
+msgstr ""
+
+#: modules/node.views.inc:391
+msgid "Vid"
+msgstr ""
+
+#: modules/node.views.inc:392
+msgid "The revision ID of the node revision."
+msgstr ""
+
+#: modules/node.views.inc:438
+msgid "Log message"
+msgstr "Повідомлення в системний журнал"
+
+#: modules/node.views.inc:439
+msgid "The log message entered when the revision was created."
+msgstr ""
+
+#: modules/node.views.inc:453
+msgid "The date the node revision was created."
+msgstr ""
+
+#: modules/node.views.inc:468
+msgid "Revert link"
+msgstr ""
+
+#: modules/node.views.inc:469
+msgid "Provide a simple link to revert to the revision."
+msgstr ""
+
+#: modules/node.views.inc:477
+msgid "Provide a simple link to delete the node revision."
+msgstr ""
+
+#: modules/node.views.inc:504
+msgid "Has new content"
+msgstr ""
+
+#: modules/node.views.inc:507
+msgid "Show a marker if the node has new or updated content."
+msgstr ""
+
+#: modules/node.views.inc:510
+msgid "Show only nodes that have new content."
+msgstr ""
+
+#: modules/node.views.inc:621;632
+msgid "Display the node with standard node view."
+msgstr ""
+
+#: modules/node.views.inc:651
+msgid "Node ID from URL"
+msgstr ""
+
+#: modules/node.views.inc:718
+msgid "Display %display has no access control but does not contain a filter for published nodes."
+msgstr ""
+
+#: modules/poll.views.inc:20
+msgid "Poll"
+msgstr "Опитування"
+
+#: modules/poll.views.inc:35;43
+#: modules/user.views.inc:177;186
+msgid "Active"
+msgstr "Активний"
+
+#: modules/poll.views.inc:36
+msgid "Whether the poll is open for voting."
+msgstr ""
+
+#: modules/profile.views.inc:20;40
+msgid "Profile"
+msgstr "Профіль"
+
+#: modules/profile.views.inc:100
+msgid "@field-name"
+msgstr ""
+
+#: modules/profile.views.inc:107
+msgid "Profile textfield"
+msgstr ""
+
+#: modules/profile.views.inc:126
+msgid "Profile textarea"
+msgstr ""
+
+#: modules/profile.views.inc:142
+msgid "Profile checkbox"
+msgstr ""
+
+#: modules/profile.views.inc:159
+msgid "Profile URL"
+msgstr ""
+
+#: modules/profile.views.inc:175
+msgid "Profile selection"
+msgstr ""
+
+#: modules/profile.views.inc:195
+msgid "Profile freeform list %field-name."
+msgstr ""
+
+#: modules/profile.views.inc:207
+msgid "Profile date %field-name."
+msgstr ""
+
+#: modules/search.views.inc:23;86;104;167
+msgid "Search"
+msgstr "Пошук"
+
+#: modules/search.views.inc:72
+msgid "Score"
+msgstr "Оцінки"
+
+#: modules/search.views.inc:73
+msgid "The score of the search item. This will not be used if the search filter is not also present."
+msgstr ""
+
+#: modules/search.views.inc:93
+msgid "Links from"
+msgstr ""
+
+#: modules/search.views.inc:94
+msgid "Other nodes that are linked from the node."
+msgstr ""
+
+#: modules/search.views.inc:111
+msgid "Links to"
+msgstr ""
+
+#: modules/search.views.inc:112
+msgid "Other nodes that link to the node."
+msgstr ""
+
+#: modules/search.views.inc:123
+msgid "Search Terms"
+msgstr ""
+
+#: modules/search.views.inc:124
+msgid "The terms to search for."
+msgstr ""
+
+#: modules/search.views.inc:168
+msgid "Display the results with standard search view."
+msgstr ""
+
+#: modules/statistics.views.inc:24
+msgid "Node statistics"
+msgstr ""
+
+#: modules/statistics.views.inc:36
+msgid "Total views"
+msgstr "Переглядів"
+
+#: modules/statistics.views.inc:37
+msgid "The total number of times the node has been viewed."
+msgstr ""
+
+#: modules/statistics.views.inc:53
+msgid "Views today"
+msgstr "Переглядів сьогодні"
+
+#: modules/statistics.views.inc:54
+msgid "The total number of times the node has been viewed today."
+msgstr ""
+
+#: modules/statistics.views.inc:70
+msgid "Most recent view"
+msgstr ""
+
+#: modules/statistics.views.inc:71
+msgid "The most recent time the node has been viewed."
+msgstr ""
+
+#: modules/statistics.views.inc:89;94
+msgid "Access log"
+msgstr ""
+
+#: modules/statistics.views.inc:95
+msgid "Stores site access information."
+msgstr ""
+
+#: modules/statistics.views.inc:109
+msgid "Session ID"
+msgstr ""
+
+#: modules/statistics.views.inc:110
+msgid "Browser session ID of user that visited page."
+msgstr ""
+
+#: modules/statistics.views.inc:129
+msgid "Page title"
+msgstr "Назва сторінки"
+
+#: modules/statistics.views.inc:130
+msgid "Title of page visited."
+msgstr ""
+
+#: modules/statistics.views.inc:150
+msgid "Internal path to page visited (relative to Drupal root.)"
+msgstr "Внутрішній шлях до відвідуваної сторінки (відносно папки, де встановлено Drupal)."
+
+#: modules/statistics.views.inc:169
+msgid "Referrer"
+msgstr "Джерело"
+
+#: modules/statistics.views.inc:170
+msgid "Referrer URI."
+msgstr ""
+
+#: modules/statistics.views.inc:185
+msgid "Hostname"
+msgstr "Ім'я хосту"
+
+#: modules/statistics.views.inc:186
+msgid "Hostname of user that visited the page."
+msgstr ""
+
+#: modules/statistics.views.inc:205
+msgid "The user who visited the site."
+msgstr ""
+
+#: modules/statistics.views.inc:215
+msgid "Timer"
+msgstr ""
+
+#: modules/statistics.views.inc:216
+msgid "Time in milliseconds that the page took to load."
+msgstr ""
+
+#: modules/statistics.views.inc:232
+msgid "Timestamp of when the page was visited."
+msgstr ""
+
+#: modules/system.views.inc:25;30
+msgid "File"
+msgstr "Файл"
+
+#: modules/system.views.inc:31
+msgid "Files maintained by Drupal and various modules."
+msgstr ""
+
+#: modules/system.views.inc:49
+msgid "File ID"
+msgstr ""
+
+#: modules/system.views.inc:50
+msgid "The ID of the file."
+msgstr ""
+
+#: modules/system.views.inc:70
+msgid "The name of the file."
+msgstr ""
+
+#: modules/system.views.inc:89
+msgid "The path of the file."
+msgstr ""
+
+#: modules/system.views.inc:107
+msgid "Mime type"
+msgstr ""
+
+#: modules/system.views.inc:108
+msgid "The mime type of the file."
+msgstr ""
+
+#: modules/system.views.inc:126
+msgid "Size"
+msgstr "Розмір"
+
+#: modules/system.views.inc:127
+msgid "The size of the file."
+msgstr ""
+
+#: modules/system.views.inc:142
+msgid "Status"
+msgstr "Статус"
+
+#: modules/system.views.inc:143
+msgid "The status of the file."
+msgstr ""
+
+#: modules/system.views.inc:158
+msgid "Upload date"
+msgstr ""
+
+#: modules/system.views.inc:159
+msgid "The date the file was uploaded."
+msgstr ""
+
+#: modules/system.views.inc:204
+msgid "Temporary"
+msgstr "Тимчасово"
+
+#: modules/system.views.inc:205
+msgid "Permanent"
+msgstr "Постійно"
+
+#: modules/taxonomy.views.inc:24;67;156;174;230;270;307;318
+msgid "Taxonomy"
+msgstr "Таксономія"
+
+#: modules/taxonomy.views.inc:48
+msgid "Vocabulary name"
+msgstr "Назва словника"
+
+#: modules/taxonomy.views.inc:50
+msgid "Name of the vocabulary a term is a member of. This will be the vocabulary that whichever term the \"Taxonomy: Term\" field is; and can similarly cause duplicates."
+msgstr ""
+
+#: modules/taxonomy.views.inc:56
+msgid "Vocabulary ID"
+msgstr "ID словника"
+
+#: modules/taxonomy.views.inc:57
+msgid "The taxonomy vocabulary ID"
+msgstr ""
+
+#: modules/taxonomy.views.inc:70;120;217
+msgid "Term"
+msgstr "Термін"
+
+#: modules/taxonomy.views.inc:71
+msgid "Taxonomy terms are attached to nodes."
+msgstr ""
+
+#: modules/taxonomy.views.inc:96;200
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:35
+msgid "Term ID"
+msgstr "ID терміну"
+
+#: modules/taxonomy.views.inc:97;201
+msgid "The taxonomy term ID"
+msgstr ""
+
+#: modules/taxonomy.views.inc:121
+msgid "Taxonomy terms. Note that using this can cause duplicate nodes to appear in views; you must add filters to reduce the result set."
+msgstr ""
+
+#: modules/taxonomy.views.inc:131
+msgid "Taxonomy term name."
+msgstr ""
+
+#: modules/taxonomy.views.inc:140
+msgid "The term weight field"
+msgstr ""
+
+#: modules/taxonomy.views.inc:152
+msgid "Term description"
+msgstr ""
+
+#: modules/taxonomy.views.inc:153
+msgid "The description associated with a taxonomy term."
+msgstr ""
+
+#: modules/taxonomy.views.inc:164
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:39
+msgid "Vocabulary"
+msgstr "Словник"
+
+#: modules/taxonomy.views.inc:165
+msgid "Filter the results of \"Taxonomy: Term\" to a particular vocabulary."
+msgstr ""
+
+#: modules/taxonomy.views.inc:203
+msgid "All terms"
+msgstr "Всі терміни"
+
+#: modules/taxonomy.views.inc:204
+msgid "Display all taxonomy terms associated with a node from specified vocabularies."
+msgstr ""
+
+#: modules/taxonomy.views.inc:258
+msgid "Parent term"
+msgstr "Терм-попередник"
+
+#: modules/taxonomy.views.inc:259
+msgid "The parent term of the term. This can produce duplicate entries if you are using a vocabulary that allows multiple parents."
+msgstr ""
+
+#: modules/taxonomy.views.inc:291
+msgid "Term synonym"
+msgstr ""
+
+#: modules/taxonomy.views.inc:292
+msgid "Term synonyms may be used to find terms by alternate names."
+msgstr ""
+
+#: modules/taxonomy.views.inc:308
+msgid "Term ID (with depth)"
+msgstr ""
+
+#: modules/taxonomy.views.inc:309
+msgid "The depth filter is more complex, so provides fewer options."
+msgstr ""
+
+#: modules/taxonomy.views.inc:319
+msgid "Term ID depth modifier"
+msgstr ""
+
+#: modules/taxonomy.views.inc:320
+msgid "Allows the \"depth\" for Taxonomy: Term ID (with depth) to be modified via an additional argument."
+msgstr ""
+
+#: modules/taxonomy.views.inc:376
+msgid "Taxonomy term"
+msgstr "Термін таксономії"
+
+#: modules/translation.views.inc:31;48;80;97;107;117
+msgid "Node translation"
+msgstr "Переклад матеріалу"
+
+#: modules/translation.views.inc:33
+msgid "The language the content is in."
+msgstr ""
+
+#: modules/translation.views.inc:49
+msgid "Translation set node ID"
+msgstr ""
+
+#: modules/translation.views.inc:50
+msgid "The ID of the translation set the content belongs to."
+msgstr ""
+
+#: modules/translation.views.inc:69;74;98
+msgid "Source translation"
+msgstr "Базовий переклад"
+
+#: modules/translation.views.inc:70
+msgid "The source that this content was translated from."
+msgstr ""
+
+#: modules/translation.views.inc:81;84;91
+msgid "Translations"
+msgstr "Переклади"
+
+#: modules/translation.views.inc:82;85
+msgid "Versions of content in different languages."
+msgstr ""
+
+#: modules/translation.views.inc:99
+msgid "Nodes that are either untranslated or are the original versions of a translation set."
+msgstr ""
+
+#: modules/translation.views.inc:108
+msgid "Child translation"
+msgstr "Дочірній переклад"
+
+#: modules/translation.views.inc:109
+msgid "Nodes that are translations of a source translation."
+msgstr ""
+
+#: modules/translation.views.inc:118
+msgid "Translation status"
+msgstr "Статус перекладу"
+
+#: modules/translation.views.inc:119
+msgid "The translation status of the node--whether or not the translation needs to be updated."
+msgstr ""
+
+#: modules/translation.views.inc:126
+msgid "Outdated"
+msgstr "Просрочений"
+
+#: modules/upload.views.inc:25;113
+msgid "Upload"
+msgstr "Завантажити"
+
+#: modules/upload.views.inc:44
+msgid "The node the uploaded file is attached to"
+msgstr ""
+
+#: modules/upload.views.inc:46
+msgid "upload"
+msgstr "завантажити"
+
+#: modules/upload.views.inc:57
+msgid "The description of the uploaded file."
+msgstr ""
+
+#: modules/upload.views.inc:74
+msgid "Listed"
+msgstr ""
+
+#: modules/upload.views.inc:75
+msgid "Whether or not the file is marked to be listed."
+msgstr ""
+
+#: modules/upload.views.inc:92
+msgid "The weight, used for sorting."
+msgstr ""
+
+#: modules/upload.views.inc:114;127
+msgid "Attached files"
+msgstr "Вкладені файли"
+
+#: modules/upload.views.inc:115
+msgid "All files attached to a node with upload.module."
+msgstr ""
+
+#: modules/upload.views.inc:122
+#: modules/upload/views_handler_filter_upload_fid.inc:10
+msgid "Has attached files"
+msgstr "Присутні вкладені файли"
+
+#: modules/upload.views.inc:124
+msgid "Only display items with attached files. This can cause duplicates if there are multiple attached files."
+msgstr ""
+
+#: modules/upload.views.inc:128
+msgid "Add a relationship to gain access to more file data for files uploaded by upload.module. Note that this relationship will cause duplicate nodes if there are multiple files attached to the node."
+msgstr ""
+
+#: modules/upload.views.inc:134
+msgid "Files"
+msgstr "Файли"
+
+#: modules/user.views.inc:28
+msgid "Users who have created accounts on your site."
+msgstr ""
+
+#: modules/user.views.inc:48
+msgid "Uid"
+msgstr ""
+
+#: modules/user.views.inc:49
+msgid "The user ID"
+msgstr ""
+
+#: modules/user.views.inc:70
+msgid "Current"
+msgstr "Теперішній"
+
+#: modules/user.views.inc:71
+msgid "Filter the view to the currently logged in user."
+msgstr ""
+
+#: modules/user.views.inc:81
+msgid "The user or author name."
+msgstr ""
+
+#: modules/user.views.inc:97
+msgid "E-mail"
+msgstr "Адреса e-mail"
+
+#: modules/user.views.inc:98
+msgid "Email address for a given user. This field is normally not shown to users, so be cautious when using it."
+msgstr ""
+
+#: modules/user.views.inc:113
+msgid "Picture"
+msgstr "Аватар"
+
+#: modules/user.views.inc:114
+msgid "The user's picture, if allowed."
+msgstr ""
+
+#: modules/user.views.inc:122
+msgid "Has Avatar"
+msgstr "Має Аватар"
+
+#: modules/user.views.inc:130
+msgid "The date the user was created."
+msgstr ""
+
+#: modules/user.views.inc:145
+msgid "Last access"
+msgstr "Останній вхід"
+
+#: modules/user.views.inc:146
+msgid "The user's last access date."
+msgstr ""
+
+#: modules/user.views.inc:161
+msgid "Last login"
+msgstr "Останній вхід"
+
+#: modules/user.views.inc:162
+msgid "The user's last login date."
+msgstr ""
+
+#: modules/user.views.inc:178
+msgid "Whether a user is active or blocked."
+msgstr ""
+
+#: modules/user.views.inc:196
+msgid "Signature"
+msgstr "Підпис"
+
+#: modules/user.views.inc:197
+msgid "The user's signature."
+msgstr "Підпис користувача"
+
+#: modules/user.views.inc:210
+msgid "Provide a simple link to edit the user."
+msgstr ""
+
+#: modules/user.views.inc:218
+msgid "Provide a simple link to delete the user."
+msgstr ""
+
+#: modules/user.views.inc:247
+msgid "Roles"
+msgstr "Ролі"
+
+#: modules/user.views.inc:248
+msgid "Roles that a user belongs to."
+msgstr ""
+
+#: modules/user.views.inc:260
+msgid "No role"
+msgstr ""
+
+#: modules/user.views.inc:303
+msgid "User ID from URL"
+msgstr ""
+
+#: modules/user.views.inc:309
+msgid "User ID from logged in user"
+msgstr ""
+
+#: modules/views.views.inc:18
+msgid "Global"
+msgstr "Глобальне"
+
+#: modules/views.views.inc:24
+msgid "Random"
+msgstr "Випадково"
+
+#: modules/views.views.inc:25
+msgid "Randomize the display order."
+msgstr "Випадковість сортування відображення"
+
+#: modules/views.views.inc:32
+msgid "Null"
+msgstr "Зеро"
+
+#: modules/views.views.inc:33
+msgid "Allow an argument to be ignored. The query will not be altered by this argument."
+msgstr ""
+
+#: modules/views.views.inc:40
+msgid "Custom text"
+msgstr "Свій текст"
+
+#: modules/views.views.inc:41
+msgid "Provide custom text or link."
+msgstr "Занзачити свій текст або посилання"
+
+#: modules/aggregator/views_plugin_row_aggregator_rss.inc:25
+#: modules/node/views_plugin_row_node_rss.inc:32
+msgid "Full text"
+msgstr "Повний текст"
+
+#: modules/aggregator/views_plugin_row_aggregator_rss.inc:26
+#: modules/node/views_plugin_row_node_rss.inc:33
+msgid "Title plus teaser"
+msgstr "Назва плюс анонс"
+
+#: modules/aggregator/views_plugin_row_aggregator_rss.inc:27
+#: modules/node/views_plugin_row_node_rss.inc:34
+msgid "Title only"
+msgstr "Тільки назва"
+
+#: modules/aggregator/views_plugin_row_aggregator_rss.inc:28
+#: modules/node/views_plugin_row_node_rss.inc:35
+msgid "Use default RSS settings"
+msgstr ""
+
+#: modules/comment/views_handler_argument_comment_user_uid.inc:11
+#: modules/user/views_handler_argument_user_uid.inc:17
+msgid "Anonymous"
+msgstr "Гість"
+
+#: modules/comment/views_handler_argument_comment_user_uid.inc:17
+msgid "No user"
+msgstr ""
+
+#: modules/comment/views_handler_field_comment.inc:30
+msgid "Link this field to its comment"
+msgstr ""
+
+#: modules/comment/views_handler_field_comment.inc:31
+#: modules/comment/views_handler_field_node_new_comments.inc:26
+#: modules/node/views_handler_field_node.inc:33
+#: modules/system/views_handler_field_file.inc:30
+#: modules/taxonomy/views_handler_field_taxonomy.inc:34
+#: modules/user/views_handler_field_user.inc:31
+msgid "This will override any other link you have set."
+msgstr ""
+
+#: modules/comment/views_handler_field_comment_link.inc:23
+#: modules/locale/views_handler_field_locale_link_edit.inc:25
+#: modules/node/views_handler_field_node_link.inc:24
+#: modules/user/views_handler_field_user_link.inc:22
+msgid "Text to display"
+msgstr "Текст для відображення"
+
+#: modules/comment/views_handler_field_comment_link.inc:34
+#: modules/node/views_handler_field_node_link.inc:35
+#: modules/user/views_handler_field_user_link.inc:38
+msgid "view"
+msgstr "перегляд"
+
+#: modules/comment/views_handler_field_comment_link_delete.inc:12
+#: modules/node/views_handler_field_node_link_delete.inc:26
+#: modules/node/views_handler_field_node_revision_link_delete.inc:35
+#: modules/user/views_handler_field_user_link_delete.inc:13
+msgid "delete"
+msgstr "стерти"
+
+#: modules/comment/views_handler_field_comment_link_edit.inc:21
+#: modules/locale/views_handler_field_locale_link_edit.inc:41
+#: modules/node/views_handler_field_node_link_edit.inc:26
+#: modules/user/views_handler_field_user_link_edit.inc:13
+msgid "edit"
+msgstr "редагувати"
+
+#: modules/comment/views_handler_field_comment_link_reply.inc:13
+msgid "reply"
+msgstr "відповісти"
+
+#: modules/comment/views_handler_field_comment_node_link.inc:36
+msgid "Show teaser-style link"
+msgstr ""
+
+#: modules/comment/views_handler_field_comment_username.inc:25
+msgid "Link this field to its user or an author's homepage"
+msgstr ""
+
+#: modules/comment/views_handler_field_node_comment.inc:12
+#: modules/comment/views_handler_filter_node_comment.inc:10
+msgid "Disabled"
+msgstr "Вимкнено"
+
+#: modules/comment/views_handler_field_node_comment.inc:14
+#: modules/comment/views_handler_filter_node_comment.inc:11
+msgid "Read only"
+msgstr "Тільки для читання"
+
+#: modules/comment/views_handler_field_node_comment.inc:16
+#: modules/comment/views_handler_filter_node_comment.inc:12
+msgid "Read/Write"
+msgstr "Читати/Писати"
+
+#: modules/comment/views_handler_field_node_new_comments.inc:25
+msgid "Link this field to new comments"
+msgstr ""
+
+#: modules/comment/views_handler_field_node_new_comments.inc:31
+msgid "Display nothing if no new comments"
+msgstr ""
+
+#: modules/comment/views_plugin_row_comment_view.inc:21
+#: modules/node/views_plugin_row_node_view.inc:64
+msgid "Display links"
+msgstr "Відображення посилань"
+
+#: modules/locale/views_handler_argument_locale_group.inc:32
+msgid "Unknown group"
+msgstr "Невідома група"
+
+#: modules/locale/views_handler_argument_locale_language.inc:30
+#: modules/node/views_handler_argument_node_language.inc:29
+#: modules/translation/views_handler_argument_node_language.inc:29
+msgid "Unknown language"
+msgstr "Невідома мова"
+
+#: modules/locale/views_handler_filter_locale_language.inc:11
+#: modules/translation/views_handler_filter_node_language.inc:10
+msgid "Current user's language"
+msgstr "Теперішня мова користувача"
+
+#: modules/locale/views_handler_filter_locale_language.inc:11
+#: modules/translation/views_handler_filter_node_language.inc:10
+msgid "Default site language"
+msgstr "Базова мова сайту"
+
+#: modules/locale/views_handler_filter_locale_language.inc:11
+#: modules/translation/views_handler_filter_node_language.inc:10
+msgid "No language"
+msgstr ""
+
+#: modules/locale/views_handler_filter_locale_version.inc:12
+msgid "Current installed version"
+msgstr "Теперішня встановлена версія"
+
+#: modules/node/views_handler_argument_dates_various.inc:167
+msgid "Week @week"
+msgstr "Тиждень @week"
+
+#: modules/node/views_handler_argument_node_type.inc:30
+msgid "Unknown node type"
+msgstr ""
+
+#: modules/node/views_handler_field_history_user_timestamp.inc:32
+msgid "Check for new comments as well"
+msgstr ""
+
+#: modules/node/views_handler_field_node.inc:32
+msgid "Link this field to its node"
+msgstr ""
+
+#: modules/node/views_handler_field_node_revision_link_revert.inc:36
+msgid "revert"
+msgstr "повернути"
+
+#: modules/node/views_handler_filter_node_type.inc:9
+msgid "Node type"
+msgstr "Тип ноди"
+
+#: modules/node/views_plugin_argument_validate_node.inc:29
+msgid "Types"
+msgstr "Типи"
+
+#: modules/node/views_plugin_argument_validate_node.inc:32
+msgid "If you wish to validate for specific node types, check them; if none are checked, all nodes will pass."
+msgstr ""
+
+#: modules/node/views_plugin_argument_validate_node.inc:39
+msgid "Validate user has access to the node"
+msgstr ""
+
+#: modules/node/views_plugin_argument_validate_node.inc:47
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:33
+msgid "Argument type"
+msgstr "Тип аргументу"
+
+#: modules/node/views_plugin_argument_validate_node.inc:49
+msgid "Node ID"
+msgstr "Ідентифікатор ноди"
+
+#: modules/node/views_plugin_argument_validate_node.inc:50
+msgid "Node IDs separated by , or +"
+msgstr ""
+
+#: modules/node/views_plugin_row_node_rss.inc:129
+msgid "read more"
+msgstr "докладніше"
+
+#: modules/node/views_plugin_row_node_view.inc:53
+msgid "Full node"
+msgstr "Повний матеріал"
+
+#: modules/node/views_plugin_row_node_view.inc:59
+msgid "Build mode"
+msgstr ""
+
+#: modules/node/views_plugin_row_node_view.inc:69
+msgid "Display node comments"
+msgstr ""
+
+#: modules/search/views_handler_field_search_score.inc:21
+msgid "No alternate"
+msgstr ""
+
+#: modules/search/views_handler_field_search_score.inc:28
+msgid "Alternative sort"
+msgstr ""
+
+#: modules/search/views_handler_field_search_score.inc:29
+msgid "If no search is performed and this field does not appear, pick an alternative default table sort field."
+msgstr ""
+
+#: modules/search/views_handler_field_search_score.inc:36
+msgid "Alternate sort order"
+msgstr ""
+
+#: modules/search/views_handler_filter_search.inc:23
+msgid "On empty input"
+msgstr ""
+
+#: modules/search/views_handler_filter_search.inc:26
+msgid "Show All"
+msgstr ""
+
+#: modules/search/views_handler_filter_search.inc:27
+msgid "Show None"
+msgstr ""
+
+#: modules/search/views_handler_filter_search.inc:42
+msgid "Enter the terms you wish to search for."
+msgstr "Впишіть слова для пошуку."
+
+#: modules/search/views_handler_filter_search.inc:60
+msgid "You must include at least one positive keyword with @count characters or more."
+msgstr "Вам необхідно вказати хоча б одне ключове слово, що містить не менше @count символів."
+
+#: modules/search/views_handler_filter_search.inc:64
+msgid "Search for either of the two terms with uppercase OR. For example, cats OR dogs."
+msgstr ""
+
+#: modules/search/views_plugin_row_search_view.inc:23
+msgid "Display score"
+msgstr ""
+
+#: modules/system/views_handler_argument_file_fid.inc:13
+msgid "No title"
+msgstr ""
+
+#: modules/system/views_handler_field_file.inc:29
+#: modules/upload/views_handler_field_upload_description.inc:24
+#: modules/upload/views_handler_field_upload_fid.inc:25
+msgid "Link this field to download the file"
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_taxonomy.inc:18
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:125
+msgid "No name"
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_term_node_tid.inc:17
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:38
+msgid "Set the breadcrumb for the term parents"
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_term_node_tid.inc:18
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:39
+msgid "If selected, the breadcrumb trail will include all parent terms, each one linking to this view. Note that this only works if just one term was received."
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:26
+msgid "The depth will match nodes tagged with terms in the hierarchy. For example, if you have the term \"fruit\" and a child term \"apple\", with a depth of 1 (or higher) then filtering for the term \"fruit\" will get nodes that are tagged with \"apple\" as well as \"fruit\". If negative, the reverse is true; searching for \"apple\" will also pick up nodes tagged with \"fruit\" if depth is -1 (or lower)."
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:31
+msgid "Allow multiple terms per argument"
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:32
+msgid "If selected, users can enter multiple arguments in the form of 1+2+3. Due to the number of JOINs it would require, AND will be treated as OR with this argument."
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_vocabulary_vid.inc:15
+msgid "No vocabulary"
+msgstr ""
+
+#: modules/taxonomy/views_handler_field_taxonomy.inc:33
+msgid "Link this field to its taxonomy term page"
+msgstr ""
+
+#: modules/taxonomy/views_handler_field_term_node_tid.inc:34
+msgid "Link this field to its term page"
+msgstr ""
+
+#: modules/taxonomy/views_handler_field_term_node_tid.inc:41
+msgid "Limit terms by vocabulary"
+msgstr ""
+
+#: modules/taxonomy/views_handler_field_term_node_tid.inc:55
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:23
+msgid "Vocabularies"
+msgstr "Словники"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:41
+msgid "Select which vocabulary to show terms for in the regular options."
+msgstr ""
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:52
+msgid "Selection type"
+msgstr "Тип вибору"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:53
+msgid "Dropdown"
+msgstr "Випадання"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:53
+msgid "Autocomplete"
+msgstr "Автодоповнення"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:59
+msgid "Show hierarchy in dropdown"
+msgstr ""
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:76
+msgid "An invalid vocabulary is selected. Please change it in the options."
+msgstr ""
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:94;158
+msgid "Select terms from vocabulary @voc"
+msgstr ""
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:94;158
+msgid "Select terms"
+msgstr "Вибір термінів"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:273
+msgid "Unable to find term: @terms"
+msgid_plural "Unable to find terms: @terms"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:26
+msgid "If you wish to validate for specific vocabularies, check them; if none are checked, all terms will pass."
+msgstr ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:36
+msgid "Term IDs separated by , or +"
+msgstr ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:37
+msgid "Term name or synonym"
+msgstr ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:38
+msgid "Term name/synonym converted to Term ID"
+msgstr ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:41
+msgid "Select the form of this argument; if using term name, it is generally more efficient to convert it to a term ID and use Taxonomy: Term ID rather than Taxonomy: Term Name\" as an argument."
+msgstr ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:48
+msgid "Transform dashes in URL to spaces in term name arguments"
+msgstr ""
+
+#: modules/translation/views_handler_filter_node_tnid.inc:22
+msgid "Include untranslated nodes"
+msgstr ""
+
+#: modules/translation/views_handler_relationship_translation.inc:24
+msgid "Current language"
+msgstr "Теперішня мова"
+
+#: modules/translation/views_handler_relationship_translation.inc:25
+msgid "Default language"
+msgstr "Базова мова"
+
+#: modules/translation/views_handler_relationship_translation.inc:32
+msgid "Translation option"
+msgstr "Параметри перекладу"
+
+#: modules/translation/views_handler_relationship_translation.inc:33
+msgid "The translation options allows you to select which translation or translations in a translation set join on. Select \"Current language\" or \"Default language\" to join on the translation in the current or default language respectively. Select a specific language to join on a translation in that language. If you select \"All\", each translation will create a new row, which may appear to cause duplicates."
+msgstr ""
+
+#: modules/upload/views_handler_field_upload_fid.inc:31
+msgid "Only show \"listed\" file attachments"
+msgstr ""
+
+#: modules/user/views_handler_field_user.inc:30
+msgid "Link this field to its user"
+msgstr ""
+
+#: modules/user/views_handler_field_user_mail.inc:16
+msgid "Link this field"
+msgstr ""
+
+#: modules/user/views_handler_field_user_mail.inc:19
+msgid "No link"
+msgstr "Без посилання"
+
+#: modules/user/views_handler_field_user_mail.inc:20
+msgid "To the user"
+msgstr "До користувача"
+
+#: modules/user/views_handler_field_user_mail.inc:21
+msgid "With a mailto:"
+msgstr ""
+
+#: modules/user/views_handler_field_user_name.inc:30
+msgid "Overwrite the value to display for anonymous users"
+msgstr ""
+
+#: modules/user/views_handler_field_user_name.inc:33
+msgid "If selected, you will see a field to enter the text to use for anonymous users."
+msgstr ""
+
+#: modules/user/views_handler_field_user_name.inc:36
+msgid "Text to display for anonymous users"
+msgstr ""
+
+#: modules/user/views_handler_filter_user_current.inc:10
+msgid "Is the logged in user"
+msgstr ""
+
+#: modules/user/views_handler_filter_user_name.inc:28
+msgid "Usernames"
+msgstr "Імена користувачів"
+
+#: modules/user/views_handler_filter_user_name.inc:29
+msgid "Enter a comma separated list of user names."
+msgstr ""
+
+#: modules/user/views_handler_filter_user_name.inc:112
+msgid "Unable to find user: @users"
+msgid_plural "Unable to find users: @users"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: modules/user/views_plugin_argument_default_user.inc:17
+msgid "Also look for a node and use the node author"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:22
+msgid "Type of user argument to allow"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:24
+msgid "Only allow numeric UIDs"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:25
+msgid "Only allow string usernames"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:26
+msgid "Allow both numeric UIDs and string usernames"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:37
+msgid "Restrict user based on role"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:47
+msgid "Restrict to the selected roles"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:50
+msgid "If no roles are selected, users from any role will be allowed."
+msgstr ""
+
+#: plugins/views_plugin_access_none.inc:9
+msgid "Unrestricted"
+msgstr "Необмежено"
+
+#: plugins/views_plugin_access_perm.inc:37
+msgid "Only users with the selected permission flag will be able to access this display. Note that users with \"access all views\" can see any view, regardless of other permissions."
+msgstr ""
+
+#: plugins/views_plugin_access_role.inc:21
+msgid "No role(s) selected"
+msgstr ""
+
+#: plugins/views_plugin_access_role.inc:24
+msgid "Multiple roles"
+msgstr "Багато ролей"
+
+#: plugins/views_plugin_access_role.inc:43
+msgid "Only the checked roles will be able to access this display. Note that users with \"access all views\" can see any view, regardless of role."
+msgstr ""
+
+#: plugins/views_plugin_access_role.inc:49
+msgid "You must select at least one role if type is \"by role\""
+msgstr ""
+
+#: plugins/views_plugin_argument_default.inc:32
+msgid "Default argument"
+msgstr "Базовий аргумент"
+
+#: plugins/views_plugin_argument_default.inc:54
+msgid "Note: you do not have permission to modify this. If you change the default argument type, this setting will be lost and you will NOT be able to get it back."
+msgstr ""
+
+#: plugins/views_plugin_argument_default_php.inc:17
+msgid "PHP argument code"
+msgstr ""
+
+#: plugins/views_plugin_argument_default_php.inc:20
+msgid "Enter PHP code that returns a value to use for this argument. Do not use <?php ?>. You must return only a single value for just this argument."
+msgstr ""
+
+#: plugins/views_plugin_argument_validate.inc:43
+msgid "Note: you do not have permission to modify this. If you change the validator, this setting will be lost and you will NOT be able to get it back."
+msgstr ""
+
+#: plugins/views_plugin_argument_validate_php.inc:19
+msgid "PHP validate code"
+msgstr ""
+
+#: plugins/views_plugin_argument_validate_php.inc:21
+msgid "Enter PHP code that returns TRUE or FALSE. No return is the same as FALSE, so be SURE to return something if you do not want to declare the argument invalid. Do not use <?php ?>. The argument to validate will be \"$argument\" and the view will be \"$view\". You may change the argument by setting \"$handler->argument\"."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:558
+msgid "Broken field"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:575
+msgid "Basic settings"
+msgstr "Базові параметри"
+
+#: plugins/views_plugin_display.inc:582
+msgid "Change the name of this display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:594
+msgid "Change the title that this display will use."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:604
+msgid "Style"
+msgstr "Стиль"
+
+#: plugins/views_plugin_display.inc:606
+msgid "Change the style plugin."
+msgstr "Змінити додаток стилю"
+
+#: plugins/views_plugin_display.inc:620
+msgid "Row style"
+msgstr "Рядковий стиль"
+
+#: plugins/views_plugin_display.inc:622
+msgid "Change the row plugin."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:632
+msgid "Use AJAX"
+msgstr "Використовувати AJAX"
+
+#: plugins/views_plugin_display.inc:634
+msgid "Change whether or not this display will use AJAX."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:641
+msgid "Use pager"
+msgstr "Використовувати сторінковість"
+
+#: plugins/views_plugin_display.inc:642
+msgid "Mini"
+msgstr "Міні"
+
+#: plugins/views_plugin_display.inc:643
+msgid "Change this display's pager setting."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:650;822
+msgid "Items per page"
+msgstr "Елементів на сторінку"
+
+#: plugins/views_plugin_display.inc:650;822
+#: plugins/views_plugin_style_summary.inc:43
+msgid "Items to display"
+msgstr "Відображати елементів"
+
+#: plugins/views_plugin_display.inc:651
+msgid "Unlimited"
+msgstr "Необмежений"
+
+#: plugins/views_plugin_display.inc:652
+msgid "Change how many items to display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:658
+msgid "More link"
+msgstr "Посилання \"ще(далі)\""
+
+#: plugins/views_plugin_display.inc:660
+msgid "Specify whether this display will provide a \"more\" link."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:666;849
+msgid "Distinct"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:668;846
+msgid "Display only distinct items, without duplicates."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:681
+msgid "Access"
+msgstr "ДОступ"
+
+#: plugins/views_plugin_display.inc:683
+msgid "Specify access control type for this display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:687
+msgid "Change settings for this access type."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:707
+msgid "Link display"
+msgstr "Відображення посилання"
+
+#: plugins/views_plugin_display.inc:709
+msgid "Specify which display this display will link to."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:716
+msgid "Exposed form in block"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:718
+msgid "Allow the exposed form to appear in a block instead of the view."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:721;897
+msgid "Header"
+msgstr "Заголовок"
+
+#: plugins/views_plugin_display.inc:721;913
+msgid "Footer"
+msgstr "Нижній колонтитул"
+
+#: plugins/views_plugin_display.inc:721;929
+msgid "Empty text"
+msgstr "Пустий текст"
+
+#: plugins/views_plugin_display.inc:737
+msgid "Unknown/missing format"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:745
+msgid "Change this display's !name."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:751
+msgid "Theme"
+msgstr "Тема"
+
+#: plugins/views_plugin_display.inc:752
+msgid "Information"
+msgstr "Інформація"
+
+#: plugins/views_plugin_display.inc:753
+msgid "Get information on how to theme this display"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:779
+msgid "The name of this display"
+msgstr "Ім'я відображення"
+
+#: plugins/views_plugin_display.inc:782
+msgid "This title will appear only in the administrative interface for the View."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:787
+msgid "The title of this view"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:790
+msgid "This title will be displayed with the view, wherever titles are normally displayed; i.e, as the page title, block title, etc."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:795
+msgid "Use AJAX when available to load this view"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:799
+msgid "If set, this view will use an AJAX mechanism for paging, table sorting and exposed filters. This means the entire page will not refresh. It is not recommended that you use this if this view is the main content of the page as it will prevent deep linking to specific pages, but it is very useful for side content."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:808
+msgid "Use a pager for this view"
+msgstr "Використовувати розбиття по сторінках для цього вигляду"
+
+#: plugins/views_plugin_display.inc:811
+msgid "Full pager"
+msgstr "Повний стиль"
+
+#: plugins/views_plugin_display.inc:811
+msgid "Mini pager"
+msgstr "Міні стиль"
+
+#: plugins/views_plugin_display.inc:816
+msgid "Pager element"
+msgstr "Розбиття по сторінках"
+
+#: plugins/views_plugin_display.inc:817
+msgid "Unless you're experiencing problems with pagers related to this view, you should leave this at 0. If using multiple pagers on one page you may need to set this number to a higher value so as not to conflict within the ?page= array. Large values will add a lot of commas to your URLs, so avoid if possible."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:826
+msgid "The number of items to display per page. Enter 0 for no limit."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:831
+msgid "Offset"
+msgstr "Зміщення"
+
+#: plugins/views_plugin_display.inc:832
+msgid "The number of items to skip. For example, if this field is 3, the first 3 items will be skipped and not displayed. Offset can not be used if items to display is 0; instead use a very large number there."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:837
+msgid "Add a more link to the bottom of the display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:840
+msgid "Create more link"
+msgstr "Створити посилання \"далі(ще)\""
+
+#: plugins/views_plugin_display.inc:841
+msgid "This will add a more link to the bottom of this view, which will link to the page view. If you have more than one page view, the link will point to the display specified in 'Link display' above."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:850
+msgid "This will make the view display only distinct items. If there are multiple identical items, each will be displayed only once. You can use this to try and remove duplicates from a view, though it does not always work. Note that this can slow queries down, so use it with caution."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:855
+msgid "Access restrictions"
+msgstr "Обмеження доступу"
+
+#: plugins/views_plugin_display.inc:874;954
+msgid "You may also adjust the !settings for the currently selected style by clicking on the icon."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:874;954;999
+msgid "settings"
+msgstr "налаштування"
+
+#: plugins/views_plugin_display.inc:882
+msgid "Access options"
+msgstr "Параметри доступу"
+
+#: plugins/views_plugin_display.inc:900;916
+msgid "Display even if view has no result"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:907
+msgid "Text to display at the top of the view. May contain an explanation or links or whatever you like. Optional."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:923
+msgid "Text to display beneath the view. May contain an explanation or links or whatever you like. Optional."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:934
+msgid "Text to display if the view has no results. Optional."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:940
+msgid "How should this view be styled"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:946
+msgid "If the style you choose has settings, be sure to click the settings button that will appear next to it in the View summary."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:960
+msgid "Style options"
+msgstr "Параметри стилю"
+
+#: plugins/views_plugin_display.inc:971
+msgid "Row style options"
+msgstr "Параметри стилю рядка"
+
+#: plugins/views_plugin_display.inc:986
+msgid "How should each row in this view be styled"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:999
+msgid "You may also adjust the !settings for the currently selected row style by clicking on the icon."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1005
+msgid "Which display to use for path"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1014
+msgid "Which display to use to get this display's path for things like summary links, rss feed links, more links, etc."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1019
+msgid "Theming information"
+msgstr "Інформація для розробки тем"
+
+#: plugins/views_plugin_display.inc:1027
+msgid "Display output"
+msgstr "Відображення виводу"
+
+#: plugins/views_plugin_display.inc:1031
+msgid "Alternative display output"
+msgstr "Альтернативний стиль відображення"
+
+#: plugins/views_plugin_display.inc:1038
+msgid "Style output"
+msgstr "Стиль виводу"
+
+#: plugins/views_plugin_display.inc:1042
+msgid "Alternative style"
+msgstr "Альтернативний стиль"
+
+#: plugins/views_plugin_display.inc:1049
+msgid "Row style output"
+msgstr "Стиль виводу - в рядок"
+
+#: plugins/views_plugin_display.inc:1053
+msgid "Alternative row style"
+msgstr "Альтернативний стиль рядка"
+
+#: plugins/views_plugin_display.inc:1061
+msgid "Field @field (ID: @id)"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1069
+msgid "This section lists all possible templates for the display plugin and for the style plugins, ordered roughly from the least specific to the most specific. The active template for each plugin -- which is the most specific template found on the system -- is highlighted in bold."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1084
+msgid "Rescan template files"
+msgstr "Перечитати файли шаблона"
+
+#: plugins/views_plugin_display.inc:1090
+msgid "Important! When adding, removing, or renaming template files, it is necessary to make Drupal aware of the changes by making it rescan the files on your system. By clicking this button you clear Drupal's theme registry and thereby trigger this rescanning process. The highlighted templates above will then reflect the new state of your system."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1096
+msgid "Theming information (display)"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1097;1124;1153;1182
+msgid "Back to !info."
+msgstr "Повернутись до !info"
+
+#: plugins/views_plugin_display.inc:1097;1124;1153;1182
+msgid "theming information"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1100
+msgid "This display has no theming information"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1103
+msgid "This is the default theme template used for this display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1109
+msgid "This is an alternative template for this display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1123
+msgid "Theming information (style)"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1129
+msgid "This display has no style theming information"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1132
+msgid "This is the default theme template used for this style."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1138
+msgid "This is an alternative template for this style."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1152;1181
+msgid "Theming information (row style)"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1158
+msgid "This display has no row style theming information"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1161;1184
+msgid "This is the default theme template used for this row style."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1167
+msgid "This is an alternative template for this row style."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1199
+msgid "Put the exposed form in a block"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1203
+msgid "If set, any exposed widgets will not appear with this view. Instead, a block will be made available to the Drupal block administration system, and the exposed form will appear there. Note that this block must be enabled manually, Views will not enable it for you."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1238
+msgid "File found in folder @template-path"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1242
+msgid "(File not found, in folder @template-path)"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1399
+msgid "Override"
+msgstr "Переназначити"
+
+#: plugins/views_plugin_display.inc:1404
+msgid "Status: using default values."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1408
+msgid "Update default display"
+msgstr "Оновити базове відображення"
+
+#: plugins/views_plugin_display.inc:1413
+msgid "Use default"
+msgstr "Використовувати базове"
+
+#: plugins/views_plugin_display.inc:1418
+msgid "Status: using overridden values."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1639
+msgid "Display \"@display\" uses fields but there are none defined for it or all are excluded."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1644
+msgid "Display \"@display\" uses a path but the path is undefined."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1650
+msgid "Display \"@display\" has an invalid style plugin."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1682
+msgid "Exposed form: @view-@display_id"
+msgstr "Відображена форма: @view-@display_id"
+
+#: plugins/views_plugin_display_attachment.inc:35
+msgid "Before"
+msgstr "Перед"
+
+#: plugins/views_plugin_display_attachment.inc:36
+msgid "After"
+msgstr "Після"
+
+#: plugins/views_plugin_display_attachment.inc:37
+msgid "Both"
+msgstr "Все"
+
+#: plugins/views_plugin_display_attachment.inc:57
+msgid "Attachment settings"
+msgstr "Параметри вкладень"
+
+#: plugins/views_plugin_display_attachment.inc:62;109
+msgid "Inherit arguments"
+msgstr "Залежність аргументів"
+
+#: plugins/views_plugin_display_attachment.inc:68;118
+msgid "Inherit exposed filters"
+msgstr "Залежність відображених фільтрів"
+
+#: plugins/views_plugin_display_attachment.inc:74;127
+msgid "Position"
+msgstr "Позиція"
+
+#: plugins/views_plugin_display_attachment.inc:80
+#: plugins/views_plugin_display_feed.inc:98
+msgid "Multiple displays"
+msgstr "Сукупність відображень"
+
+#: plugins/views_plugin_display_attachment.inc:95;136
+#: plugins/views_plugin_display_feed.inc:113;140
+msgid "Attach to"
+msgstr "Приєднати до"
+
+#: plugins/views_plugin_display_attachment.inc:112;121
+msgid "Inherit"
+msgstr "Залежність"
+
+#: plugins/views_plugin_display_attachment.inc:113
+msgid "Should this display inherit its arguments from the parent display to which it is attached?"
+msgstr ""
+
+#: plugins/views_plugin_display_attachment.inc:122
+msgid "Should this display inherit its exposed filter values from the parent display to which it is attached?"
+msgstr ""
+
+#: plugins/views_plugin_display_attachment.inc:130
+msgid "Attach before or after the parent display?"
+msgstr ""
+
+#: plugins/views_plugin_display_attachment.inc:145
+msgid "Select which display or displays this should attach to."
+msgstr ""
+
+#: plugins/views_plugin_display_block.inc:34
+msgid "@view: @display"
+msgstr "@view: @display"
+
+#: plugins/views_plugin_display_block.inc:68
+msgid "Block settings"
+msgstr "Параметри Блоку"
+
+#: plugins/views_plugin_display_block.inc:82
+msgid "Admin"
+msgstr "Адмін"
+
+#: plugins/views_plugin_display_block.inc:106
+msgid "Do not cache"
+msgstr "Не кешувати"
+
+#: plugins/views_plugin_display_block.inc:107
+msgid "Cache once for everything (global)"
+msgstr "Кеш разово для всього (глобально)"
+
+#: plugins/views_plugin_display_block.inc:108
+msgid "Per page"
+msgstr "Для сторінки"
+
+#: plugins/views_plugin_display_block.inc:109
+msgid "Per role"
+msgstr "Для ролі"
+
+#: plugins/views_plugin_display_block.inc:110
+msgid "Per role per page"
+msgstr "Для ролі і для сторінки"
+
+#: plugins/views_plugin_display_block.inc:111
+msgid "Per user"
+msgstr "Для користувача"
+
+#: plugins/views_plugin_display_block.inc:112
+msgid "Per user per page"
+msgstr "Для користувача і для сторінки"
+
+#: plugins/views_plugin_display_block.inc:137
+msgid "Block admin description"
+msgstr ""
+
+#: plugins/views_plugin_display_block.inc:140
+msgid "This will appear as the name of this block in administer >> site building >> blocks."
+msgstr ""
+
+#: plugins/views_plugin_display_block.inc:145
+msgid "Block caching type"
+msgstr ""
+
+#: plugins/views_plugin_display_block.inc:149
+msgid "This sets the default status for Drupal's built-in block caching method; this requires that caching be turned on in block administration, and be careful because you have little control over when this cache is flushed."
+msgstr ""
+
+#: plugins/views_plugin_display_feed.inc:86
+msgid "Feed settings"
+msgstr "Налаштування вибірок"
+
+#: plugins/views_plugin_display_feed.inc:90
+msgid "Using the site name"
+msgstr ""
+
+#: plugins/views_plugin_display_feed.inc:132
+msgid "Use the site name for the title"
+msgstr ""
+
+#: plugins/views_plugin_display_feed.inc:149
+msgid "The feed icon will be available only to the selected displays."
+msgstr ""
+
+#: plugins/views_plugin_display_feed.inc:155
+msgid "This view will be displayed by visiting this path on your site. It is recommended that the path be something like \"path/%/%/feed\" or \"path/%/%/rss.xml\", putting one % in the path for each argument you have defined in the view."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:194
+msgid "Page settings"
+msgstr "Параметри Сторінки"
+
+#: plugins/views_plugin_display_page.inc:219
+msgid "No menu"
+msgstr "Без меню"
+
+#: plugins/views_plugin_display_page.inc:222
+msgid "Normal: @title"
+msgstr "Нормально: @title"
+
+#: plugins/views_plugin_display_page.inc:226
+msgid "Tab: @title"
+msgstr "Закладка: @title"
+
+#: plugins/views_plugin_display_page.inc:236;319
+msgid "Menu"
+msgstr "Меню"
+
+#: plugins/views_plugin_display_page.inc:242
+msgid "Change settings for the parent menu"
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:255
+msgid "The menu path or URL of this view"
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:259
+msgid "This view will be displayed by visiting this path on your site. You may use \"%\" in your URL to represent values that will be used for arguments: For example, \"node/%/feed\"."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:265
+msgid "Menu item entry"
+msgstr "Пункт елемента меню"
+
+#: plugins/views_plugin_display_page.inc:282
+msgid "No menu entry"
+msgstr "Без пункта меню"
+
+#: plugins/views_plugin_display_page.inc:283
+msgid "Normal menu entry"
+msgstr "Нормальний пункт меню"
+
+#: plugins/views_plugin_display_page.inc:284;370
+msgid "Menu tab"
+msgstr "Закладки меню"
+
+#: plugins/views_plugin_display_page.inc:285
+msgid "Default menu tab"
+msgstr "Базові закладки меню"
+
+#: plugins/views_plugin_display_page.inc:294
+msgid "If set to normal or tab, enter the text to use for the menu item."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:302
+msgid "If set to normal or tab, enter the text to use for the menu item's description."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:309
+msgid "Warning: Changing this item's menu will not work reliably in Drupal 6.4 or earlier. Please upgrade your copy of Drupal at !url."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:323
+msgid "Insert item into an available menu."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:334
+msgid "Menu selection requires the activation of menu module."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:342
+msgid "The lower the weight the higher/further left it will appear."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:348
+msgid "Default tab options"
+msgstr "Базові параметри закладки"
+
+#: plugins/views_plugin_display_page.inc:357
+msgid "When providing a menu item as a tab, Drupal needs to know what the parent menu item of that tab will be. Sometimes the parent will already exist, but other times you will need to have one created. The path of a parent item will always be the same path with the last part left off. i.e, if the path to this view is foo/bar/baz, the parent path would be foo/bar."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:368
+msgid "Parent menu item"
+msgstr "Батьківський елемент меню"
+
+#: plugins/views_plugin_display_page.inc:370
+msgid "Already exists"
+msgstr "Вже наявне"
+
+#: plugins/views_plugin_display_page.inc:370
+msgid "Normal menu item"
+msgstr "Нормальний елемент меню"
+
+#: plugins/views_plugin_display_page.inc:378
+msgid "If creating a parent menu item, enter the title of the item."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:386
+msgid "If creating a parent menu item, enter the description of the item."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:392
+msgid "Tab weight"
+msgstr "Вага закладки"
+
+#: plugins/views_plugin_display_page.inc:396
+msgid "If the parent menu item is a tab, enter the weight of the tab. The lower the number, the more to the left it will be."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:410
+msgid "\"$arg\" is no longer supported. Use % instead."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:414
+msgid "\"%\" may not be used for the first segment of a path."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:424
+msgid "Views cannot create normal menu items for paths with a % in them."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:431
+msgid "A display whose path ends with a % cannot be a tab."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:436
+msgid "Title is required for this menu type."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:467
+msgid "Display @display is set to use a menu but the menu title is not set."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:473
+msgid "Display @display is set to use a parent menu but the parent menu title is not set."
+msgstr ""
+
+#: plugins/views_plugin_row_fields.inc:40
+msgid "Inline fields"
+msgstr "Поля без розділювачів"
+
+#: plugins/views_plugin_row_fields.inc:43
+msgid "Inline fields will be displayed next to each other rather than one after another."
+msgstr ""
+
+#: plugins/views_plugin_row_fields.inc:51
+msgid "The separator may be placed between inline fields to keep them from squishing up next to each other. You can use HTML in this field."
+msgstr ""
+
+#: plugins/views_plugin_style.inc:91
+msgid "Grouping field"
+msgstr "Групуюче поле"
+
+#: plugins/views_plugin_style.inc:94
+msgid "You may optionally specify a field by which to group the records. Leave blank to not group."
+msgstr ""
+
+#: plugins/views_plugin_style.inc:191
+msgid "Style @style requires a row style but the row plugin is invalid."
+msgstr ""
+
+#: plugins/views_plugin_style_grid.inc:33
+msgid "Number of columns"
+msgstr "Кількість колонок"
+
+#: plugins/views_plugin_style_grid.inc:38
+msgid "Alignment"
+msgstr "Розташування"
+
+#: plugins/views_plugin_style_grid.inc:39
+msgid "Horizontal"
+msgstr "Горизонтально"
+
+#: plugins/views_plugin_style_grid.inc:39
+msgid "Vertical"
+msgstr "Вертикально"
+
+#: plugins/views_plugin_style_grid.inc:41
+msgid "Horizontal alignment will place items starting in the upper left and moving right. Vertical alignment will place items starting in the upper left and moving down."
+msgstr ""
+
+#: plugins/views_plugin_style_list.inc:32
+msgid "List type"
+msgstr "Тип списку"
+
+#: plugins/views_plugin_style_rss.inc:56
+msgid "Use the site mission for the description"
+msgstr ""
+
+#: plugins/views_plugin_style_rss.inc:60
+msgid "RSS description"
+msgstr "Опис RSS"
+
+#: plugins/views_plugin_style_rss.inc:62
+msgid "This will appear in the RSS feed itself."
+msgstr ""
+
+#: plugins/views_plugin_style_summary.inc:34
+msgid "Display record count with link"
+msgstr ""
+
+#: plugins/views_plugin_style_summary.inc:39
+msgid "Override number of items to display"
+msgstr ""
+
+#: plugins/views_plugin_style_summary_unformatted.inc:26
+msgid "Display items inline"
+msgstr "Відображення елементів без розділювачів"
+
+#: plugins/views_plugin_style_table.inc:126
+msgid "You need at least one field before you can configure your table settings"
+msgstr ""
+
+#: plugins/views_plugin_style_table.inc:135
+msgid "Override normal sorting if click sorting is used"
+msgstr ""
+
+#: plugins/views_plugin_style_table.inc:141
+msgid "Enable Drupal style \"sticky\" table headers (Javascript)"
+msgstr ""
+
+#: plugins/views_plugin_style_table.inc:143
+msgid "(Sticky header effects will not be active for preview below, only on live output.)"
+msgstr ""
+
+#: plugins/views_plugin_style_table.inc:148
+msgid "Default sort order"
+msgstr "Базове сортування"
+
+#: plugins/views_plugin_style_table.inc:151
+msgid "If a default sort order is selected, what order should it use by default."
+msgstr ""
+
+#: plugins/views_plugin_style_table.inc:237
+msgid "Place fields into columns; you may combine multiple fields into the same column. If you do, the separator in the column specified will be used to separate the fields. Check the sortable box to make that column click sortable, and check the default sort radio to determine which column will be sorted by default, if any. You may control column order and field labels in the fields section."
+msgstr ""
+
+#: theme/views-more.tpl.php:15
+msgid "more"
+msgstr "докладніше"
+
+#: theme/views-ui-edit-item.tpl.php:32
+msgid "The style selected does not utilize fields."
+msgstr ""
+
+#: theme/views-ui-edit-item.tpl.php:34
+msgid "None defined"
+msgstr "Не зазначено"
+
+#: theme/views-ui-edit-tab.tpl.php:31
+msgid "View settings"
+msgstr "Параметри виглядів"
+
+#: theme/views-ui-edit-view.tpl.php:11
+msgid "This view is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to break this lock."
+msgstr ""
+
+#: theme/views-ui-edit-view.tpl.php:16
+msgid "New view"
+msgstr "Новий вигляд"
+
+#: theme/views-ui-edit-view.tpl.php:18
+msgid "Changed view"
+msgstr "Змінений вигляд"
+
+#: theme/views-ui-edit-view.tpl.php:23
+msgid "View %name, displaying items of type @base."
+msgstr ""
+
+#: theme/views-ui-edit-view.tpl.php:42
+msgid "Live preview"
+msgstr "Швидкий вигляд"
+
+#: theme/views-ui-list-views.tpl.php:17
+msgid "@type @base view: @view"
+msgstr "@type @base view: @view"
+
+#: theme/views-ui-list-views.tpl.php:27
+msgid "Title: @title"
+msgstr "Заголовок: @title"
+
+#: theme/views-ui-list-views.tpl.php:30
+msgid "Path: !path"
+msgstr "Шлях: !path"
+
+#: theme/theme.inc:92
+msgid "Edit this view"
+msgstr "Правити вигляд"
+
+#: theme/theme.inc:323
+msgid "sort by @s"
+msgstr "сортувати за @s"
+
+#: theme/theme.inc:600
+msgid "‹‹"
+msgstr "‹‹"
+
+#: theme/theme.inc:605
+msgid "››"
+msgstr "››"
+
+#: theme/theme.inc:618
+msgid "@current of @max"
+msgstr ""
+
+#: views_export/views_export.module:77
+msgid "There are no views to be exported at this time."
+msgstr "Наразі відсутні Вигляди для експортування"
+
+#: views_export/views_export.module:109
+msgid "Show only these tags"
+msgstr "Показувати лише ці теги"
+
+#: views_export/views_export.module:123
+msgid "Module name"
+msgstr "Ім'я модуля"
+
+#: views_export/views_export.module:124
+msgid "Enter the module name to export code to."
+msgstr ""
+
+#: views_export/views_export.module:205
+msgid "Put this in @module.module in your modules/@module directory"
+msgstr ""
+
+#: views_export/views_export.module:218
+msgid "Put this in @module.views_default.inc in your modules/@module directory or modules/@module/includes directory"
+msgstr ""
+
+#: views_export/views_export.module:44
+msgid "use views exporter"
+msgstr "використання експорту виглядів"
+
+#: views_export/views_export.module:17
+msgid "Bulk export"
+msgstr "Масовий експорт"
+
+#: views_export/views_export.module:0
+msgid "views_export"
+msgstr "views_export"
+
+#: views_export/views_export.info:0
+msgid "Views exporter"
+msgstr "Експорт виглядів"
+
+#: views_export/views_export.info:0
+msgid "Allows exporting multiple views at once."
+msgstr ""
+
Index: sites/all/modules/views/translations/sv.po
===================================================================
--- sites/all/modules/views/translations/sv.po (.../trunk) (revision 1945)
+++ sites/all/modules/views/translations/sv.po (.../branches/drupal6) (revision 1945)
@@ -1,4 +1,4 @@
-# $Id: sv.po,v 1.1 2009/03/20 04:08:00 seals Exp $
+# $Id: sv.po,v 1.2 2009/05/27 13:58:02 seals Exp $
#
# Swedish translation of Drupal (views)
# Generated from files:
@@ -143,8 +143,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Views 6.x-2.x\n"
-"POT-Creation-Date: 2009-03-17 11:11+0100\n"
-"PO-Revision-Date: 2009-03-20 04:31+0100\n"
+"POT-Creation-Date: 2009-05-27 15:41+0200\n"
+"PO-Revision-Date: 2009-05-27 15:55+0100\n"
"Last-Translator: Magnus Gunnarsson \n"
"Language-Team: drupalsverige.se\n"
"MIME-Version: 1.0\n"
@@ -163,20 +163,20 @@
msgid "Skipping broken view @view"
msgstr "Hoppar över trasig vy @view"
-#: views.module:809;849
-#: includes/admin.inc:114;232;232;645
+#: views.module:814;854
+#: includes/admin.inc:114;232;232;646
msgid "Overridden"
msgstr "Åsidosatt"
-#: views.module:812;845
+#: views.module:817;850
#: views_ui.module:282
-#: includes/admin.inc:113;231;231;612;793
+#: includes/admin.inc:113;231;231;613;794
msgid "Default"
msgstr "Förvald"
-#: views.module:959
+#: views.module:964
#: includes/admin.inc:311
-#: views_export/views_export.module:116
+#: views_export/views_export.module:117
msgid "Apply"
msgstr "Verkställ"
@@ -222,12 +222,12 @@
msgstr "Visa"
#: views_ui.module:38
-#: includes/admin.inc:1205;1205;2192
+#: includes/admin.inc:1206;1206;2193
msgid "Add"
msgstr "Lägg till"
#: views_ui.module:43
-#: includes/admin.inc:751
+#: includes/admin.inc:752
msgid "Import"
msgstr "Importera"
@@ -266,90 +266,6 @@
msgid "views_ui"
msgstr "views_ui"
-#: views.install:31
-msgid "Stores the general data for a view."
-msgstr "Lagrar allmän data för en vy."
-
-#: views.install:37
-msgid "The view ID of the field, defined by the database."
-msgstr "Vyns ID för fältet, definierad av databasen."
-
-#: views.install:45
-msgid "The unique name of the view. This is the primary field views are loaded from, and is used so that views may be internal and not necessarily in the database. May only be alphanumeric characters plus underscores."
-msgstr "Unikt namn på denna vy. Detta är det primära fältet som vyer laddas från, och används så att vyer kan vara interna och inte nödvändigtvis i databasen. Får bara vara alfanumeriska tecken samt understreck."
-
-#: views.install:51
-msgid "A description of the view for the admin interface."
-msgstr "En beskrivning av din vy för det administrativa gränssnittet."
-
-#: views.install:57
-msgid "A tag used to group/sort views in the admin interface"
-msgstr "Ett märke som används för att gruppera/sortera vyer i det administrativa gränssnittet."
-
-#: views.install:61
-msgid "A chunk of PHP code that can be used to provide modifications to the view prior to building."
-msgstr "Ett stycke PHP-kod som kan användas för att modifiera en vy innan uppbyggnad."
-
-#: views.install:68
-msgid "What table this view is based on, such as node, user, comment, or term."
-msgstr "Vilken tabell denna vy är baserad på, som node, user, comment eller term."
-
-#: views.install:74
-msgid "A boolean to indicate whether or not this view may have its query cached."
-msgstr "En boolesk som indikerar huruvida denna vy kan ha sin databasfråga cachad eller inte."
-
-#: views.install:82
-msgid "Stores information about each display attached to a view."
-msgstr "Lagrar information om varje visning bifogad till en vy."
-
-#: views.install:89
-msgid "The view this display is attached to."
-msgstr "Vyn denna visning är bifogad till."
-
-#: views.install:97
-msgid "An identifier for this display; usually generated from the display_plugin, so should be something like page or page_1 or block_2, etc."
-msgstr "En identifierare för denna visning. Vanligtvis genererad från display_plugin, och bör vara något som liknar page eller page_1 eller block_2 osv."
-
-#: views.install:104
-msgid "The title of the display, viewable by the administrator."
-msgstr "Titeln på denna visning, synligt för administratören."
-
-#: views.install:111
-msgid "The type of the display. Usually page, block or embed, but is pluggable so may be other things."
-msgstr "Typen av visning. Vanligtvis sida, block eller inbäddad, men det är inpluggbart så det kan vara andra saker."
-
-#: views.install:116
-msgid "The order in which this display is loaded."
-msgstr "Ordningen i vilken denna visning är laddad."
-
-#: views.install:120
-msgid "A serialized array of options for this display; it contains options that are generally only pertinent to that display plugin type."
-msgstr "En serialiserad lista av alternativ för denna visning. Den innehåller alternativ som generellt bara är relevanta för plugintypen till denna visning."
-
-#: views.install:131
-msgid "A special cache used to store objects that are being edited; it serves to save state in an ordinarily stateless environment."
-msgstr "En speciell cache som används till att lagra objekt som blir redigerade. Den agerar för att spara tillståndet i en normalt tillståndslös miljö."
-
-#: views.install:136
-msgid "The session ID this cache object belongs to."
-msgstr "Sessionsens ID denna cachen tillhör."
-
-#: views.install:141
-msgid "The name of the view this cache is attached to."
-msgstr "Namnet på den vy denna cache är bifogad till."
-
-#: views.install:146
-msgid "The name of the object this cache is attached to; this essentially represents the owner so that several sub-systems can use this cache."
-msgstr "Namnet på objektet denna cache är bifogad till. Detta representerar i huvudsak ägaren så att flera undersystem kan använda denna cache."
-
-#: views.install:153
-msgid "The time this cache was created or updated."
-msgstr "Tidpunkten då denna cache skapades eller uppdaterades."
-
-#: views.install:158;219
-msgid "Serialized data being stored."
-msgstr "Serialiserad data som lagras."
-
#: views.info:0
msgid "Create customized lists and queries from your database."
msgstr "Skapa anpassade listor och frågor från din databas."
@@ -535,16 +451,16 @@
msgstr "Förvald argumentstyp"
#: handlers/views_handler_argument.inc:744
-#: handlers/views_handler_field.inc:574
-#: handlers/views_handler_filter.inc:592
+#: handlers/views_handler_field.inc:599
+#: handlers/views_handler_filter.inc:593
#: handlers/views_handler_relationship.inc:133
#: handlers/views_handler_sort.inc:66
msgid "Broken/missing handler"
msgstr "Trasig/saknad hanterare"
#: handlers/views_handler_argument.inc:752
-#: handlers/views_handler_field.inc:582
-#: handlers/views_handler_filter.inc:600
+#: handlers/views_handler_field.inc:607
+#: handlers/views_handler_filter.inc:601
#: handlers/views_handler_relationship.inc:141
#: handlers/views_handler_sort.inc:74
msgid "The handler for this item is broken or missing and cannot be used. If a module provided the handler and was disabled, re-enabling the module may restore it. Otherwise, you should probably delete this item."
@@ -602,9 +518,8 @@
msgstr "Misslyckas med grundläggande godkännande om ett argument är givet."
#: handlers/views_handler_argument_null.inc:23
-#, fuzzy
msgid "By checking this field, you can use this to make sure views with more arguments than necessary fail validation."
-msgstr "Genom att kryssa för detta fält kan du använda detta för att säkerställa att vyer med fler argument än nödvändigt misslyckas med godkännandet."
+msgstr "Genom att kryssa för detta fält kan du använda detta för att säkerställa att vyer med fler argument än nödvändigt misslyckas med validering."
#: handlers/views_handler_argument_numeric.inc:31
msgid "If selected, users can enter multiple arguments in the form of 1+2+3 or 1,2,3."
@@ -674,141 +589,149 @@
msgid "Transform spaces to dashes in URL"
msgstr "Ändra mellanslag till bindestreck i URL:er"
-#: handlers/views_handler_field.inc:172
+#: handlers/views_handler_field.inc:173
#: handlers/views_handler_filter.inc:322
#: handlers/views_handler_relationship.inc:78
msgid "Label"
msgstr "Etikett"
-#: handlers/views_handler_field.inc:174
+#: handlers/views_handler_field.inc:175
msgid "The label for this field that will be displayed to end users if the style requires it."
msgstr "Etiketten för detta fält som visas för slutanvändare om stilen kräver det."
-#: handlers/views_handler_field.inc:178
+#: handlers/views_handler_field.inc:179
msgid "Exclude from display"
msgstr "Exkludera från visning."
-#: handlers/views_handler_field.inc:180
+#: handlers/views_handler_field.inc:181
msgid "Check this box to not display this field, but still load it in the view. Use this option to not show a grouping field in each record, or when doing advanced theming."
msgstr "Kryssa i denna ruta för att inte visa detta fält, men ändå ladda det i din vy. Använd detta alternativ för att inte visa ett grupperande fält i varje resultat, eller när du håller på med avancerade anpassningar av teman."
-#: handlers/views_handler_field.inc:187
+#: handlers/views_handler_field.inc:188
msgid "Rewrite the output of this field"
msgstr "Återskapa utmatningen av detta fält"
-#: handlers/views_handler_field.inc:188
+#: handlers/views_handler_field.inc:189
msgid "If checked, you can alter the output of this field by specifying a string of text with replacement tokens that can use any existing field output."
msgstr "Om ikryssat, så kan du påverka utmatningen för detta fält genom att specificera en textsträng med ersättningssymboler som kan använda vilket existerande utmatningsformat som helst."
-#: handlers/views_handler_field.inc:193
+#: handlers/views_handler_field.inc:194
msgid "Text"
msgstr "Text"
-#: handlers/views_handler_field.inc:196
+#: handlers/views_handler_field.inc:197
msgid "The text to display for this field. You may include HTML. You may enter data from this view as per the \"Replacement patterns\" below."
msgstr "Texten som visas för detta fält. Du kan använda HTML. Du kan ange data från denna vy som enligt \"Mönster för ersättning\" nedan."
-#: handlers/views_handler_field.inc:205
+#: handlers/views_handler_field.inc:206
msgid "Output this field as a link"
msgstr "Mata ut detta fält som en länk"
-#: handlers/views_handler_field.inc:206
+#: handlers/views_handler_field.inc:207
msgid "If checked, this field will be made into a link. The destination must be given below."
msgstr "Om ikryssat, detta fält kommer att göras till en länk. Destinationen måste anges nedan."
-#: handlers/views_handler_field.inc:210
+#: handlers/views_handler_field.inc:211
msgid "Link path"
msgstr "Sökväg för länk"
-#: handlers/views_handler_field.inc:213
+#: handlers/views_handler_field.inc:214
msgid "The Drupal path or absolute URL for this link. You may enter data from this view as per the \"Replacement patterns\" below."
msgstr "Drupals sökväg eller fullständig URL för denna länk. Du kan ange data från denna vyn som enligt \"Mönster för ersättning\" nedan."
-#: handlers/views_handler_field.inc:220
+#: handlers/views_handler_field.inc:221
msgid "Alt text"
msgstr "Alternativ text"
-#: handlers/views_handler_field.inc:223
+#: handlers/views_handler_field.inc:224
msgid "Text to place as \"alt\" text which most browsers display as a tooltip when hovering over the link."
msgstr "Text att placeras som \"alternativ\" text, som de flesta webbläsare visar som ett verktygstips när man svävar över länken."
-#: handlers/views_handler_field.inc:230
+#: handlers/views_handler_field.inc:231
msgid "Prefix text"
msgstr "Text för prefix"
-#: handlers/views_handler_field.inc:233
+#: handlers/views_handler_field.inc:234
msgid "Any text to display before this link. You may include HTML."
msgstr "En text att visas före denna länk. Du kan använda HTML."
-#: handlers/views_handler_field.inc:240
+#: handlers/views_handler_field.inc:241
msgid "Suffix text"
msgstr "Text för suffix"
-#: handlers/views_handler_field.inc:243
+#: handlers/views_handler_field.inc:244
msgid "Any text to display after this link. You may include HTML."
msgstr "En text att visas efter denna länk. Du kan använda HTML."
-#: handlers/views_handler_field.inc:253
+#: handlers/views_handler_field.inc:254
#: includes/plugins.inc:173
-#: includes/view.inc:1911
+#: includes/view.inc:1923
msgid "Fields"
msgstr "Fält"
-#: handlers/views_handler_field.inc:261
+#: handlers/views_handler_field.inc:262
#: includes/admin.inc:491
-#: includes/view.inc:1918
+#: includes/view.inc:1930
msgid "Arguments"
msgstr "Argument"
-#: handlers/views_handler_field.inc:265
+#: handlers/views_handler_field.inc:266
msgid "
You must add some additional fields to this display before using this field. These fields may be marked as Exclude from display if you prefer. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.
"
msgstr "
Du måste lägga till några ytterligare fält till denna visning innan du kan använda fältet. Detta fält kan markeras som Exkludera från visning om du föredrar det. Observera att i på grund av ordningen för renderingen kan du inte använda fält som kommer efter detta fält. Om du behöver ett fält som inte visas här kan du omorganisera fälten.
The following substitution patterns are available for this display. Use the pattern shown on the left to display the value indicated on the right. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.
"
msgstr "
Följande ersättningsmönster finns tillgängliga för denna visning. Använd mönstret som visas till vänster för att visa värdet som indikeras till höger. Observera att på grund av ordningen för renderingen kan du inte använda fält som kommer efter detta fält. Om du vill använda ett fält som inte visas här kan du omorganisera dina fält.
"
-#: handlers/views_handler_field.inc:287
+#: handlers/views_handler_field.inc:288
msgid "Replacement patterns"
msgstr "Mönster för ersättning"
-#: handlers/views_handler_field.inc:297
+#: handlers/views_handler_field.inc:298
msgid "Trim this field to a maximum length"
msgstr "Korta ned detta fält till en maximal storlek"
-#: handlers/views_handler_field.inc:298
+#: handlers/views_handler_field.inc:299
msgid "If checked, this field be trimmed to a maximum length in characters."
msgstr "Om ikryssat kommer detta fält att kortas ned till en maximal längd av bokstäver."
-#: handlers/views_handler_field.inc:303
+#: handlers/views_handler_field.inc:304
msgid "Maximum length"
msgstr "Maximal längd"
-#: handlers/views_handler_field.inc:306
+#: handlers/views_handler_field.inc:307
msgid "The maximum number of characters his field can be."
msgstr "Maximalt antal bokstäver som detta fält får vara."
-#: handlers/views_handler_field.inc:315
+#: handlers/views_handler_field.inc:316
msgid "Trim only on a word boundary"
msgstr "Korta endast ned beroende på ordgräns"
-#: handlers/views_handler_field.inc:316
+#: handlers/views_handler_field.inc:317
msgid "If checked, this field be trimmed only on a word boundary. This is guaranteed to be the maximum characters stated or less. If there are no word boundaries this could trim a field to nothing."
msgstr "Om ikryssat kommer detta fält att kortas ned enbart beroende på en ordgräns. Detta är garanterat att vara maximalt antal bokstäver eller färre. Om det inte finns några ordgränser kan detta korta ned fältet till ingentin."
-#: handlers/views_handler_field.inc:326
+#: handlers/views_handler_field.inc:327
msgid "Add an ellipsis"
msgstr "Lägg till en ellips"
-#: handlers/views_handler_field.inc:327
+#: handlers/views_handler_field.inc:328
msgid "If checked, a \"...\" will be added if a field was trimmed."
msgstr "Om ikryssat, kommer \"...\" att läggas till om ett fält kortades ned."
-#: handlers/views_handler_field.inc:337
+#: handlers/views_handler_field.inc:338
+msgid "Strip HTML tags"
+msgstr "Ta bort HTML-taggar"
+
+#: handlers/views_handler_field.inc:339
+msgid "If checked, all HTML tags will be stripped."
+msgstr "Om ikryssad, kommer alla HTML-taggar att tas bort."
+
+#: handlers/views_handler_field.inc:349
msgid "Field can contain HTML"
msgstr "Fält kan innehålla HTML"
-#: handlers/views_handler_field.inc:338
+#: handlers/views_handler_field.inc:350
msgid "If checked, HTML corrector will be run to ensure tags are properly closed after trimming."
msgstr "Om ikryssat kommer korrigeraren för HTML att köras för att säkerställa att alla taggar är stängda på ett riktigt sätt efter att de kortats ned."
@@ -886,15 +809,19 @@
msgid "Time ago"
msgstr "Tid sedan"
-#: handlers/views_handler_field_date.inc:36
+#: handlers/views_handler_field_date.inc:31
+msgid "Time ago (with \"ago\" appended)"
+msgstr "Tid sedan (med \"sedan\" bifogat)"
+
+#: handlers/views_handler_field_date.inc:37
msgid "Custom date format"
msgstr "Anpassat datumformat"
-#: handlers/views_handler_field_date.inc:37
+#: handlers/views_handler_field_date.inc:38
msgid "If \"Custom\", see the PHP docs for date formats. If \"Time ago\" this is the the number of different units to display, which defaults to two."
msgstr "Om \"Anpassad\", se dokumentationen om PHP för datumformat. Om \"Tid sedan\" blir detta antalet olika enheter att visa, där två är standard."
-#: handlers/views_handler_field_date.inc:53
+#: handlers/views_handler_field_date.inc:56
msgid "%time ago"
msgstr "%time sedan"
@@ -948,7 +875,7 @@
#: handlers/views_handler_field_prerender_list.inc:29
#: modules/aggregator/views_plugin_row_aggregator_rss.inc:23
-#: modules/node/views_plugin_row_node_rss.inc:24
+#: modules/node/views_plugin_row_node_rss.inc:30
msgid "Display type"
msgstr "Typ av visning"
@@ -967,7 +894,7 @@
msgstr "Enkel avskiljare"
#: handlers/views_handler_field_prerender_list.inc:40
-#: includes/admin.inc:3001
+#: includes/admin.inc:3010
#: plugins/views_plugin_row_fields.inc:47
#: plugins/views_plugin_style_summary_unformatted.inc:30
msgid "Separator"
@@ -1064,9 +991,15 @@
msgstr "Denna identifierare är inte tillåten."
#: handlers/views_handler_filter.inc:465
+#: includes/admin.inc:2744
msgid ""
msgstr ""
+#: handlers/views_handler_filter.inc:465
+#: includes/admin.inc:2744
+msgid "- Any -"
+msgstr "- Valfri -"
+
#: handlers/views_handler_filter_boolean_operator.inc:97
#: handlers/views_handler_filter_in_operator.inc:175
#: handlers/views_handler_filter_numeric.inc:247
@@ -1318,11 +1251,13 @@
msgstr "Sorteringsordning"
#: handlers/views_handler_sort.inc:55
+#: modules/search/views_handler_field_search_score.inc:37
#: plugins/views_plugin_style_table.inc:149
msgid "Ascending"
msgstr "Stigande"
#: handlers/views_handler_sort.inc:55
+#: modules/search/views_handler_field_search_score.inc:37
#: plugins/views_plugin_style_table.inc:149
msgid "Descending"
msgstr "Fallande"
@@ -1375,22 +1310,22 @@
msgid "Reset"
msgstr "Återställ"
-#: includes/admin.inc:110;1005
+#: includes/admin.inc:110;1006
#: theme/theme.inc:98
-#: views_export/views_export.module:128
+#: views_export/views_export.module:129
msgid "Export"
msgstr "Exportera"
-#: includes/admin.inc:111;1010
+#: includes/admin.inc:111;1011
#: theme/theme.inc:103
msgid "Clone"
msgstr "Klona"
-#: includes/admin.inc:114;648
+#: includes/admin.inc:114;649
msgid "Revert"
msgstr "Återställ"
-#: includes/admin.inc:114;653;874
+#: includes/admin.inc:114;654;875
#: includes/convert.inc:35;108
msgid "Delete"
msgstr "Ta bort"
@@ -1408,7 +1343,7 @@
msgstr "Varning! Trasig vy!"
#: includes/admin.inc:143
-#: includes/view.inc:1714
+#: includes/view.inc:1726
msgid "Broken"
msgstr "Trasig"
@@ -1420,7 +1355,7 @@
msgid "Not sure what to do? Try the \"!getting-started\" page."
msgstr "Osäker på vad du ska göra? Testa sidan \"!getting-started\"."
-#: includes/admin.inc:222;229;2158
+#: includes/admin.inc:222;229;2159
msgid ""
msgstr ""
@@ -1434,7 +1369,7 @@
msgstr "Lager"
#: includes/admin.inc:230;230
-#: includes/view.inc:1208;1258
+#: includes/view.inc:1220;1270
msgid "Normal"
msgstr "Normal"
@@ -1444,8 +1379,8 @@
msgid "Type"
msgstr "Typ"
-#: includes/admin.inc:262;289;1090
-#: views_export/views_export.module:146
+#: includes/admin.inc:262;289;1091
+#: views_export/views_export.module:147
msgid "Tag"
msgstr "Märke"
@@ -1476,7 +1411,7 @@
#: modules/aggregator.views.inc:230
#: modules/upload.views.inc:56
#: plugins/views_plugin_display_page.inc:299;383
-#: views_export/views_export.module:146
+#: views_export/views_export.module:147
msgid "Description"
msgstr "Beskrivning"
@@ -1552,7 +1487,7 @@
msgid "Clone view %view"
msgstr "Klona vyn %view"
-#: includes/admin.inc:550;740
+#: includes/admin.inc:550;741
#: includes/convert.inc:20
msgid "View name"
msgstr "Namn på vyn"
@@ -1561,175 +1496,175 @@
msgid "This is the unique name of the view. It must contain only alphanumeric characters and underscores; it is used to identify the view internally and to generate unique theming template names for this view. If overriding a module provided view, the name must not be changed or instead a new view will be created."
msgstr "Detta är det unika namnet på vyn. Det måste bestå av alfanumeriska tecken och understreck. Det används för att indentifiera vyn internt och för att generera unika namn på temamallar för den här vyn. Om du åsidosätter en av modulen tillhandahållen vy så får du inte ändra namnet annars kommer en ny vy att skapas."
-#: includes/admin.inc:559;1853
+#: includes/admin.inc:560;1854
msgid "View description"
msgstr "Beskrivning av vyn"
-#: includes/admin.inc:560;1854
+#: includes/admin.inc:561;1855
msgid "This description will appear on the Views administrative UI to tell you what the view is about."
msgstr "Den här beskrivningen kommer att visas på vyns administrativa UI för att beskriva vad vyn handlar om."
-#: includes/admin.inc:566;1860
+#: includes/admin.inc:567;1861
msgid "View tag"
msgstr "Märke för vyn"
-#: includes/admin.inc:567;1861
+#: includes/admin.inc:568;1862
msgid "Enter an optional tag for this view; it is used only to help sort views on the administrative page."
msgstr "Skriv in ett valfritt märke för den här vyn. Den används endast som hjälp vid sortering av vyer på administrationssidan."
-#: includes/admin.inc:579
+#: includes/admin.inc:580
msgid "View type"
msgstr "Typ av vy"
-#: includes/admin.inc:580
+#: includes/admin.inc:581
msgid "The view type is the primary table for which information is being retrieved. The view type controls what arguments, fields, sort criteria and filters are available, so once this is set it cannot be changed."
msgstr "Typen av vy är den primära tabellen för vilken information hämtas. Den kontrollerar vilka argument, fält, sorteringskriterier och filter som finns tillgängliga. Så när du ställt in detta kan den inte ändras."
-#: includes/admin.inc:591
+#: includes/admin.inc:592
msgid "Next"
msgstr "Nästa"
-#: includes/admin.inc:607;785
+#: includes/admin.inc:608;786
msgid "View name must be alphanumeric or underscores only."
msgstr "Namnet på vyn får enbart bestå av vara alfanumeriskt tecken eller understreck."
-#: includes/admin.inc:613
+#: includes/admin.inc:614
msgid "You must use a unique name for this view."
msgstr "Du måste använda ett unikt namn för denna vy."
-#: includes/admin.inc:646
+#: includes/admin.inc:647
msgid "Are you sure you want to revert the view %name?"
msgstr "Är du säker på att du vill återställa vyn %name?"
-#: includes/admin.inc:647
+#: includes/admin.inc:648
msgid "Reverting the view will delete the view that is in the database, reverting it to the original default view. Any changes you have made will be lost and cannot be recovered."
msgstr "Att återställa vyn kommer att ta bort vyn som finns i databasen, och återgå den till den ursprungliga standardvyn. Alla ändringar du har gjort kommer att försvinna och kan inte återskapas."
-#: includes/admin.inc:651
+#: includes/admin.inc:652
#: includes/convert.inc:105
msgid "Are you sure you want to delete the view %name?"
msgstr "Är du säker på att du vill radera vyn %name?"
-#: includes/admin.inc:652
+#: includes/admin.inc:653
msgid "Deleting a view cannot be undone."
msgstr "Raderingen av en vy kan inte ångras."
-#: includes/admin.inc:661;697;867;1356
+#: includes/admin.inc:662;698;868;1357
#: includes/convert.inc:109
msgid "Cancel"
msgstr "Avbryt"
-#: includes/admin.inc:670
+#: includes/admin.inc:671
msgid "The view has been deleted."
msgstr "Vyn har raderats"
-#: includes/admin.inc:682
+#: includes/admin.inc:683
msgid "There is no lock on view %view to break."
msgstr "Det finns inget lås på vyn %view att öppna."
-#: includes/admin.inc:692
+#: includes/admin.inc:693
msgid "Are you sure you want to break the lock on view %name?"
msgstr "Är du säker på att du vill öppna låset på vyn %name?"
-#: includes/admin.inc:695
+#: includes/admin.inc:696
msgid "By breaking this lock, any unsaved changes made by !user will be lost!"
msgstr "Genom att öppna låset, kommer alla osparade ändringar gjord av !user att förloras!"
-#: includes/admin.inc:696
+#: includes/admin.inc:697
msgid "Break lock"
msgstr "Öppna lås"
-#: includes/admin.inc:706
+#: includes/admin.inc:707
msgid "The lock has been broken and you may now edit this view."
msgstr "Låsningen har öppnats och du kan nu redigera den här vyn."
-#: includes/admin.inc:713
+#: includes/admin.inc:714
msgid "Edit view %view"
msgstr "Redigera vyn %view"
-#: includes/admin.inc:741
+#: includes/admin.inc:742
msgid "Enter the name to use for this view if it is different from the source view. Leave blank to use the name of the view."
msgstr "Ange namnet som skall användas för denna vy om det är annorlunda mot källvyn. Lämna blankt för att använda namnet på vyn."
-#: includes/admin.inc:746
+#: includes/admin.inc:747
msgid "Paste view code here"
msgstr "Klistra in vykod här"
-#: includes/admin.inc:768
+#: includes/admin.inc:769
msgid "Unable to interpret view code."
msgstr "Kunde inte tolka vykoden."
-#: includes/admin.inc:776
+#: includes/admin.inc:777
msgid "You are importing a view created in Views version 1. You may need to adjust some parameters to work correctly in version 2."
msgstr "Du importerar en vy som skapade i version 1 av Views. Du kan behöva justera några parametrar för att de ska fungera korrekt i version 2."
-#: includes/admin.inc:779
+#: includes/admin.inc:780
msgid "That view is not compatible with this version of Views."
msgstr "Denna vy är inte kompatibel med denna version av Views."
-#: includes/admin.inc:794
+#: includes/admin.inc:795
msgid "A view by that name already exists; please choose a different name"
msgstr "En vy med det namn finns redan. Välj ett annat namn."
-#: includes/admin.inc:803
+#: includes/admin.inc:804
msgid "Display plugin @plugin is not available."
msgstr "Visningsplugin @plugin är inte tillgängligt."
-#: includes/admin.inc:810
+#: includes/admin.inc:811
msgid "Style plugin @plugin is not available."
msgstr "Stilplugin @plugin är inte tillgängligt."
-#: includes/admin.inc:816
+#: includes/admin.inc:817
msgid "Row plugin @plugin is not available."
msgstr "Radplugin @plugin är inte tillgängligt."
-#: includes/admin.inc:826
+#: includes/admin.inc:827
msgid "@type handler @table.@field is not available."
msgstr "@type hanterare @table.@field är inte tillgänglig."
-#: includes/admin.inc:839
+#: includes/admin.inc:840
msgid "Unable to import view."
msgstr "Kunde inte importera vy."
-#: includes/admin.inc:860;888
+#: includes/admin.inc:861;889
msgid "Save"
msgstr "Spara"
-#: includes/admin.inc:912
+#: includes/admin.inc:913
msgid "The view has been saved."
msgstr "Vyn har sparats."
-#: includes/admin.inc:956
+#: includes/admin.inc:957
msgid "Unknown or missing table name"
msgstr "Okänt eller saknat tabellnamn"
-#: includes/admin.inc:961
+#: includes/admin.inc:962
msgid "Click on an item to edit that item's details."
msgstr "Klicka på ett alternativ för att redigera dess detaljer."
-#: includes/admin.inc:964
+#: includes/admin.inc:965
msgid "This view has a broken default display and cannot be used."
msgstr "Denna vy har en trasig standardvisning och kan inte användas."
-#: includes/admin.inc:1006
+#: includes/admin.inc:1007
#: theme/theme.inc:99
msgid "Export this view"
msgstr "Exportera denna vy"
-#: includes/admin.inc:1011
+#: includes/admin.inc:1012
#: theme/theme.inc:104
msgid "Create a copy of this view"
msgstr "Skapa en kopia av denna vy"
-#: includes/admin.inc:1022
-msgid "View \"!display\""
-msgstr "Visa \"!display\""
+#: includes/admin.inc:1023
+msgid "View \"@display\""
+msgstr "Visa \"@display\""
-#: includes/admin.inc:1023
+#: includes/admin.inc:1024
msgid "Go to the real page for this display"
msgstr "Gå till den riktiga sidan för denna visning"
-#: includes/admin.inc:1089;3035
+#: includes/admin.inc:1090;3044
#: includes/plugins.inc:218
#: plugins/views_plugin_display.inc:587;704;723
#: plugins/views_plugin_display_attachment.inc:90
@@ -1739,109 +1674,109 @@
msgid "None"
msgstr "Ingen"
-#: includes/admin.inc:1167
+#: includes/admin.inc:1168
msgid "Invalid"
msgstr "Ogiltig"
-#: includes/admin.inc:1168
+#: includes/admin.inc:1169
msgid "Error: Display @display refers to a plugin named '@plugin', but that plugin doesn't exist!"
msgstr "Fel: Visningen @display refererar till ett plugin som heter \"@plugin\", men det pluginet existerar inte!"
-#: includes/admin.inc:1203;1203
+#: includes/admin.inc:1204;1204
msgid "Rearrange"
msgstr "Ordna om"
-#: includes/admin.inc:1243;2243;2418;2486;2571
+#: includes/admin.inc:1244;2244;2420;2488;2573
msgid "Error: handler for @table > @field doesn't exist!"
msgstr "Fel: hanteraren för @table > @field existerar inte!"
-#: includes/admin.inc:1262;1262;1271
+#: includes/admin.inc:1263;1263;1272
msgid "Settings"
msgstr "Inställningar"
-#: includes/admin.inc:1267
+#: includes/admin.inc:1268
#: plugins/views_plugin_display.inc:598;616
msgid "Missing style plugin"
msgstr "Stilplugin saknas"
-#: includes/admin.inc:1271
+#: includes/admin.inc:1272
#: plugins/views_plugin_display.inc:611;626
msgid "Change settings for this style"
msgstr "Ändra inställningar för denna stil"
-#: includes/admin.inc:1274
+#: includes/admin.inc:1275
msgid " Style: !style"
msgstr " Style: !style"
-#: includes/admin.inc:1305
+#: includes/admin.inc:1306
msgid "Invalid display id found while regenerating tabs"
msgstr "Ogiltigt ID för visning hittades när flikar regenerades"
-#: includes/admin.inc:1338
+#: includes/admin.inc:1339
msgid "Update"
msgstr "Uppdatera"
-#: includes/admin.inc:1356
+#: includes/admin.inc:1357
msgid "Ok"
msgstr "Ok"
-#: includes/admin.inc:1627
+#: includes/admin.inc:1628
msgid "Unable to initialize default display"
msgstr "Kunde inte initialisera den förvalda visningen"
-#: includes/admin.inc:1659
+#: includes/admin.inc:1660
msgid "Add display"
msgstr "Lägg till visning"
-#: includes/admin.inc:1699
+#: includes/admin.inc:1700
msgid "Remove display"
msgstr "Ta bort visning"
-#: includes/admin.inc:1710
+#: includes/admin.inc:1711
msgid "Restore display"
msgstr "Återställ visning"
-#: includes/admin.inc:1782
+#: includes/admin.inc:1783
msgid "Analyze"
msgstr "Analysera"
-#: includes/admin.inc:1794
+#: includes/admin.inc:1795
msgid "View analysis"
msgstr "Visa analyser"
-#: includes/admin.inc:1848
+#: includes/admin.inc:1849
msgid "View details"
msgstr "Visa detaljer"
-#: includes/admin.inc:1889;1943;1998;2144;2236;2411;2479;2564
+#: includes/admin.inc:1890;1944;1999;2145;2237;2413;2481;2566
msgid "Invalid display id @display"
msgstr "Ogiltig ID för visningen @display"
-#: includes/admin.inc:1947
+#: includes/admin.inc:1948
msgid "Configure @type"
msgstr "Konfigurera @type"
-#: includes/admin.inc:2002
+#: includes/admin.inc:2003
msgid "Rearrange @type"
msgstr "Arrangera om @type"
-#: includes/admin.inc:2045
+#: includes/admin.inc:2046
msgid "Broken field @id"
msgstr "Trasigt fält @id"
-#: includes/admin.inc:2085;2094;2327
+#: includes/admin.inc:2086;2095;2329
msgid "Remove"
msgstr "Ta bort"
-#: includes/admin.inc:2085;2085
+#: includes/admin.inc:2086;2086
msgid "Remove this item"
msgstr "Ta bort detta alternativ"
-#: includes/admin.inc:2091
+#: includes/admin.inc:2092
msgid "No fields available."
msgstr "Inga fält tillgängliga."
-#: includes/admin.inc:2094
+#: includes/admin.inc:2095
#: modules/book.views.inc:57
#: modules/taxonomy.views.inc:139
#: modules/upload.views.inc:91
@@ -1849,145 +1784,151 @@
msgid "Weight"
msgstr "Vikt"
-#: includes/admin.inc:2150
+#: includes/admin.inc:2151
msgid "Add @type"
msgstr "Lägg till @type"
-#: includes/admin.inc:2161
+#: includes/admin.inc:2162
msgid "Groups"
msgstr "Grupper"
-#: includes/admin.inc:2180
+#: includes/admin.inc:2181
msgid "!group: !field"
msgstr "!group: !field"
-#: includes/admin.inc:2189
+#: includes/admin.inc:2190
msgid "There are no @types available to add."
msgstr "Det finns inga @types tillgängliga att lägga till."
-#: includes/admin.inc:2286
+#: includes/admin.inc:2287
+#: plugins/views_plugin_row.inc:65
msgid "Do not use a relationship"
msgstr "Använd inte en relation"
-#: includes/admin.inc:2300
-#: includes/view.inc:1942;1943
+#: includes/admin.inc:2302
+#: includes/view.inc:1954;1955
+#: plugins/views_plugin_row.inc:74
msgid "Relationship"
msgstr "Relationer"
-#: includes/admin.inc:2313
+#: includes/admin.inc:2315
msgid "Configure @type %item"
msgstr "Konfigurera @type %item"
-#: includes/admin.inc:2426
+#: includes/admin.inc:2428
msgid "Configure extra settings for @type %item"
msgstr "Konfigurera extra inställningar för @type %item"
-#: includes/admin.inc:2491
+#: includes/admin.inc:2493
msgid "Change summary style for @type %item"
msgstr "Ändra stil för summering av @type %item"
-#: includes/admin.inc:2514;2528
+#: includes/admin.inc:2516;2530
msgid "Internal error: broken plugin."
msgstr "Internt fel: trasig plugin."
-#: includes/admin.inc:2578
+#: includes/admin.inc:2580
msgid "Configure summary style for @type %item"
msgstr "Konfigurera stil för summering av @type %item"
-#: includes/admin.inc:2670
+#: includes/admin.inc:2672
msgid "Clear Views' cache"
msgstr "Töm Views cache"
-#: includes/admin.inc:2676
+#: includes/admin.inc:2678
msgid "Add Views signature to all SQL queries"
msgstr "Lägg till Views signatur till alla SQL-frågor"
-#: includes/admin.inc:2677
+#: includes/admin.inc:2679
msgid "All Views-generated queries will include a special 'VIEWS' = 'VIEWS' string in the WHERE clause. This makes identifying Views queries in database server logs simpler, but should only be used when troubleshooting."
msgstr "Alla Viewsgenererade frågor kommer inkludera en speciell 'VIEWS' = 'VIEWS'-sträng i WHERE-satsen. Detta gör det lättare att identifiera Views frågor i databasens loggar, men bör endast användas vid felsökning."
-#: includes/admin.inc:2683
+#: includes/admin.inc:2685
msgid "Disable views data caching"
msgstr "Inaktivera views cachning av data"
-#: includes/admin.inc:2684
+#: includes/admin.inc:2686
msgid "Views caches data about tables, modules and views available, to increase performance. By checking this box, Views will skip this cache and always rebuild this data when needed. This can have a serious performance impact on your site."
msgstr "Views cachar data om tillgängliga tabeller, moduler och vyer, för att öka prestanda. Genom att kryssa i denna ruta kommer Views hoppa över denna cache och alltid bygga om sin data vid behov. Detta kan allvarligt påverka din webbplats prestanda."
-#: includes/admin.inc:2690
+#: includes/admin.inc:2692
msgid "Ignore missing advanced help module"
msgstr "Ignorera avsaknad av modulen Advanced Help"
-#: includes/admin.inc:2691
+#: includes/admin.inc:2693
msgid "Views uses the advanced help module to provide help text; if this module is not present Views will complain, unless this setting is checked."
msgstr "Views använder modulen Advanced Help för att erhålla hjälptext. Om denna modul inte finns närvarande kommer Views att klaga, såvida inte denna inställning är ikryssad."
-#: includes/admin.inc:2697
+#: includes/admin.inc:2699
msgid "Show query above live preview"
msgstr "Visa databasfråga ovanför den direkta förhandsgranskningen"
-#: includes/admin.inc:2698
+#: includes/admin.inc:2700
msgid "The live preview feature will show you the output of the view you're creating, as well as the view. Check here to show the query and other information above the view; leave this unchecked to show that information below the view."
msgstr "Funktionen för den direkta förhandsgranskningen kommer att visa dig utmatningen för vyn som du skapar, och även vyn. Klicka här för att visa databasfrågan och annan information ovanför vyn. Lämna detta ej ikryssat för att visa den informationen nedanför vyn."
-#: includes/admin.inc:2704
+#: includes/admin.inc:2706
msgid "Show other queries run during render during live preview"
msgstr "Visa andra databasfrågor som körs under renderingen vid direkta förhandstitten"
-#: includes/admin.inc:2705
+#: includes/admin.inc:2707
msgid "Drupal has the potential to run many queries while a view is being rendered. Checking this box will display every query run during view render as part of the live preview."
msgstr "Drupal har potentialen att köra många databasfrågor under tiden som en vy renderas. Kryssas denna ruta för visas varje databasfråga som körs under renderingen av vyn som en del av den direkta förhandstidden."
-#: includes/admin.inc:2711
+#: includes/admin.inc:2713
msgid "Do not show hover links over views"
msgstr "Visa inte hovrande länkar över vyer"
-#: includes/admin.inc:2712
+#: includes/admin.inc:2714
msgid "To make it easier to administrate your views, Views provides 'hover' links to take you to the edit and export screen of a view whenever the view is used. This can be distracting on some themes, though; if it is problematic, you can turn it off here."
msgstr "För att göra det enklare att administrera din vy så erbjuder Views \"hovrande\" länkar för att ta dig till redigerings- och exportskärmen för en vy när den används. Detta kan vara distraherande på några teman. Om detta ställer till med problem kan du stänga av det här."
-#: includes/admin.inc:2718
+#: includes/admin.inc:2720
msgid "Enable views performance statistics via the Devel module"
msgstr "Aktivera views statitistik för prestanda via modulen Devel"
-#: includes/admin.inc:2719
+#: includes/admin.inc:2721
msgid "Check this to enable some Views query and performance statistics if Devel is installed."
msgstr "Kryssa i detta för att aktivera några databasfrågor i Views och statistik över prestanda om modulen Devel är installerad."
-#: includes/admin.inc:2725
+#: includes/admin.inc:2727
msgid "Disable javascript with Views"
msgstr "Avaktivera JavaScript för Views"
-#: includes/admin.inc:2726
+#: includes/admin.inc:2728
msgid "If you are having problems with the javascript, you can disable it here; the Views UI should degrade and still be usable without javascript, it just not as good."
msgstr "Om du upplever problem med JavaScript kan du avaktivera det här. Views UI bör nedgraderas och fortfarande fungera utan JavasScript, dock inte lika bra."
-#: includes/admin.inc:2734
+#: includes/admin.inc:2736
msgid "Page region to output performance statistics"
msgstr "Sidområde att skriva ut prestandastatistik till"
-#: includes/admin.inc:2747
+#: includes/admin.inc:2743
+msgid "Label for \"Any\" value on optional single-select exposed filters"
+msgstr "Etikett för värdet \"Valfri\" på valfria exponerade filter för enskilda val"
+
+#: includes/admin.inc:2756
msgid "The cache has been cleared."
msgstr "Cachen har tömts."
-#: includes/admin.inc:2913
+#: includes/admin.inc:2922
msgid "Error: missing @component"
msgstr "Fel: saknad @component"
-#: includes/admin.inc:2999
-#: includes/view.inc:1913
+#: includes/admin.inc:3008
+#: includes/view.inc:1925
msgid "Field"
msgstr "Fält"
-#: includes/admin.inc:3000
+#: includes/admin.inc:3009
msgid "Column"
msgstr "Kolumn"
-#: includes/admin.inc:3003
+#: includes/admin.inc:3012
msgid "Sortable"
msgstr "Sorteringsbar"
-#: includes/admin.inc:3007
+#: includes/admin.inc:3016
msgid "Default sort"
msgstr "Förvald sortering"
@@ -2173,67 +2114,67 @@
msgid "Access will be granted to users with the specified permission string."
msgstr "Åtkomst kommer att ges till användare med den specificerade strängen för rättighet."
-#: includes/view.inc:263
+#: includes/view.inc:266
msgid "set_display() called with invalid display id @display."
msgstr "set_display() anropad med ogiltigt ID för visningen @display."
-#: includes/view.inc:1104
+#: includes/view.inc:1116
msgid "Home"
msgstr "Hem"
-#: includes/view.inc:1912
+#: includes/view.inc:1924
msgid "fields"
msgstr "fält"
-#: includes/view.inc:1914
+#: includes/view.inc:1926
msgid "field"
msgstr "fält"
-#: includes/view.inc:1919
+#: includes/view.inc:1931
msgid "arguments"
msgstr "argument"
-#: includes/view.inc:1920;1921
+#: includes/view.inc:1932;1933
msgid "Argument"
msgstr "Argument"
-#: includes/view.inc:1925
+#: includes/view.inc:1937
msgid "Sort criteria"
msgstr "Sorteringskriterier"
-#: includes/view.inc:1926
+#: includes/view.inc:1938
msgid "sort criteria"
msgstr "sorteringskriterier"
-#: includes/view.inc:1927
+#: includes/view.inc:1939
msgid "Sort criterion"
msgstr "Sorteringskriterium"
-#: includes/view.inc:1928
+#: includes/view.inc:1940
msgid "sort criterion"
msgstr "sorteringskriterium"
-#: includes/view.inc:1932
+#: includes/view.inc:1944
msgid "Filters"
msgstr "Filtrering"
-#: includes/view.inc:1933
+#: includes/view.inc:1945
msgid "filters"
msgstr "filter"
-#: includes/view.inc:1934
+#: includes/view.inc:1946
msgid "Filter"
msgstr "Filter"
-#: includes/view.inc:1935
+#: includes/view.inc:1947
msgid "filter"
msgstr "filter"
-#: includes/view.inc:1940
+#: includes/view.inc:1952
msgid "Relationships"
msgstr "Relationer"
-#: includes/view.inc:1941
+#: includes/view.inc:1953
msgid "relationships"
msgstr "relationer"
@@ -2364,7 +2305,7 @@
msgstr "Vikten på boksidan."
#: modules/book.views.inc:69
-#: modules/comment.views.inc:203
+#: modules/comment.views.inc:211
#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:24
msgid "Depth"
msgstr "Djup"
@@ -2394,7 +2335,7 @@
msgid "Book parent"
msgstr "Överliggande bok"
-#: modules/comment.views.inc:22;26;391;402
+#: modules/comment.views.inc:22;26;400;411
msgid "Comment"
msgstr "Kommentar"
@@ -2461,6 +2402,7 @@
msgstr "Tillhandahåll en enkel länk för att visa kommentaren."
#: modules/comment.views.inc:177
+#: modules/locale.views.inc:123
#: modules/node.views.inc:254
#: modules/user.views.inc:209
msgid "Edit link"
@@ -2488,119 +2430,221 @@
msgid "Provide a simple link to reply to the comment."
msgstr "Tillhandahåll en enkel länk för att besvara kommentaren."
+#: modules/comment.views.inc:203
+msgid "Node link"
+msgstr "Länk för noden"
+
#: modules/comment.views.inc:204
+msgid "Display the standard comment link used on regular nodes."
+msgstr "Visa förvald kommentarslänk som används på vanliga noder."
+
+#: modules/comment.views.inc:212
msgid "Display the depth of the comment if it is threaded."
msgstr "Visa djupet på kommentaren om den är trådad."
-#: modules/comment.views.inc:208
+#: modules/comment.views.inc:216
msgid "Thread"
msgstr "Tråd"
-#: modules/comment.views.inc:209
+#: modules/comment.views.inc:217
msgid "Sort by the threaded order. This will keep child comments together with their parents."
msgstr "Sortera baserat på trådad ordning. Detta upprätthåller underliggande kommentarer tillsammans med överliggande."
-#: modules/comment.views.inc:215;221;256
+#: modules/comment.views.inc:223;229;264
#: modules/node.views.inc:24;29;90;361;376;488;620;631;644
#: modules/upload.views.inc:43
msgid "Node"
msgstr "Nod"
-#: modules/comment.views.inc:216
+#: modules/comment.views.inc:224
msgid "The node the comment is a reply to."
msgstr "Noden som kommentaren är ett svar på."
-#: modules/comment.views.inc:226;232
+#: modules/comment.views.inc:234;240
#: modules/node.views.inc:349
#: modules/statistics.views.inc:204
#: modules/user.views.inc:23;27;226;317
msgid "User"
msgstr "Användare"
-#: modules/comment.views.inc:227
+#: modules/comment.views.inc:235
msgid "The User ID of the comment's author."
msgstr "Användarens ID för författaren till kommentaren."
-#: modules/comment.views.inc:237
+#: modules/comment.views.inc:245
msgid "Parent CID"
msgstr "Överliggande CID"
-#: modules/comment.views.inc:238
+#: modules/comment.views.inc:246
msgid "The Comment ID of the parent comment."
msgstr "Den överliggande kommentarens ID."
-#: modules/comment.views.inc:243;248
+#: modules/comment.views.inc:251;256
msgid "Parent comment"
msgstr "Överliggande kommentar"
-#: modules/comment.views.inc:244
+#: modules/comment.views.inc:252
msgid "The parent comment."
msgstr "Den överliggande kommentaren."
-#: modules/comment.views.inc:269
+#: modules/comment.views.inc:278
msgid "Last comment time"
msgstr "Tid för senaste kommentar"
-#: modules/comment.views.inc:270
+#: modules/comment.views.inc:279
msgid "Date and time of when the last comment was posted."
msgstr "Datum och tid för när den senaste kommentaren lades in."
-#: modules/comment.views.inc:285
+#: modules/comment.views.inc:294
msgid "Last comment author"
msgstr "Senaste kommentarens författare"
-#: modules/comment.views.inc:286
+#: modules/comment.views.inc:295
msgid "The name of the author of the last posted comment."
msgstr "Namnet på författaren för den senast inlagda kommentaren."
-#: modules/comment.views.inc:298
+#: modules/comment.views.inc:307
msgid "Comment count"
msgstr "Antal kommentarer"
-#: modules/comment.views.inc:299
+#: modules/comment.views.inc:308
msgid "The number of comments a node has."
msgstr "Antal kommentarer en nod har."
-#: modules/comment.views.inc:317
+#: modules/comment.views.inc:326
msgid "Updated/commented date"
msgstr "Datum för uppdaterad/kommenterad"
-#: modules/comment.views.inc:318
+#: modules/comment.views.inc:327
msgid "The most recent of last comment posted or node updated time."
msgstr "Den senast inlagda kommentaren eller tid för uppdatering av noden."
-#: modules/comment.views.inc:341
+#: modules/comment.views.inc:350
msgid "New comments"
msgstr "Nya kommentarer"
-#: modules/comment.views.inc:342
+#: modules/comment.views.inc:351
msgid "The number of new comments on the node."
msgstr "Antalet nya kommentarer till noden."
-#: modules/comment.views.inc:350
+#: modules/comment.views.inc:359
msgid "Comment status"
msgstr "Status för kommenterar"
-#: modules/comment.views.inc:351
+#: modules/comment.views.inc:360
msgid "Whether comments are enabled or disabled on the node."
msgstr "Huruvida kommentarer är aktiverade på noden eller ej."
-#: modules/comment.views.inc:365
+#: modules/comment.views.inc:374
msgid "User posted or commented"
msgstr "Användare skrev eller kommenterade"
-#: modules/comment.views.inc:366
+#: modules/comment.views.inc:375
msgid "Display nodes only if a user posted the node or commented on the node."
msgstr "Visar noder enbart om en användare lagt in en nod eller kommenterat på den."
-#: modules/comment.views.inc:392
+#: modules/comment.views.inc:401
msgid "Display the comment with standard comment view."
msgstr "Visa kommentarer med standardvy för kommentarer."
-#: modules/comment.views.inc:403
+#: modules/comment.views.inc:412
msgid "Display the comment as RSS."
msgstr "Visa kommentarer som RSS."
+#: modules/locale.views.inc:23;28;55;75;92;105;121
+msgid "Locale source"
+msgstr "Källa för språk"
+
+#: modules/locale.views.inc:29
+msgid "A source string for translation, in English or the default site language."
+msgstr "En källsträng för översättning, på engelska eller åt det förvalda språket för webbplatsen."
+
+#: modules/locale.views.inc:34
+msgid "LID"
+msgstr "LID"
+
+#: modules/locale.views.inc:35
+msgid "The ID of the source string."
+msgstr "ID för källsträngen."
+
+#: modules/locale.views.inc:56
+msgid "Location"
+msgstr "Plats"
+
+#: modules/locale.views.inc:57
+msgid "A description of the location or context of the string."
+msgstr "En beskrivning av lokaliseringen eller innehållet av strängen."
+
+#: modules/locale.views.inc:76
+#: modules/locale/views_handler_filter_locale_group.inc:10
+msgid "Group"
+msgstr "Grupp"
+
+#: modules/locale.views.inc:77
+msgid "The group the translation is in."
+msgstr "Gruppen som översättningen finns i."
+
+#: modules/locale.views.inc:93
+msgid "Source"
+msgstr "Källa"
+
+#: modules/locale.views.inc:94
+msgid "The full original string."
+msgstr "Den fullständiga originalsträngen."
+
+#: modules/locale.views.inc:106
+#: modules/locale/views_handler_filter_locale_version.inc:10
+msgid "Version"
+msgstr "Version"
+
+#: modules/locale.views.inc:107
+msgid "The version of Drupal core that this string is for."
+msgstr "Version av Drupals kärna som denna sträng tillhör."
+
+#: modules/locale.views.inc:124
+msgid "Provide a simple link to edit the translations."
+msgstr "Tillhandahåll en enkel länk för att redigera översättningarna."
+
+#: modules/locale.views.inc:134;146;159;175;185
+#, fuzzy
+msgid "Locale target"
+msgstr "Källa för lokalisering"
+
+#: modules/locale.views.inc:147
+msgid "Translation"
+msgstr "Översättning"
+
+#: modules/locale.views.inc:148
+msgid "The full translation string."
+msgstr "Den fullständiga strängen strängen för översättning."
+
+#: modules/locale.views.inc:160
+#: modules/translation.views.inc:32
+#: modules/locale/views_handler_filter_locale_language.inc:10
+#: modules/translation/views_handler_filter_node_language.inc:9
+msgid "Language"
+msgstr "Språk"
+
+#: modules/locale.views.inc:161
+msgid "The language this translation is in."
+msgstr "Språket denna översättning finns i."
+
+#: modules/locale.views.inc:176
+msgid "Singular LID"
+msgstr "Singular LID"
+
+#: modules/locale.views.inc:177
+msgid "The ID of the parent translation."
+msgstr "Den överliggande översättningens ID."
+
+#: modules/locale.views.inc:186;194
+msgid "Plural"
+msgstr "Plural"
+
+#: modules/locale.views.inc:187
+msgid "Whether or not the translation is plural."
+msgstr "Huruvida noden är översättningen är plural eller ej."
+
#: modules/node.views.inc:30
msgid "Nodes are a Drupal site's primary content."
msgstr "Noder är en webbplats byggd på Drupals primära innehåll."
@@ -2747,6 +2791,7 @@
msgstr "Den aktuella, fullständiga datan i brödtextens fält. Detta behöver inte vara giltig data för alla nodtyper."
#: modules/node.views.inc:377
+#: modules/node/views_plugin_row_node_view.inc:52
msgid "Teaser"
msgstr "Förhandstitt"
@@ -2806,7 +2851,7 @@
msgid "Node ID from URL"
msgstr "Nodens ID från URL"
-#: modules/node.views.inc:713
+#: modules/node.views.inc:718
msgid "Display %display has no access control but does not contain a filter for published nodes."
msgstr "Visningen %display har inte någon åtkomstkontroll, men innehåller inte något filter för publicerade noder."
@@ -2859,7 +2904,7 @@
msgid "Profile date %field-name."
msgstr "Datum %field-name för profil."
-#: modules/search.views.inc:23;77;88;106;163
+#: modules/search.views.inc:23;86;104;167
msgid "Search"
msgstr "Sök"
@@ -2868,34 +2913,34 @@
msgstr "Poäng"
#: modules/search.views.inc:73
-msgid "The score of the search item."
-msgstr "Poängen på det sökta alternativet."
+msgid "The score of the search item. This will not be used if the search filter is not also present."
+msgstr "Poängen för sökalternativet. Detta kommer inte att användas om inte sökfiltret används."
-#: modules/search.views.inc:95
+#: modules/search.views.inc:93
msgid "Links from"
msgstr "Länkar från"
-#: modules/search.views.inc:96
+#: modules/search.views.inc:94
msgid "Other nodes that are linked from the node."
msgstr "Andra noder som är länkade från noden."
-#: modules/search.views.inc:113
+#: modules/search.views.inc:111
msgid "Links to"
msgstr "Länkar till"
-#: modules/search.views.inc:114
+#: modules/search.views.inc:112
msgid "Other nodes that link to the node."
msgstr "Andra noder som länkar till noden."
-#: modules/search.views.inc:125
+#: modules/search.views.inc:123
msgid "Search Terms"
msgstr "Termer för sökning"
-#: modules/search.views.inc:126
+#: modules/search.views.inc:124
msgid "The terms to search for."
msgstr "Termer att söka efter."
-#: modules/search.views.inc:164
+#: modules/search.views.inc:168
msgid "Display the results with standard search view."
msgstr "Visa resultat med en förvald visning för sökning."
@@ -3109,7 +3154,7 @@
msgstr "Beskrivningen som associeras med en taxonomiterm."
#: modules/taxonomy.views.inc:164
-#: modules/taxonomy/views_handler_filter_term_node_tid.inc:37
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:39
msgid "Vocabulary"
msgstr "Vokabulär"
@@ -3166,11 +3211,6 @@
msgid "Node translation"
msgstr "Översättning av nod"
-#: modules/translation.views.inc:32
-#: modules/translation/views_handler_filter_node_language.inc:9
-msgid "Language"
-msgstr "Språk"
-
#: modules/translation.views.inc:33
msgid "The language the content is in."
msgstr "Språket som innehållet är i."
@@ -3409,22 +3449,22 @@
msgstr "Tillhandahåll en anpassad text eller länk."
#: modules/aggregator/views_plugin_row_aggregator_rss.inc:25
-#: modules/node/views_plugin_row_node_rss.inc:26
+#: modules/node/views_plugin_row_node_rss.inc:32
msgid "Full text"
msgstr "Hela texten"
#: modules/aggregator/views_plugin_row_aggregator_rss.inc:26
-#: modules/node/views_plugin_row_node_rss.inc:27
+#: modules/node/views_plugin_row_node_rss.inc:33
msgid "Title plus teaser"
msgstr "Titel plus förhandstitt"
#: modules/aggregator/views_plugin_row_aggregator_rss.inc:27
-#: modules/node/views_plugin_row_node_rss.inc:28
+#: modules/node/views_plugin_row_node_rss.inc:34
msgid "Title only"
msgstr "Enbart titel"
#: modules/aggregator/views_plugin_row_aggregator_rss.inc:28
-#: modules/node/views_plugin_row_node_rss.inc:29
+#: modules/node/views_plugin_row_node_rss.inc:35
msgid "Use default RSS settings"
msgstr "Använd standardinställningar för RSS"
@@ -3451,6 +3491,7 @@
msgstr "Detta kommer att åsidosätta alla andra länkar som du har angett."
#: modules/comment/views_handler_field_comment_link.inc:23
+#: modules/locale/views_handler_field_locale_link_edit.inc:25
#: modules/node/views_handler_field_node_link.inc:24
#: modules/user/views_handler_field_user_link.inc:22
msgid "Text to display"
@@ -3470,6 +3511,7 @@
msgstr "radera"
#: modules/comment/views_handler_field_comment_link_edit.inc:21
+#: modules/locale/views_handler_field_locale_link_edit.inc:41
#: modules/node/views_handler_field_node_link_edit.inc:26
#: modules/user/views_handler_field_user_link_edit.inc:13
msgid "edit"
@@ -3479,6 +3521,10 @@
msgid "reply"
msgstr "besvara"
+#: modules/comment/views_handler_field_comment_node_link.inc:36
+msgid "Show teaser-style link"
+msgstr "Visa länk med som förhandsvisning"
+
#: modules/comment/views_handler_field_comment_username.inc:25
msgid "Link this field to its user or an author's homepage"
msgstr "Länka detta fält till dess användare eller en författares hemsida"
@@ -3507,19 +3553,43 @@
msgstr "Visa ingenting, om inga nya kommentarer"
#: modules/comment/views_plugin_row_comment_view.inc:21
-#: modules/node/views_plugin_row_node_view.inc:32
+#: modules/node/views_plugin_row_node_view.inc:64
msgid "Display links"
msgstr "Visa länkar"
-#: modules/node/views_handler_argument_dates_various.inc:167
-msgid "Week @week"
-msgstr "Vecka @week"
+#: modules/locale/views_handler_argument_locale_group.inc:32
+msgid "Unknown group"
+msgstr "Okänd grupp"
+#: modules/locale/views_handler_argument_locale_language.inc:30
#: modules/node/views_handler_argument_node_language.inc:29
#: modules/translation/views_handler_argument_node_language.inc:29
msgid "Unknown language"
msgstr "Okänt språk"
+#: modules/locale/views_handler_filter_locale_language.inc:11
+#: modules/translation/views_handler_filter_node_language.inc:10
+msgid "Current user's language"
+msgstr "Språk för nuvarande användare"
+
+#: modules/locale/views_handler_filter_locale_language.inc:11
+#: modules/translation/views_handler_filter_node_language.inc:10
+msgid "Default site language"
+msgstr "Förvalt språk för webbplatsen"
+
+#: modules/locale/views_handler_filter_locale_language.inc:11
+#: modules/translation/views_handler_filter_node_language.inc:10
+msgid "No language"
+msgstr "Inget språk"
+
+#: modules/locale/views_handler_filter_locale_version.inc:12
+msgid "Current installed version"
+msgstr "Nuvarande installerad version"
+
+#: modules/node/views_handler_argument_dates_various.inc:167
+msgid "Week @week"
+msgstr "Vecka @week"
+
#: modules/node/views_handler_argument_node_type.inc:30
msgid "Unknown node type"
msgstr "Okänd typ av nod"
@@ -3565,18 +3635,38 @@
msgid "Node IDs separated by , or +"
msgstr "ID för noderna separerade med , eller +"
-#: modules/node/views_plugin_row_node_rss.inc:114
+#: modules/node/views_plugin_row_node_rss.inc:129
msgid "read more"
msgstr "läs mer"
-#: modules/node/views_plugin_row_node_view.inc:27
-msgid "Display only teaser"
-msgstr "Visa enbart förhandstitt"
+#: modules/node/views_plugin_row_node_view.inc:53
+msgid "Full node"
+msgstr "Fullständig nod"
-#: modules/node/views_plugin_row_node_view.inc:37
+#: modules/node/views_plugin_row_node_view.inc:59
+msgid "Build mode"
+msgstr "Metod för uppbyggnad"
+
+#: modules/node/views_plugin_row_node_view.inc:69
msgid "Display node comments"
msgstr "Visa kommentarer till noder"
+#: modules/search/views_handler_field_search_score.inc:21
+msgid "No alternate"
+msgstr "Inget alternativ"
+
+#: modules/search/views_handler_field_search_score.inc:28
+msgid "Alternative sort"
+msgstr "Alternativ sorteringsordning"
+
+#: modules/search/views_handler_field_search_score.inc:29
+msgid "If no search is performed and this field does not appear, pick an alternative default table sort field."
+msgstr "Om ingen sökning är genomförd och detta fält inte visas, välj ett alternativt förvalt sorteringsfält."
+
+#: modules/search/views_handler_field_search_score.inc:36
+msgid "Alternate sort order"
+msgstr "Byt sorteringsordning"
+
#: modules/search/views_handler_filter_search.inc:23
msgid "On empty input"
msgstr "Vid tom inmatning"
@@ -3593,11 +3683,11 @@
msgid "Enter the terms you wish to search for."
msgstr "Ange de termer du vill söka efter."
-#: modules/search/views_handler_filter_search.inc:62
+#: modules/search/views_handler_filter_search.inc:60
msgid "You must include at least one positive keyword with @count characters or more."
msgstr "Du måste ha med minst ett positivt sökord med @count bokstäver eller mer."
-#: modules/search/views_handler_filter_search.inc:66
+#: modules/search/views_handler_filter_search.inc:64
msgid "Search for either of the two terms with uppercase OR. For example, cats OR dogs."
msgstr "Sök efter vilket som av de två termerna med stora bokstäver OR. Exempel: katter OR hundar."
@@ -3611,7 +3701,7 @@
#: modules/system/views_handler_field_file.inc:29
#: modules/upload/views_handler_field_upload_description.inc:24
-#: modules/upload/views_handler_field_upload_fid.inc:21
+#: modules/upload/views_handler_field_upload_fid.inc:25
msgid "Link this field to download the file"
msgstr "Länka detta fält för att ladda ned filen "
@@ -3663,35 +3753,39 @@
msgid "Vocabularies"
msgstr "Vokabulärer"
-#: modules/taxonomy/views_handler_filter_term_node_tid.inc:39
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:41
msgid "Select which vocabulary to show terms for in the regular options."
msgstr "Välj vilket vokabulär som termer skall visas i, under de allmäna alternativen."
-#: modules/taxonomy/views_handler_filter_term_node_tid.inc:49
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:52
msgid "Selection type"
msgstr "Typ av urval"
-#: modules/taxonomy/views_handler_filter_term_node_tid.inc:50
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:53
msgid "Dropdown"
msgstr "Rullgardinsmeny"
-#: modules/taxonomy/views_handler_filter_term_node_tid.inc:50
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:53
msgid "Autocomplete"
msgstr "Automatiskt kompletterande"
-#: modules/taxonomy/views_handler_filter_term_node_tid.inc:56
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:59
msgid "Show hierarchy in dropdown"
msgstr "Visa hierarki i rullgardinsmeny"
-#: modules/taxonomy/views_handler_filter_term_node_tid.inc:73
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:76
msgid "An invalid vocabulary is selected. Please change it in the options."
msgstr "Ett ogiltigt vokabulär är valt. Var vänlig ändra det i alternativen."
-#: modules/taxonomy/views_handler_filter_term_node_tid.inc:91;147
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:94;158
msgid "Select terms from vocabulary @voc"
msgstr "Välj termer från vokabulär @voc"
-#: modules/taxonomy/views_handler_filter_term_node_tid.inc:258
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:94;158
+msgid "Select terms"
+msgstr "Välj termer"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:273
msgid "Unable to find term: @terms"
msgid_plural "Unable to find terms: @terms"
msgstr[0] "Kunde inte hitta termen: @terms"
@@ -3718,18 +3812,10 @@
msgid "Select the form of this argument; if using term name, it is generally more efficient to convert it to a term ID and use Taxonomy: Term ID rather than Taxonomy: Term Name\" as an argument."
msgstr "Välj formen på detta argument. Om namnet på termen används är det generellt mer effektivt att konvertera det till ett ID för termen och använda taxonomi: Hellre ID för termen än taxonomi: Namn för termen som ett argument."
-#: modules/translation/views_handler_filter_node_language.inc:10
-msgid "Current user's language"
-msgstr "Språk för nuvarande användare"
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:48
+msgid "Transform dashes in URL to spaces in term name arguments"
+msgstr "Gör om snedstreck i URL till mellanslag i arguments namn på termer"
-#: modules/translation/views_handler_filter_node_language.inc:10
-msgid "Default site language"
-msgstr "Förvalt språk för webbplatsen"
-
-#: modules/translation/views_handler_filter_node_language.inc:10
-msgid "No language"
-msgstr "Inget språk"
-
#: modules/translation/views_handler_filter_node_tnid.inc:22
msgid "Include untranslated nodes"
msgstr "Inkludera noder som inte är översatta"
@@ -3750,7 +3836,7 @@
msgid "The translation options allows you to select which translation or translations in a translation set join on. Select \"Current language\" or \"Default language\" to join on the translation in the current or default language respectively. Select a specific language to join on a translation in that language. If you select \"All\", each translation will create a new row, which may appear to cause duplicates."
msgstr "Alternativen för översättningen låter dig välja vilken översättning eller uppsättning av översättningar att ansluta till. Välj \"Nuvarande språk\" eller \"Förvalt språk\" för att ansluta till översättningen av det nuvarande språket, eller enbart det förvalda språket. Välj ett specifikt språk att ansluta till på översättningen för det språket. Väljer du \"Alla\" kommer varje översättning att skapa en ny rad, vilket kan orsaka dubletter."
-#: modules/upload/views_handler_field_upload_fid.inc:27
+#: modules/upload/views_handler_field_upload_fid.inc:31
msgid "Only show \"listed\" file attachments"
msgstr "Visa enbart \"listade\" bifogade filer"
@@ -3808,31 +3894,31 @@
msgid "Also look for a node and use the node author"
msgstr "Leta även efter en nod och använd nodens författare"
-#: modules/user/views_plugin_argument_validate_user.inc:15
+#: modules/user/views_plugin_argument_validate_user.inc:22
msgid "Type of user argument to allow"
msgstr "Typ av argument för användare att tillåta"
-#: modules/user/views_plugin_argument_validate_user.inc:17
+#: modules/user/views_plugin_argument_validate_user.inc:24
msgid "Only allow numeric UIDs"
msgstr "Tillåt enbart numeriska UID"
-#: modules/user/views_plugin_argument_validate_user.inc:18
+#: modules/user/views_plugin_argument_validate_user.inc:25
msgid "Only allow string usernames"
msgstr "Tillåt enbart användarnamn som strängar"
-#: modules/user/views_plugin_argument_validate_user.inc:19
+#: modules/user/views_plugin_argument_validate_user.inc:26
msgid "Allow both numeric UIDs and string usernames"
msgstr "Tillåt både numeriska UID och användarnamn som strängar"
-#: modules/user/views_plugin_argument_validate_user.inc:26
+#: modules/user/views_plugin_argument_validate_user.inc:37
msgid "Restrict user based on role"
msgstr "Begränsa användare baserat på roll"
-#: modules/user/views_plugin_argument_validate_user.inc:33
+#: modules/user/views_plugin_argument_validate_user.inc:47
msgid "Restrict to the selected roles"
msgstr "Begränsa till valda roller"
-#: modules/user/views_plugin_argument_validate_user.inc:36
+#: modules/user/views_plugin_argument_validate_user.inc:50
msgid "If no roles are selected, users from any role will be allowed."
msgstr "Om ingen roll är vald kommer användare från vilken roll som helst att tillåtas."
@@ -4753,43 +4839,43 @@
msgid "Edit this view"
msgstr "Redigera denna vy"
-#: theme/theme.inc:322
+#: theme/theme.inc:324
msgid "sort by @s"
msgstr "sortera efter @s"
-#: theme/theme.inc:599
+#: theme/theme.inc:601
msgid "‹‹"
msgstr "‹‹"
-#: theme/theme.inc:604
+#: theme/theme.inc:606
msgid "››"
msgstr "››"
-#: theme/theme.inc:617
+#: theme/theme.inc:619
msgid "@current of @max"
msgstr "@current av @max"
-#: views_export/views_export.module:76
+#: views_export/views_export.module:77
msgid "There are no views to be exported at this time."
msgstr "Det finns inga vyer att exportera för tillfället."
-#: views_export/views_export.module:108
+#: views_export/views_export.module:109
msgid "Show only these tags"
msgstr "Visa endast dessa märken"
-#: views_export/views_export.module:122
+#: views_export/views_export.module:123
msgid "Module name"
msgstr "Namn på modul"
-#: views_export/views_export.module:123
+#: views_export/views_export.module:124
msgid "Enter the module name to export code to."
msgstr "Ange modulens namn att exportera koden till."
-#: views_export/views_export.module:204
+#: views_export/views_export.module:205
msgid "Put this in @module.module in your modules/@module directory"
msgstr "Stoppa in detta i @module.module i din katalog modules/@module"
-#: views_export/views_export.module:217
+#: views_export/views_export.module:218
msgid "Put this in @module.views_default.inc in your modules/@module directory or modules/@module/includes directory"
msgstr "Stoppa indetta i @module.views_default.inc i din katalog modules/@module eller katalogen modules/@module/includes"
Index: sites/all/modules/views/translations/pl.po
===================================================================
--- sites/all/modules/views/translations/pl.po (.../trunk) (revision 0)
+++ sites/all/modules/views/translations/pl.po (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,3994 @@
+# $Id: pl.po,v 1.2 2009/06/02 19:36:25 merlinofchaos Exp $
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME
+# Generated from files:
+# views.module,v 1.294 2008/06/11 19:32:46 merlinofchaos
+# admin.inc,v 1.115 2008/06/11 19:32:47 merlinofchaos
+# views_ui.module,v 1.99 2008/06/04 00:09:53 merlinofchaos
+# views_export.module,v 1.1 2008/06/12 16:17:25 merlinofchaos
+# views.info,v 1.7 2007/08/12 06:52:14 merlinofchaos
+# views_ui.info,v 1.10 2008/01/09 00:05:08 merlinofchaos
+# views_export.info,v 1.1 2008/06/12 16:17:25 merlinofchaos
+# plugins.inc,v 1.118 2008/06/13 15:50:00 merlinofchaos
+# convert.inc,v 1.9 2008/06/11 18:42:11 merlinofchaos
+# theme.inc,v 1.50 2008/06/10 22:10:20 merlinofchaos
+# views.install,v 1.41 2008/06/03 23:50:44 merlinofchaos
+# docs.php,v 1.7 2008/06/07 00:12:11 merlinofchaos
+# node.views.inc,v 1.72 2008/06/11 01:22:03 merlinofchaos
+# view.inc,v 1.108 2008/06/10 22:10:20 merlinofchaos
+# system.views.inc,v 1.5 2008/06/03 22:34:46 merlinofchaos
+# user.views.inc,v 1.44 2008/06/03 22:34:46 merlinofchaos
+# argument.handlers.inc,v 1.25 2008/06/03 22:36:55 merlinofchaos
+# comment.views.inc,v 1.16 2008/06/03 22:34:46 merlinofchaos
+# statistics.views.inc,v 1.6 2008/06/03 22:34:46 merlinofchaos
+# upload.views.inc,v 1.8 2008/06/03 22:34:46 merlinofchaos
+# book.views.inc,v 1.3 2008/04/10 20:23:30 merlinofchaos
+# taxonomy.views.inc,v 1.31 2008/06/10 18:35:26 merlinofchaos
+# ajax.inc,v 1.14 2008/06/03 22:34:46 merlinofchaos
+# field.handlers.inc,v 1.12 2008/06/03 22:34:46 merlinofchaos
+# filter.handlers.inc,v 1.20 2008/06/03 23:34:39 merlinofchaos
+# relationship.handlers.inc,v 1.5 2008/06/03 22:34:46 merlinofchaos
+# handlers.inc,v 1.84 2008/06/10 18:35:26 merlinofchaos
+# sort.handlers.inc,v 1.5 2008/06/03 22:34:46 merlinofchaos
+# ajax.js,v 1.21 2008/05/27 22:31:59 merlinofchaos
+# ajax_view.js,v 1.5 2008/05/27 22:31:59 merlinofchaos
+# tabs.js,v 1.3 2008/03/30 15:58:26 merlinofchaos
+# poll.views.inc,v 1.2 2008/03/12 04:32:07 merlinofchaos
+# profile.views.inc,v 1.6 2008/04/21 17:52:10 merlinofchaos
+# search.views.inc,v 1.7 2008/06/03 23:53:05 merlinofchaos
+# views.views.inc,v 1.3 2008/06/03 22:34:46 merlinofchaos
+# views-more.tpl.php,v 1.2 2008/04/11 08:46:26 merlinofchaos
+# views-ui-edit-item.tpl.php,v 1.7 2008/05/09 19:32:12 merlinofchaos
+# views-ui-edit-tab.tpl.php,v 1.10 2008/05/14 00:30:25 merlinofchaos
+# views-ui-edit-view.tpl.php,v 1.8 2008/05/14 00:52:10 merlinofchaos
+# views-ui-list-views.tpl.php,v 1.5 2008/05/08 05:29:30 merlinofchaos
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.0\n"
+"POT-Creation-Date: 2008-06-15 10:44+0200\n"
+"PO-Revision-Date: 2008-10-07 13:02+0100\n"
+"Last-Translator: Bartlomiej Opajdowski \n"
+"Language-Team: Polish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Polish\n"
+"X-Poedit-Country: POLAND\n"
+
+#: views.module:625
+msgid "Skipping broken view @view"
+msgstr "Pomiń uszkodzony widok @view"
+
+#: views.module:672;712
+#: includes/admin.inc:92;253;253;599
+msgid "Overridden"
+msgstr "Nadpisany"
+
+#: views.module:675;708
+#: views_ui.module:284
+#: includes/admin.inc:91;252;252;566;738
+msgid "Default"
+msgstr "Domyślny"
+
+#: views.module:824
+#: includes/admin.inc:286
+#: views_export/views_export.module:116
+msgid "Apply"
+msgstr "Zastosuj"
+
+#: views.module:109
+#: views_ui.module:23
+#: views.info:0;0
+#: views_ui.info:0
+#: views_export/views_export.info:0
+msgid "Views"
+msgstr "Widoki"
+
+#: views.module:114
+msgid "Ajax callback for view loading."
+msgstr "funkcja zwrotna dla asynchronicznego ładowania widoku."
+
+#: views.module:0
+msgid "views"
+msgstr "widoki"
+
+#: views_ui.module:158
+msgid "The converter will make a best-effort attempt to convert a Views 1 view to Views 2. This conversion is not reliable; you will very likely have to make adjustments to your view to get it to match. You can import Views 1 views through the normal Import tab."
+msgstr "Konwerter próbuje przetworzyć widoki Views 1 na Views 2. Konwersja nie jest niezawodna; Być może będzie trzeba coś dopasować. Możesz importować widoki Views 1 używając zakładki Import."
+
+#: views_ui.module:25
+msgid "Views are customized lists of content on your system; they are highly configurable and give you control over how lists of content are presented."
+msgstr "Widoki są spersonalizowaną listą zawartości; Są wysoce konfigurowywalne i dają kontrolę nad prezentowaną listą zawartości."
+
+#: views_ui.module:29
+#: includes/plugins.inc:88;116
+msgid "List"
+msgstr "Lista"
+
+#: views_ui.module:35
+#: includes/admin.inc:1081;1081;2093
+msgid "Add"
+msgstr "Dodaj"
+
+#: views_ui.module:40
+#: includes/admin.inc:702
+msgid "Import"
+msgstr "Importuj"
+
+#: views_ui.module:46
+msgid "Tools"
+msgstr "Narzędzia"
+
+#: views_ui.module:52
+msgid "Basic"
+msgstr "Podstawowy"
+
+#: views_ui.module:60
+#: includes/convert.inc:30
+msgid "Convert"
+msgstr "Konweruj"
+
+#: views_ui.module:61
+msgid "Convert stored Views 1 views."
+msgstr "Konwertuj widok Views 1"
+
+#: views_ui.module:67;80;85
+msgid "Delete view"
+msgstr "Usuń widok"
+
+#: views_ui.module:73
+msgid "Convert view"
+msgstr "Konwertuj widok"
+
+#: views_ui.module:110
+#: includes/admin.inc:87
+#: theme/theme.inc:89
+msgid "Edit"
+msgstr "Edytuj"
+
+#: views_ui.module:0
+msgid "views_ui"
+msgstr "views_ui"
+
+#: views.install:31
+msgid "Stores the general data for a view."
+msgstr "Przechowuje główne dane dla widoku."
+
+#: views.install:37
+msgid "The view ID of the field, defined by the database."
+msgstr "ID widoku definiowane przez bazę danych."
+
+#: views.install:45
+msgid "The unique name of the view. This is the primary field views are loaded from, and is used so that views may be internal and not necessarily in the database. May only be alphanumeric characters plus underscores."
+msgstr "Unikalna nazwa widoku. To "
+
+#: views.install:51
+msgid "A description of the view for the admin interface."
+msgstr "Opis widoku dla interfejsu administracyjnego."
+
+#: views.install:57
+msgid "A tag used to group/sort views in the admin interface"
+msgstr "Tag używany do grupowania/sortowania interfejsu administracyjnego"
+
+#: views.install:61
+msgid "A chunk of PHP code that can be used to provide modifications to the view prior to building."
+msgstr "Kawałek kodu PHP do modyfikacjimodyfikacji widoku zanim ten zostanie zbudowany."
+
+#: views.install:68
+msgid "What table this view is based on, such as node, user, comment, or term."
+msgstr "Na jakiej tabeli bazuje widok: segment, użytkownik, komentarz, wyrażenie."
+
+#: views.install:74
+msgid "A boolean to indicate whether or not this view may have its query cached."
+msgstr "Wartość boolean oznaczająca czy zapytania powinny używać pamięci podręcznej czy też nie."
+
+#: views.install:82
+msgid "Stores information about each display attached to a view."
+msgstr "Przechowuje informację o każdym podglądzie dołączonym do widoku."
+
+#: views.install:89
+msgid "The view this display is attached to."
+msgstr "Widok dołączonego podglądu."
+
+#: views.install:97
+msgid "An identifier for this display; usually generated from the display_plugin, so should be something like page or page_1 or block_2, etc."
+msgstr "Identyfikator tego podglądu; zwykle generowany z display_plugin, więc powinien wyglądać mniej sięcej jak: page_1 albo block_2 itp."
+
+#: views.install:104
+msgid "The title of the display, viewable by the administrator."
+msgstr "Tytuł podglądu, widoczny dla administratora."
+
+#: views.install:111
+msgid "The type of the display. Usually page, block or embed, but is pluggable so may be other things."
+msgstr "Typ podglądu. Zwykle strona, blok lub osadzony fragment, ma charakter pluginu, więc może być czymkolwiek."
+
+#: views.install:116
+msgid "The order in which this display is loaded."
+msgstr "Kolejność ładowania podglądów."
+
+#: views.install:120
+msgid "A serialized array of options for this display; it contains options that are generally only pertinent to that display plugin type."
+msgstr "Zserializowana tablica opcji dla tego podglądu; zawiera tylko opcje które są właściwe do wyświetlania typu plugina."
+
+#: views.install:131
+msgid "A special cache used to store objects that are being edited; it serves to save state in an ordinarily stateless environment."
+msgstr "Specjalna pamięć podręczna używana do przechowywania obiektów będących w trakcie edycji; "
+
+#: views.install:136
+msgid "The session ID this cache object belongs to."
+msgstr "ID sesji do której należy obiekt pamięci podręcznej."
+
+#: views.install:141
+msgid "The name of the view this cache is attached to."
+msgstr "Nazwa widoku do którego dołączona jest ta pamięć podręczna."
+
+#: views.install:146
+msgid "The name of the object this cache is attached to; this essentially represents the owner so that several sub-systems can use this cache."
+msgstr "Nazwa obiektu do którego dołączona jest ta pamięć podręczna. Określa dokładnie właścicela, tak więc klika podsystemów może jej używać."
+
+#: views.install:153
+msgid "The time this cache was created or updated."
+msgstr "Czas utworzenia lub uaktualnienia pamięci podręcznej."
+
+#: views.install:157
+msgid "Serialized data being stored."
+msgstr "Zserializowane dane będą zachowane."
+
+#: views.info:0
+msgid "Create customized lists and queries from your database."
+msgstr "Tworzy własną listę zapytań z Twojej bazy danych."
+
+#: views_ui.info:0
+msgid "Views UI"
+msgstr "Panel administracyjny widoków"
+
+#: views_ui.info:0
+msgid "Administrative interface to views. Without this module, you cannot create or edit your views."
+msgstr "Administrowalny interfejs widoków. Bez tego modułu nie będzie możliwe tworzenie i edytowanie własnych widoków."
+
+#: docs/docs.php:106
+msgid "Emulates the default Drupal front page; you may set the default home page path to this view to make it your front page."
+msgstr "Emuluje domyślną główną strone Drupala; możesz ustawić ścieżkę domyślnej strony domowej na ten widok aby była stroną główną"
+
+#: docs/docs.php:107
+msgid "default"
+msgstr "domyślny"
+
+#: docs/docs.php:116
+#: includes/plugins.inc:18
+msgid "Defaults"
+msgstr "Ustawienia domyślne"
+
+#: docs/docs.php:205
+#: includes/plugins.inc:32;40
+msgid "Page"
+msgstr "Strona"
+
+#: docs/docs.php:260
+#: includes/plugins.inc:65;72
+msgid "Feed"
+msgstr "Kanał"
+
+#: docs/docs.php:328
+msgid "Front page feed"
+msgstr "Kanał strony głównej"
+
+#: includes/admin.inc:34
+msgid "If you install the advanced help module from !href, Views will provide more and better help. Hide this message."
+msgstr "Obszerniejsza pomoc dla modułu widoków znajduje się tutaj: !href . Ukryj tą wiadomość."
+
+#: includes/admin.inc:88;900
+#: theme/theme.inc:96
+#: views_export/views_export.module:128
+msgid "Export"
+msgstr "Eksportuj"
+
+#: includes/admin.inc:89;905
+#: theme/theme.inc:101
+msgid "Clone"
+msgstr "Klonuj"
+
+#: includes/admin.inc:92
+msgid "Revert"
+msgstr "Odwróć"
+
+#: includes/admin.inc:92;612;774
+#: includes/convert.inc:35;109
+msgid "Delete"
+msgstr "Usuń"
+
+#: includes/admin.inc:97
+msgid "Disable"
+msgstr "Wyłącz"
+
+#: includes/admin.inc:100
+msgid "Enable"
+msgstr "Włącz"
+
+#: includes/admin.inc:106
+msgid "Warning! Broken view!"
+msgstr "Ostrzeżenie! Uszkodzony widok!"
+
+#: includes/admin.inc:121
+msgid "Broken"
+msgstr "Uszkodzony"
+
+#: includes/admin.inc:180
+msgid "Install the advanced help module for the getting started"
+msgstr "Instalacja dodatkowego modułu pomocy"
+
+#: includes/admin.inc:183
+msgid "Not sure what to do? Try the \"!getting-started\" page."
+msgstr "Nie jesteś pewien co zrobić? Spróbuj na stronie \"!getting-started\"."
+
+#: includes/admin.inc:197;250;2059
+msgid ""
+msgstr ""
+
+#: includes/admin.inc:198
+#: includes/plugins.inc:2820
+msgid ""
+msgstr ""
+
+#: includes/admin.inc:213;264;985
+#: views_export/views_export.module:146
+msgid "Tag"
+msgstr "Tag"
+
+#: includes/admin.inc:229
+msgid "Displays"
+msgstr "Podglądy"
+
+#: includes/admin.inc:241;266
+#: includes/plugins.inc:1102;2079
+#: modules/node.views.inc:139
+msgid "Type"
+msgstr "Typ"
+
+#: includes/admin.inc:248
+msgid "Storage"
+msgstr "Magazyn(storage)"
+
+#: includes/admin.inc:251;251
+#: includes/view.inc:993;1043
+msgid "Normal"
+msgstr "Normalny"
+
+#: includes/admin.inc:260
+msgid "Sort by"
+msgstr "Sortuj po"
+
+#: includes/admin.inc:262
+#: includes/plugins.inc:805
+#: modules/system.views.inc:69
+#: modules/user.views.inc:59;79
+msgid "Name"
+msgstr "Nazwa"
+
+#: includes/admin.inc:263;361
+#: includes/argument.handlers.inc:111
+#: includes/plugins.inc:817;2091;2136
+#: modules/comment.views.inc:44
+#: modules/node.views.inc:84;402
+msgid "Title"
+msgstr "Tytuł"
+
+#: includes/admin.inc:265;369
+#: includes/plugins.inc:2008
+#: modules/statistics.views.inc:146
+#: modules/system.views.inc:88
+msgid "Path"
+msgstr "Ścieżka"
+
+#: includes/admin.inc:267
+#: includes/convert.inc:21
+#: modules/upload.views.inc:48
+#: views_export/views_export.module:146
+msgid "Description"
+msgstr "Opis"
+
+#: includes/admin.inc:274
+msgid "Order"
+msgstr "Kolejność"
+
+#: includes/admin.inc:276
+msgid "Up"
+msgstr "Rosnąco"
+
+#: includes/admin.inc:277
+msgid "Down"
+msgstr "Malejąco"
+
+#: includes/admin.inc:360;379
+msgid "Query"
+msgstr "Zapytanie(query)"
+
+#: includes/admin.inc:366
+msgid "This display has no path."
+msgstr "Ten podgląd nie ma podanej ścieżki."
+
+#: includes/admin.inc:371
+msgid "Query build time"
+msgstr "Czas budowania zapytania"
+
+#: includes/admin.inc:371;372;373
+msgid "@time ms"
+msgstr "@time ms"
+
+#: includes/admin.inc:372
+msgid "Query execute time"
+msgstr "Czas wykonywania zapytania"
+
+#: includes/admin.inc:373
+msgid "View render time"
+msgstr "Czas tworzenia widoku"
+
+#: includes/admin.inc:379
+msgid "No query was run"
+msgstr "Żadne zapytanie nie zostało wykonane"
+
+#: includes/admin.inc:386
+msgid "Unable to preview due to validation errors."
+msgstr "Nie mogę podejrzeć prawidłowego sprawdzania błędów."
+
+#: includes/admin.inc:437
+msgid "Display"
+msgstr "Podgląd"
+
+#: includes/admin.inc:445
+#: includes/view.inc:1670
+msgid "Arguments"
+msgstr "Argumenty"
+
+#: includes/admin.inc:447
+msgid "Separate arguments with a / as though they were a URL path."
+msgstr "Argumenty oddzielamy / tak jak by były ścieżką w URLu."
+
+#: includes/admin.inc:453
+msgid "Preview"
+msgstr "Podgląd"
+
+#: includes/admin.inc:491
+msgid "Clone view @view"
+msgstr "Sklonuj widok @view"
+
+#: includes/admin.inc:504;691
+#: includes/convert.inc:20
+msgid "View name"
+msgstr "Nazwa widoku"
+
+#: includes/admin.inc:505
+msgid "This is the unique name of the view. It must contain only alphanumeric characters and underscores; it is used to identify the view internally and to generate unique theming template names for this view. If overriding a module provided view, the name must not be changed or instead a new view will be created."
+msgstr "To jest unikalna nazwa widoku. Może zawierać tylko znaki alfanumeryczne i podkreślenia; używana jest do identyfikowania widoku wewnętrznie i do generowania unikalnych nazw wzorów dla tego widoku. Jeśli nadpisujemy dostarczony wraz z modułem widok, nazwa nie może zostać zmieniona albo zostanie utworzony nowy widok."
+
+#: includes/admin.inc:513;1769
+msgid "View description"
+msgstr "Opis widoku"
+
+#: includes/admin.inc:514;1770
+msgid "This description will appear on the Views administrative UI to tell you what the view is about."
+msgstr "Ten opis ukaże się w panelu administracyjnym użytkownika, abyś wiedział do czego ten widok służy"
+
+#: includes/admin.inc:520;1776
+msgid "View tag"
+msgstr "Tag widoku"
+
+#: includes/admin.inc:521;1777
+msgid "Enter an optional tag for this view; it is used only to help sort views on the administrative page."
+msgstr "Wprowadź opcjonalny tag dla tego widoku; Będzie on używany by pomóc w ich sortowaniu na stronie administracyjnej."
+
+#: includes/admin.inc:533
+msgid "View type"
+msgstr "Typ widoku"
+
+#: includes/admin.inc:534
+msgid "The view type is the primary table for which information is being retrieved. The view type controls what arguments, fields, sort criteria and filters are available, so once this is set it cannot be changed."
+msgstr "Typ widoku jest pierwszą tabelą dla której informacje zostaną odzyskane. Typ widoku kontroluje jakie argumenty, pola, kryteria sortowania i filtry są dostępne, więc raz ustawione nie mogą być zmieniane."
+
+#: includes/admin.inc:545
+msgid "Next"
+msgstr "Następne"
+
+#: includes/admin.inc:561
+msgid "View name must be alphanumeric or underscores only."
+msgstr "Nazwa widoku może zawierać tylko znaki alfanumeryczne albo podkreślenia."
+
+#: includes/admin.inc:567
+msgid "You must use a unique name for this view."
+msgstr "Musisz użyć unikalnej nazwy dla tego widoku."
+
+#: includes/admin.inc:600
+msgid "Are you sure you want to revert the view %name?"
+msgstr "Jesteś pewny że chcesz powrócić do nazwy widoku %name?"
+
+#: includes/admin.inc:601
+msgid "Reverting the view will delete the view that is in the database, reverting it to the original default view. Any changes you have made will be lost and cannot be recovered."
+msgstr "Przywracanie widoku spowoduje skasowanie widoku z bazy danych i przywrócenie oryginalnie dostarczonego widoku. Wszystkie zmiany które zrobiłeś będą utracone i nie będą mogły być odtworzone."
+
+#: includes/admin.inc:604
+#: includes/convert.inc:105
+msgid "Are you sure you want to delete the view %name?"
+msgstr "Jesteś pewien że chcesz skasować widok %name?"
+
+#: includes/admin.inc:605
+msgid "Deleting a view cannot be undone."
+msgstr "Kasowanie nie może być cofnięte."
+
+#: includes/admin.inc:613;649;767;1225
+#: includes/convert.inc:110
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: includes/admin.inc:622
+msgid "The view has been deleted."
+msgstr "Widok został skasowany."
+
+#: includes/admin.inc:634
+msgid "There is no lock on view %view to break."
+msgstr "Nie ma blokad do złamania na widoku %view."
+
+#: includes/admin.inc:644
+msgid "Are you sure you want to break the lock on view %name?"
+msgstr "Jesteś pewien, że chcesz złamać blokadę na widoku %name?"
+
+#: includes/admin.inc:647
+msgid "By breaking this lock, any unsaved changes made by !user will be lost!"
+msgstr "Przez złamanie tej blokady wszystkie niezapisane zmiany zrobione przez !user będą utracone!"
+
+#: includes/admin.inc:648
+msgid "Break lock"
+msgstr "Złam blokadę"
+
+#: includes/admin.inc:665
+msgid "Edit view \"%view\""
+msgstr "Edytuj widok \"%view\""
+
+#: includes/admin.inc:692
+msgid "Enter the name to use for this view if it is different from the source view. Leave blank to use the name of the view."
+msgstr "Wprowadź nazwę używaną dla tego widoku jeśli jest inna niż źródłowa. Pozostaw puste aby użyć oryginalnej nazwy widoku."
+
+#: includes/admin.inc:697
+msgid "Paste view code here"
+msgstr "Wklej kod widoku tutaj"
+
+#: includes/admin.inc:719
+msgid "Unable to interpret view code."
+msgstr "Nie można zinterpretować kodu widoku."
+
+#: includes/admin.inc:726
+msgid "You are importing a view created in Views version 1. You may need to adjust some parameters to work correctly in version 2."
+msgstr "Importujesz widok utworzony w Views 1. Prawdopodobnie trzeba będzie poprawić część parametrów aby widok działał z wersją widoków View 2."
+
+#: includes/admin.inc:729
+msgid "That view is not compatible with this version of Views."
+msgstr "Ten widok nie jest kompatybilny z tą wersją Widoków."
+
+#: includes/admin.inc:739
+msgid "A view by that name already exists; please choose a different name"
+msgstr "Widok o takiej nazwie juz istnieje; nazwij go inaczej"
+
+#: includes/admin.inc:760;788
+msgid "Save"
+msgstr "Zachowaj"
+
+#: includes/admin.inc:812
+msgid "The view has been saved."
+msgstr "Widok został zachowany."
+
+#: includes/admin.inc:851
+msgid "Unknown or missing table name"
+msgstr "Nieznana lub utracona nazwa tabeli"
+
+#: includes/admin.inc:856
+msgid "Click on an item to edit that item's details."
+msgstr "Kliknij na pozycję aby edytować jej szczegóły."
+
+#: includes/admin.inc:859
+msgid "This view has a broken default display and cannot be used."
+msgstr "Ten widok nie może być użyty, gdyż został uszkodzony podgląd domyślny."
+
+#: includes/admin.inc:895
+msgid "break this lock"
+msgstr "złam tą blokadę"
+
+#: includes/admin.inc:901
+#: theme/theme.inc:97
+msgid "Export this view"
+msgstr "Eksportuj ten widok"
+
+#: includes/admin.inc:906
+#: theme/theme.inc:102
+msgid "Create a copy of this view"
+msgstr "Stwórz kopię tych widoków"
+
+#: includes/admin.inc:917
+msgid "View \"!display\""
+msgstr "Podgląd \"!display\""
+
+#: includes/admin.inc:918
+msgid "Go to the real page for this display"
+msgstr "Idź do właściwej strony podglądu."
+
+#: includes/admin.inc:984
+#: includes/plugins.inc:812;943;955;1999;2293;2467;2659;3299
+msgid "None"
+msgstr "Nic"
+
+#: includes/admin.inc:1058
+msgid "Invalid"
+msgstr "Nieprawidłowy"
+
+#: includes/admin.inc:1058
+msgid "Error: Display @display refers to a plugin named '@plugin', but that plugin doesn't exist!"
+msgstr "Błąd: Podgląd @display odwołuje się do nieistniejącego pluginu '@plugin'"
+
+#: includes/admin.inc:1079;1079
+msgid "Rearrange"
+msgstr "Popraw"
+
+#: includes/admin.inc:1112;2144;2323;2391;2476
+msgid "Error: handler for @table > @field doesn't exist!"
+msgstr "Błąd: uchwyt dla @table > @field nie istnieje!"
+
+#: includes/admin.inc:1131;1131;1140
+msgid "Settings"
+msgstr "Ustawienia"
+
+#: includes/admin.inc:1136
+#: includes/plugins.inc:823;841
+msgid "Missing style plugin"
+msgstr "Utracony styl pluginu"
+
+#: includes/admin.inc:1140
+#: includes/plugins.inc:836;851
+msgid "Change settings for this style"
+msgstr "Zmień ustawienia dla tego stylu"
+
+#: includes/admin.inc:1143
+msgid " Style: !style"
+msgstr " Styl: !style"
+
+#: includes/admin.inc:1174
+msgid "Invalid display id while regenerating tabs"
+msgstr "Niepoprawne ID podglądu przy odtwarzaniu zakładek"
+
+#: includes/admin.inc:1207
+msgid "Update"
+msgstr "Uaktualnij"
+
+#: includes/admin.inc:1225
+msgid "Ok"
+msgstr "Ok"
+
+#: includes/admin.inc:1494
+msgid "Unable to initialize default display"
+msgstr "Nie można zainicjować domyślnego podglądu"
+
+#: includes/admin.inc:1526
+msgid "Add display"
+msgstr "Dodaj podgląd"
+
+#: includes/admin.inc:1566
+msgid "Remove display"
+msgstr "Usuń podgląd"
+
+#: includes/admin.inc:1577
+msgid "Restore display"
+msgstr "Odtwórz podgląd"
+
+#: includes/admin.inc:1649
+msgid "Analyze"
+msgstr "Analizuj"
+
+#: includes/admin.inc:1669
+msgid "This view has only a default display and therefore will not be placed anywhere on your site; perhaps you want to add a page or a block display."
+msgstr "Ten widok posiada tylko podgląd domyślny dlatego nie będzie umieszczony nigdzie na Twojej stronie; prawdopodobnie chcesz dodać stronę albo blok podglądu."
+
+#: includes/admin.inc:1681
+msgid "View analysis"
+msgstr "Analiza widoku"
+
+#: includes/admin.inc:1690
+msgid "View analysis can find nothing to report."
+msgstr "Analiza widoku przebiegła poprawnie."
+
+#: includes/admin.inc:1764
+msgid "View details"
+msgstr "Szczegóły widoku"
+
+#: includes/admin.inc:1805;1854;1904;2045;2137;2316;2384;2469
+msgid "Invalid display id @display"
+msgstr "Niewłąsciwe ID podglądu @display"
+
+#: includes/admin.inc:1858
+msgid "Configure @type"
+msgstr "Konfiguruj @type"
+
+#: includes/admin.inc:1908
+msgid "Rearrange @type"
+msgstr "Popraw @type"
+
+#: includes/admin.inc:1951
+msgid "Broken field @id"
+msgstr "Uszkodzone pole @id"
+
+#: includes/admin.inc:1986;1995;2232;2341
+msgid "Remove"
+msgstr "Usuń"
+
+#: includes/admin.inc:1986;1986
+msgid "Remove this item"
+msgstr "Usuń tą pozycję"
+
+#: includes/admin.inc:1992
+msgid "No fields available."
+msgstr "Brak dostępnych pól"
+
+#: includes/admin.inc:1995
+#: includes/plugins.inc:2100
+#: modules/book.views.inc:57
+#: modules/taxonomy.views.inc:126
+#: modules/upload.views.inc:82
+msgid "Weight"
+msgstr "Waga"
+
+#: includes/admin.inc:2051
+msgid "Add @type"
+msgstr "Dodaj @type"
+
+#: includes/admin.inc:2062
+msgid "Groups"
+msgstr "Grupy"
+
+#: includes/admin.inc:2081
+msgid "!group: !field"
+msgstr "!group: !field"
+
+#: includes/admin.inc:2090
+msgid "There are no @types available to add."
+msgstr "Brak dostępnych @types do dodania."
+
+#: includes/admin.inc:2155
+#: includes/plugins.inc:1556
+msgid "Status: using default values."
+msgstr "Status: użyto domyślnych wartości."
+
+#: includes/admin.inc:2162
+#: includes/plugins.inc:1568
+msgid "Status: using overridden values."
+msgstr "Status: nadpisano wartości."
+
+#: includes/admin.inc:2200
+msgid "Do not use a relationship"
+msgstr "Nie używaj zależności"
+
+#: includes/admin.inc:2209
+#: includes/view.inc:1694;1695
+msgid "Relationship"
+msgstr "Zależność"
+
+#: includes/admin.inc:2222
+msgid "Configure @type \"@item\""
+msgstr "Konfiguruj @type\"@item\""
+
+#: includes/admin.inc:2331
+msgid "Configure extra settings for @type \"@item\""
+msgstr "Konfiuruj dodatkowe ustawienia dla @type \"@item\""
+
+#: includes/admin.inc:2396
+msgid "Change summary style for @type \"@item\""
+msgstr "Zmien zbiorczy styl dla @type \"@item\""
+
+#: includes/admin.inc:2419;2433
+msgid "Internal error: broken plugin."
+msgstr "Wewnętrzny błąd: uszkodzony plugin."
+
+#: includes/admin.inc:2483
+msgid "Configure summary style for @type \"@item\""
+msgstr "Konfiguruj zmiorczy styl dla @type \"@item\""
+
+#: includes/admin.inc:2575
+msgid "Clear Views' cache"
+msgstr "Wyczyść pamięć podręczną widoków."
+
+#: includes/admin.inc:2581
+msgid "Add Views signature to all SQL queries"
+msgstr "Dodaj sygnature widoku dla wszystkich zapytań SQL"
+
+#: includes/admin.inc:2582
+msgid "All Views-generated queries will include a special 'VIEWS' = 'VIEWS' string in the WHERE clause. This makes identifying Views queries in database server logs simpler, but should only be used when troubleshooting."
+msgstr "Wszystkie wygenerowane zapytania będą zawierały 'VIEWS' = 'VIEWS' w sekcji WHERE. Pomoże to w identyfikacji zapytań wysyłanych przez widoki w logach ale powinno być używane tylko w momencie gdy szukamy błędów."
+
+#: includes/admin.inc:2588
+msgid "Disable views data caching"
+msgstr "Wyłącz pamięć podręczną dla danych zawartych w widokach"
+
+#: includes/admin.inc:2589
+msgid "Views caches data about tables, modules and views available, to increase performance. By checking this box, Views will skip this cache and always rebuild this data when needed. This can have a serious performance impact on your site."
+msgstr "Pamięć podręczna widoków przechowuje w pamięci podręcznej dane o tabelach, modułach i dostępności widoków aby zwiększyć wydajność. Zaznaczając to pole, widoki będą pomijać przechowywanie danych i będą zawsze odbudowywać dane kiedy zajdzie taka potrzeba. To może spowodować poważny spadek wydajności twojej witryny."
+
+#: includes/admin.inc:2595
+msgid "Ignore missing advanced help module"
+msgstr "Ignoruj brak dodatkowy modułów pomocy"
+
+#: includes/admin.inc:2596
+msgid "Views uses the advanced help module to provide help text; if this module is not present Views will complain, unless this setting is checked."
+msgstr "Widoki używają dodatkowych modułów pomocy; jeśli brak tego modułu Widoki będą to zgłaszały do momentu zaznaczenia."
+
+#: includes/admin.inc:2602
+msgid "Show query above live preview"
+msgstr "Wyświetl zapytanie powyżej podglądu na żywo"
+
+#: includes/admin.inc:2603
+msgid "The live preview feature will show you the output of the view you're creating, as well as the view. Check here to show the query and other information above the view; leave this unchecked to show that information below the view."
+msgstr "Podgląd na żywo pokazuje jak będzie wyglądał widok nad którym właśnie pracujesz. Zaznacz aby wyświetlać zapytania i inne informację powyżej widoku; gdy niezaznaczone, informację będą pojawiać się poniżej widoku."
+
+#: includes/admin.inc:2609
+msgid "Do not show hover links over views"
+msgstr "Nie wyświetlaj \"fruwających\" odnośników do widoków"
+
+#: includes/admin.inc:2610
+msgid "To make it easier to administrate your views, Views provides 'hover' links to take you to the edit and export screen of a view whenever the view is used. This can be distracting on some themes, though; if it is problematic, you can turn it off here."
+msgstr "Aby ułatwić administrowanie widokami, widoki dostarczają \"fruwające\" odnośniki aby dać możliwość edytowania czy eksportowania kiedy widok jest używany. Może to wprowadząć bałagan w niektórych skórkach, Jeśli tak się dzieje, można to wyłączyć własnie tutaj."
+
+#: includes/admin.inc:2616
+msgid "Enable views performance statistics via the Devel module"
+msgstr "Włącz wydajność statystyk widoków przez moduł Devel"
+
+#: includes/admin.inc:2617
+msgid "Check this to enable some Views query and performance statistics if Devel is installed."
+msgstr "Zaznacz by włączyć zapytania Widoków i statystyki wydajności gdy moduł Devel jest zainstalowany."
+
+#: includes/admin.inc:2623
+msgid "Disable javascript with Views"
+msgstr "Wyłącz JavaStript w Widokach"
+
+#: includes/admin.inc:2624
+msgid "If you are having problems with the javascript, you can disable it here; the Views UI should degrade and still be usable without javascript, it just not as good."
+msgstr "Jeśli masz problem z JavaScript, możesz wyłączyćto tutaj; Panel administracyjny Widoków powinien zachować funkcjonalność bez JavaScript, lecz nie pełną."
+
+#: includes/admin.inc:2632
+msgid "Page region to output performance statistics"
+msgstr "Obszar strony do umieszczania statystyk wydajności"
+
+#: includes/admin.inc:2645
+msgid "The cache has been cleared."
+msgstr "Pamięć podręczna została wyczyszczona."
+
+#: includes/admin.inc:2809
+msgid "Error: missing @component"
+msgstr "Error: brak @component"
+
+#: includes/ajax.inc:73
+msgid "Server reports invalid input error."
+msgstr "Serwer zwrócił błąd wejścia."
+
+#: includes/ajax.inc:74
+msgid "Error"
+msgstr "Błąd"
+
+#: includes/argument.handlers.inc:91
+msgid "All"
+msgstr "Wszystko"
+
+#: includes/argument.handlers.inc:113
+msgid "The title to use when this argument is present; it will override the title of the view and titles from previous arguments. You can use percent substitution here to replace with argument titles. Use \"%1\" for the first argument, \"%2\" for the second, etc."
+msgstr "Tytuł używany kiedy argument istnieje; Nadpisze tytuł widoku obecnego i poprzednich argumentów. Możesz użyć '%n' aby zastąpić argument w tytule. Na przykład \"%1\" dla pierwszego argumentu itd."
+
+#: includes/argument.handlers.inc:126
+msgid "Action to take if argument is not present"
+msgstr "Działanie podjęte gdy brak argumentu"
+
+#: includes/argument.handlers.inc:138
+msgid "Wildcard"
+msgstr "Wildcard"
+
+#: includes/argument.handlers.inc:141
+msgid "If this value is received as an argument, the argument will be ignored; i.e, \"all values\""
+msgstr "Jeśli wartośc została otrzymana jako argument, argument zostanie zignorowany; Na przykład \"all values\" (wszystkie wartości)"
+
+#: includes/argument.handlers.inc:147
+msgid "Wildcard title"
+msgstr "Tytuł dla Wildcard"
+
+#: includes/argument.handlers.inc:150
+msgid "The title to use for the wildcard in substitutions elsewhere."
+msgstr "Tytuł używny dla zastąpienia gdzie indziej."
+
+#: includes/argument.handlers.inc:173
+msgid "Validator"
+msgstr "Validator"
+
+#: includes/argument.handlers.inc:177
+msgid ""
+msgstr ""
+
+#: includes/argument.handlers.inc:213
+msgid "Action to take if argument does not validate"
+msgstr "Działanie podjęte gdy sprawdzanie nie powiodło się"
+
+#: includes/argument.handlers.inc:228
+msgid "Display all values"
+msgstr "Wyświetl wszystkie wartości"
+
+#: includes/argument.handlers.inc:233
+msgid "Hide view / Page not found (404)"
+msgstr "Ukryj widok / Nie odnaleziono strony (404)"
+
+#: includes/argument.handlers.inc:237
+msgid "Display empty text"
+msgstr "Wyświetl pusty tekst"
+
+#: includes/argument.handlers.inc:242
+msgid "Summary, sorted ascending"
+msgstr "Podsumowanie, posortowane rosnąco"
+
+#: includes/argument.handlers.inc:249
+msgid "Summary, sorted descending"
+msgstr "Podsumowanie, posortowane malejąco"
+
+#: includes/argument.handlers.inc:256
+msgid "Provide default argument"
+msgstr "Dostarcz domyślny argument"
+
+#: includes/argument.handlers.inc:287
+msgid "Default argument type"
+msgstr "Domyślny typ argumentu"
+
+#: includes/argument.handlers.inc:702
+msgid "Current date"
+msgstr "Dzisiejsza data"
+
+#: includes/argument.handlers.inc:757
+msgid "Glossary mode"
+msgstr "Tryb Słownika"
+
+#: includes/argument.handlers.inc:758
+msgid "Glossary mode applies a limit to the number of characters used in the argument, which allows the summary view to act as a glossary."
+msgstr "Ten tryb ustawia limit znaków użytych w argumencie w podsumowaniach Słownika."
+
+#: includes/argument.handlers.inc:764
+msgid "Character limit"
+msgstr "Limit znaków"
+
+#: includes/argument.handlers.inc:765
+msgid "How many characters of the argument to filter against. If set to 1, all fields starting with the letter in the argument would be matched."
+msgstr "Ile znaków w argumencie ma być filtrowanych. Jeśli ustawimy to na 1, wszystkie pola zaczynające się na 1 literę dostarczona w argumencie będą pasować"
+
+#: includes/argument.handlers.inc:773
+msgid "Case"
+msgstr "w przypadku"
+
+#: includes/argument.handlers.inc:774
+msgid "When printing the argument result, how to transform the case."
+msgstr "Jak przekształcić w przypadku kiedy wyświetlamy wynik dla argumentu."
+
+#: includes/argument.handlers.inc:776;790
+msgid "No transform"
+msgstr "Nie przekształcaj"
+
+#: includes/argument.handlers.inc:777;791
+msgid "Upper case"
+msgstr "Dużymi literami"
+
+#: includes/argument.handlers.inc:778;792
+msgid "Lower case"
+msgstr "Małymi literami"
+
+#: includes/argument.handlers.inc:779;793
+msgid "Capitalize first letter"
+msgstr "Pierwsza litera duża"
+
+#: includes/argument.handlers.inc:780;794
+msgid "Capitalize each word"
+msgstr "Każde słowo zaczynaj wielką literą"
+
+#: includes/argument.handlers.inc:787
+msgid "Case in path"
+msgstr "Przypadki w ścieżkach"
+
+#: includes/argument.handlers.inc:788
+msgid "When printing url paths, how to transform the of the argument. Do not use this unless with Postgres as it uses case sensitive comparisons."
+msgstr "Jak przekształcić argument w URLu. Nie używaj dopóki Postgres jest wrażliwy na porównywanie wielkości znaków."
+
+#: includes/argument.handlers.inc:801
+msgid "Transform spaces to dashes in URL"
+msgstr "Zmieniaj znaki spacji na _ w URL"
+
+#: includes/argument.handlers.inc:808;1046
+msgid "Allow multiple arguments to work together."
+msgstr "Pozwól na pracę wielu argumentów razem."
+
+#: includes/argument.handlers.inc:809;1047
+msgid "If selected, multiple instances of this argument can work together, as though multiple terms were supplied to the same argument. This setting is not compatible with the \"Reduce duplicates\" setting."
+msgstr "Jeśli pole jest zaznaczone wiele instancji argumentu może pracować razem, jak gdyby wiele wyrażeń było dostarczonych dla jednego argumentu. To ustawienie nie jest kompatybilne z \"Reduce duplicates\"(redukuj duplikaty)"
+
+#: includes/argument.handlers.inc:815;1053
+msgid "Do not display items with no value in summary"
+msgstr "Nie wyświetlaj pozycji bez wartości w podsumowaniu"
+
+#: includes/argument.handlers.inc:936;1038
+msgid "Allow multiple terms per argument."
+msgstr "Pozwól na wiele wyrażeń dla argumentu."
+
+#: includes/argument.handlers.inc:937
+msgid "If selected, users can enter multiple arguments in the form of 1+2+3 or 1,2,3."
+msgstr "Jeśli pole jest zaznaczone, użytkownik może wprowadzić wiele argumentów w postaci 1+2+3 lub 1,2,3."
+
+#: includes/argument.handlers.inc:943
+msgid "Exclude the argument"
+msgstr "Wyklucz argument"
+
+#: includes/argument.handlers.inc:944
+msgid "If selected, the numbers entered in the argument will be excluded rather than limiting the view."
+msgstr "Jeśli pole jest zaznaczone, wartości argumentów zostaną wykluczone."
+
+#: includes/argument.handlers.inc:951;963;1088;1102
+#: modules/taxonomy.views.inc:120;204;287
+msgid "Uncategorized"
+msgstr "Nieskategoryzowany"
+
+#: includes/argument.handlers.inc:967;1106
+msgid "Invalid input"
+msgstr "Nieprawidłowe wejscie"
+
+#: includes/argument.handlers.inc:1039
+msgid "If selected, users can enter multiple arguments in the form of 1+2+3 (for OR) or 1,2,3 (for AND)."
+msgstr "Jeśli pole jest zaznaczone, użytkownik może wprowadzić wiele argumentów 1+2+3 (dla OR) albo 1,2,3 (dla AND)."
+
+#: includes/convert.inc:14
+msgid "There are no Views 1 views stored in the database to convert."
+msgstr "Brak widoków typu Views 1 do konwersji w bazie."
+
+#: includes/convert.inc:22
+msgid "Operations"
+msgstr "Operacje"
+
+#: includes/convert.inc:33
+msgid "Converted"
+msgstr "Skonwertowano"
+
+#: includes/convert.inc:68
+msgid "The table below lists Views version 1 views that are stored in the database. You can either convert them to work in Views version 2, or delete them. The views are convertible only if there is no Views 2 view with the same name."
+msgstr "Tabela poniżej jest listą widoków Views 1 przechowywanych w bazie. Możesz je skonwertować do Views 2 lub je skasować. Widoki te są konwertowalne tylko jeśli nie istnieją widoki w wersji 2 o takiej samej nazwie."
+
+#: includes/convert.inc:79
+msgid "Unable to find view."
+msgstr "Nie można znaleźć widoku."
+
+#: includes/convert.inc:89
+msgid "Unable to convert view."
+msgstr "Nie można skonwertować widoku."
+
+#: includes/convert.inc:108
+msgid "This action cannot be undone."
+msgstr "Tej akcji nie można cofnąć."
+
+#: includes/convert.inc:118
+msgid "The view has been deleted"
+msgstr "Widok został skasowany"
+
+#: includes/field.handlers.inc:130
+#: includes/filter.handlers.inc:304
+#: includes/relationship.handlers.inc:60
+msgid "Label"
+msgstr "Etykieta"
+
+#: includes/field.handlers.inc:132
+msgid "The label for this field that will be displayed to end users if the style requires it."
+msgstr " Jeśli styl tego wymaga, etykieta dla tego pola zostanie wyświetlona użytkownikowi końcowemu."
+
+#: includes/field.handlers.inc:136
+msgid "Exclude from display"
+msgstr "Wyklucz z podglądu"
+
+#: includes/field.handlers.inc:138
+msgid "Check this box to not display this field, but still load it in the view. Use this option to not show a grouping field in each record, or when doing advanced theming."
+msgstr "Zaznacz jeśli nie chcesz aby podgląd był wyświetlany, ale wciąż ładowany do widoku. Użyj tej opcji aby nie pokazywać grup pól w każdym rekordzie, lub kiedy tworzysz zaawansowane motywy."
+
+#: includes/field.handlers.inc:223
+msgid "Date format"
+msgstr "Format daty"
+
+#: includes/field.handlers.inc:228
+msgid "Custom"
+msgstr "Własny"
+
+#: includes/field.handlers.inc:229
+msgid "Time ago"
+msgstr "Time ago"
+
+#: includes/field.handlers.inc:235
+msgid "Custom date format"
+msgstr "Własny format daty"
+
+#: includes/field.handlers.inc:236
+msgid "If \"Custom\", see the PHP docs for date formats. If \"Time ago\" this is the the number of different units to display, which defaults to two."
+msgstr "Gdy chcesz użyć własnego formatu daty przeczytaj dokumentacje PHP. Jeżeli \"Time ago\" jest liczbą w innych jednostkach, domyślnie - dwa."
+
+#: includes/field.handlers.inc:252
+msgid "%time ago"
+msgstr "%time ago"
+
+#: includes/field.handlers.inc:280
+msgid "Output format"
+msgstr "Format wyjściowy"
+
+#: includes/field.handlers.inc:282
+msgid "Yes/No"
+msgstr "Tak/Nie"
+
+#: includes/field.handlers.inc:283
+msgid "True/False"
+msgstr "Prawda/Fałsz"
+
+#: includes/field.handlers.inc:284
+msgid "On/Off"
+msgstr "Włącz/Wyłącz"
+
+#: includes/field.handlers.inc:290
+msgid "Reverse"
+msgstr "Odwrotnie"
+
+#: includes/field.handlers.inc:291
+msgid "If checked, true will be displayed as false."
+msgstr "Gdy zaznaczone, Prawda wyświetlana jest jako Fałsz."
+
+#: includes/field.handlers.inc:305
+#: includes/filter.handlers.inc:853;898
+#: includes/plugins.inc:858;867;884;892;1035;2446
+msgid "Yes"
+msgstr "Tak"
+
+#: includes/field.handlers.inc:305
+#: includes/filter.handlers.inc:853;898
+#: includes/plugins.inc:858;867;884;892;1035;1043;2446
+msgid "No"
+msgstr "Nie"
+
+#: includes/field.handlers.inc:307
+#: includes/filter.handlers.inc:822;863
+msgid "True"
+msgstr "Prawda"
+
+#: includes/field.handlers.inc:307
+#: includes/filter.handlers.inc:863
+msgid "False"
+msgstr "Fałsz"
+
+#: includes/field.handlers.inc:309
+msgid "On"
+msgstr "Włącz"
+
+#: includes/field.handlers.inc:309
+msgid "Off"
+msgstr "Wyłącz"
+
+#: includes/field.handlers.inc:368
+#: modules/statistics.views.inc:276
+msgid "Display as link"
+msgstr "Wyświetlaj jako odnośnik"
+
+#: includes/field.handlers.inc:410
+#: modules/node.views.inc:1289
+msgid "Display type"
+msgstr "Wyświetl typ"
+
+#: includes/field.handlers.inc:412
+#: includes/plugins.inc:2971
+msgid "Unordered list"
+msgstr "Nieuporządkowana lista"
+
+#: includes/field.handlers.inc:413
+#: includes/plugins.inc:2971
+msgid "Ordered list"
+msgstr "Uporządkowana lista"
+
+#: includes/field.handlers.inc:414
+msgid "Simple separator"
+msgstr "Prosty separator"
+
+#: includes/field.handlers.inc:421
+#: includes/plugins.inc:3265;3376;3557
+msgid "Separator"
+msgstr "Separator"
+
+#: includes/field.handlers.inc:429
+msgid "Empty list text"
+msgstr "Puste pole tekstowe"
+
+#: includes/field.handlers.inc:431
+msgid "If the list is empty, you may enter text here that will be displayed."
+msgstr "Jeśli lista jest pusta, możesz wprowadzić tekst który będzie wyświetlony."
+
+#: includes/field.handlers.inc:480
+msgid "Round"
+msgstr "Zaokrąglaj"
+
+#: includes/field.handlers.inc:481
+msgid "If checked, the number will be rounded."
+msgstr "Jesli pole jest zaznaczone, liczby będą zaokrąglane."
+
+#: includes/field.handlers.inc:486
+msgid "Precision"
+msgstr "Dokładność"
+
+#: includes/field.handlers.inc:488
+msgid "Specify how many digits to print after the decimal point."
+msgstr "Określa dokładnośc z jaka będą wyświetlane liczby po przecinku."
+
+#: includes/field.handlers.inc:495
+msgid "Decimal point"
+msgstr "Separator dziesiętny"
+
+#: includes/field.handlers.inc:497
+msgid "What single character to use as a decimal point."
+msgstr "Znak oddzielający liczbę od jej częsci dziesiętnej."
+
+#: includes/field.handlers.inc:503
+msgid "Thousands separator"
+msgstr "Separator setek"
+
+#: includes/field.handlers.inc:505
+msgid "What single character to use as the thousands separator."
+msgstr "Znak oddzielający setki w liczbie. np. 1000 ze spacją jako separatorem będzie wyglądać tak: 1 000"
+
+#: includes/field.handlers.inc:510
+msgid "Prefix"
+msgstr "Prefix"
+
+#: includes/field.handlers.inc:512
+msgid "Text to put before the number, such as currency symbol."
+msgstr "Tekst poprzedzający liczbę, taki jak na przykład $."
+
+#: includes/field.handlers.inc:516
+msgid "Suffix"
+msgstr "Suffix"
+
+#: includes/field.handlers.inc:518
+msgid "Text to put after the number, such as currency symbol."
+msgstr "Tekst dołączany na końcu liczby np. zł"
+
+#: includes/filter.handlers.inc:119
+msgid "Operator"
+msgstr "Operator"
+
+#: includes/filter.handlers.inc:183
+msgid "Expose"
+msgstr "Ujawnij"
+
+#: includes/filter.handlers.inc:188
+msgid "This item is currently not exposed. If you expose it, users will be able to change the filter as they view it."
+msgstr "Ta pozycja nie jest obecnie pokazywana. Gdy wybierzesz Ujawnij użytkownik będzie w stanie zmieniać filtr."
+
+#: includes/filter.handlers.inc:195
+msgid "Hide"
+msgstr "Ukryj"
+
+#: includes/filter.handlers.inc:200
+msgid "This item is currently exposed. If you hide it, users will not able to change the filter as they view it."
+msgstr "Ta pozycja jest obecnie pokazywana. Gdy wybierzesz Ukryj użytkownik nie będzie w stanie zmienić filtra."
+
+#: includes/filter.handlers.inc:271
+msgid "Unlock operator"
+msgstr "Odblokuj operator"
+
+#: includes/filter.handlers.inc:272
+msgid "When checked, the operator will be exposed to the user"
+msgstr "Gdy zaznaczone, operator będzie widoczny dla użytkownika"
+
+#: includes/filter.handlers.inc:278
+msgid "Operator identifier"
+msgstr "Identyfikator operatora"
+
+#: includes/filter.handlers.inc:280
+msgid "This will appear in the URL after the ? to identify this operator."
+msgstr "Włącza ukazywanie się identyfikatora operatora po ? w URLu."
+
+#: includes/filter.handlers.inc:297
+msgid "Filter identifier"
+msgstr "Identyfikator filtra"
+
+#: includes/filter.handlers.inc:299
+msgid "This will appear in the URL after the ? to identify this filter. Cannot be blank."
+msgstr "Włącza ukazywanie się identyfikatora filtra po ? w URLu. Nie może być puste."
+
+#: includes/filter.handlers.inc:315
+msgid "Optional"
+msgstr "Opcjonalnie"
+
+#: includes/filter.handlers.inc:316
+msgid "This exposed filter is optional and will have added options to allow it not to be set."
+msgstr "Ujawnienie filtra jest opcjonalne."
+
+#: includes/filter.handlers.inc:322
+msgid "Force single"
+msgstr "Wymuś pojedyncze"
+
+#: includes/filter.handlers.inc:323
+msgid "Force this exposed filter to accept only one option."
+msgstr "Pozwala filtrowi na akceptowanie tylko jednej opcji."
+
+#: includes/filter.handlers.inc:329
+msgid "Remember"
+msgstr "Pamiętaj"
+
+#: includes/filter.handlers.inc:330
+msgid "Remember the last setting the user gave this filter."
+msgstr "Pamięta ostatnie ustawienienie filtra użytkownika."
+
+#: includes/filter.handlers.inc:341
+msgid ""
+"The identifier is required if the filter is\n"
+" exposed."
+msgstr ""
+"Identyfikator jest wymagany jesli filtr jest\n"
+" ujawniony."
+
+#: includes/filter.handlers.inc:347
+msgid "This identifier is not allowed."
+msgstr "Ten identyfikator nie jest dozwolony"
+
+#: includes/filter.handlers.inc:448
+msgid ""
+msgstr ""
+
+#: includes/filter.handlers.inc:540;582;1089
+msgid "Is equal to"
+msgstr "Jest równy"
+
+#: includes/filter.handlers.inc:541;588;1095
+msgid "Is not equal to"
+msgstr "Nie jest równy"
+
+#: includes/filter.handlers.inc:551;714;1197
+msgid "Value"
+msgstr "Wartość"
+
+#: includes/filter.handlers.inc:583;589;1091
+msgid "="
+msgstr "="
+
+#: includes/filter.handlers.inc:594
+msgid "Contains"
+msgstr "Zawiera"
+
+#: includes/filter.handlers.inc:595
+msgid "contains"
+msgstr "zawiera"
+
+#: includes/filter.handlers.inc:600
+msgid "Contains any word"
+msgstr "Zawiera tylko słowo"
+
+#: includes/filter.handlers.inc:601
+msgid "has word"
+msgstr "ma słowo"
+
+#: includes/filter.handlers.inc:606
+msgid "Contains all words"
+msgstr "Zawiera wszystkie słowa"
+
+#: includes/filter.handlers.inc:607
+msgid "has all"
+msgstr "ma wszystkie"
+
+#: includes/filter.handlers.inc:612
+msgid "Starts with"
+msgstr "Rozpoczyna się od"
+
+#: includes/filter.handlers.inc:613
+msgid "begins"
+msgstr "rozpoczyna"
+
+#: includes/filter.handlers.inc:618
+msgid "Ends with"
+msgstr "Kończy sie na"
+
+#: includes/filter.handlers.inc:619
+msgid "ends"
+msgstr "kończy"
+
+#: includes/filter.handlers.inc:624
+msgid "Does not contain"
+msgstr "Nie zawiera"
+
+#: includes/filter.handlers.inc:625
+msgid "!has"
+msgstr "!has"
+
+#: includes/filter.handlers.inc:634;1130
+msgid "Is empty (NULL)"
+msgstr "Jest pusty (NULL)"
+
+#: includes/filter.handlers.inc:636;1132
+msgid "empty"
+msgstr "pusty"
+
+#: includes/filter.handlers.inc:640;1136
+msgid "Is not empty (NULL)"
+msgstr "Nie jest pusty (NULL)"
+
+#: includes/filter.handlers.inc:642;1138
+msgid "not empty"
+msgstr "nie pusty"
+
+#: includes/filter.handlers.inc:665
+msgid "exposed>"
+msgstr "ujawniony>"
+
+#: includes/filter.handlers.inc:672
+msgid "Case sensitive"
+msgstr "Wrażliwy na wielkość liter"
+
+#: includes/filter.handlers.inc:674
+msgid "Case sensitive filters may be faster; MySQL might ignore case sensitivity."
+msgstr "Filtry wrażliwe na wielkość liter mogą być szybsze; MySQL moze ignorować rozróżnianie wielkości liter."
+
+#: includes/filter.handlers.inc:860;1009
+msgid "exposed"
+msgstr "ujawniony"
+
+#: includes/filter.handlers.inc:888
+msgid "Options"
+msgstr "Opcje"
+
+#: includes/filter.handlers.inc:910
+msgid "Limit list to selected items"
+msgstr "Ogranicz listę do wybranych elementów"
+
+#: includes/filter.handlers.inc:911
+msgid "If checked, the selected items presented to the user will be the only ones selected here."
+msgstr "Jeśli zaznaczysz to pole, wybrane elementy prezentowane użytkownikowi będą tylko raz zaznaczone tutaj."
+
+#: includes/filter.handlers.inc:930;1459
+msgid "Is one of"
+msgstr "Jeden z"
+
+#: includes/filter.handlers.inc:931
+msgid "Is not one of"
+msgstr "Żaden z"
+
+#: includes/filter.handlers.inc:1022
+#: modules/system.views.inc:236
+msgid "Unknown"
+msgstr "Nieznany"
+
+#: includes/filter.handlers.inc:1077
+msgid "Is less than"
+msgstr "Mniej niż"
+
+#: includes/filter.handlers.inc:1079
+msgid "<"
+msgstr "<"
+
+#: includes/filter.handlers.inc:1083
+msgid "Is less than or equal to"
+msgstr "Mniejszy bądź równy"
+
+#: includes/filter.handlers.inc:1085
+msgid "<="
+msgstr "<="
+
+#: includes/filter.handlers.inc:1097
+msgid "!="
+msgstr "!="
+
+#: includes/filter.handlers.inc:1101
+msgid "Is greater than or equal to"
+msgstr "Większy bądź równy"
+
+#: includes/filter.handlers.inc:1103
+msgid ">="
+msgstr ">="
+
+#: includes/filter.handlers.inc:1107
+msgid "Is greater than"
+msgstr "Większy niż"
+
+#: includes/filter.handlers.inc:1109
+msgid ">"
+msgstr ">"
+
+#: includes/filter.handlers.inc:1113
+msgid "Is between"
+msgstr "W przedziale"
+
+#: includes/filter.handlers.inc:1115
+msgid "between"
+msgstr "pomiędzy"
+
+#: includes/filter.handlers.inc:1119
+msgid "Is not between"
+msgstr "Poza przedziałem"
+
+#: includes/filter.handlers.inc:1121
+msgid "not between"
+msgstr "poza"
+
+#: includes/filter.handlers.inc:1212
+msgid "Min"
+msgstr "Min"
+
+#: includes/filter.handlers.inc:1218
+msgid "And max"
+msgstr "i max"
+
+#: includes/filter.handlers.inc:1218
+msgid "And"
+msgstr "i"
+
+#: includes/filter.handlers.inc:1275
+msgid "@min and @max"
+msgstr "@min and @max"
+
+#: includes/filter.handlers.inc:1301
+msgid "Value type"
+msgstr "Typ wartości"
+
+#: includes/filter.handlers.inc:1303
+msgid "A date in any machine readable format. CCYY-MM-DD HH:MM:SS is preferred."
+msgstr "Data w formacie maszynowym (machine redable format). Preferowana CCYY-MM-DD HH:MM:SS ."
+
+#: includes/filter.handlers.inc:1304
+msgid "An offset from the current time such as \"+1 day\" or \"-2 hours and 30 minutes\""
+msgstr "Przesunięcie od obecnego czasu takie jak \"+1 dzień\" albo \"-2 godziny i 30 minut\""
+
+#: includes/filter.handlers.inc:1354;1360;1364
+msgid "Invalid date format."
+msgstr "Niewłaściwy format daty."
+
+#: includes/filter.handlers.inc:1460
+msgid "Is all of"
+msgstr "Należy do"
+
+#: includes/filter.handlers.inc:1461
+msgid "Is none of"
+msgstr "Nie należy do"
+
+#: includes/handlers.inc:136
+msgid "!group: !title"
+msgstr "!group: !title"
+
+#: includes/handlers.inc:336
+msgid "Broken/missing handler"
+msgstr "Uszkodzony/utracony uchwyt(handler)"
+
+#: includes/handlers.inc:344
+msgid "The handler for this item is broken or missing and cannot be used. If a module provided the handler and was disabled, re-enabling the module may restore it. Otherwise, you should probably delete this item."
+msgstr "Uchwyt do tego elementu jest uszkodzony lub nie istnieje i nie może zostać użyty. Jeśli moduł dostarcza uchwyt i został wyłączony ponowne włączenie modułu może pomóc. Jeśli nie pomoże prawdopodobnie trzeba skasować ten element."
+
+#: includes/handlers.inc:380
+msgid "Reduce duplicates"
+msgstr "Usuń duplikaty"
+
+#: includes/handlers.inc:381
+msgid "This filter can cause items that have more than one of the selected options to appear as duplicate results. If this filter causes duplicate results to occur, this checkbox can reduce those duplicates; however, the more terms it has to search for, the less performant the query will be, so use this with caution."
+msgstr "Zaznaczenie więcej niż jednej opcji w tym filtrze może powodować pojawienie się duplikatów w wynikach. Jeśli wystąpią duplikaty, zaznaczenie tej opcji wyeliminuje je; Czym więcej wyrażeń szukamy, tym mniej wydajne będą zapytania więc należy używać z rozwagą."
+
+#: includes/plugins.inc:19
+msgid "Default settings for this view."
+msgstr "Domyślne ustawienia dla tego widoku."
+
+#: includes/plugins.inc:33
+msgid "Display the view as a page, with a URL and menu links."
+msgstr "Wyświetl widok jako stronę, z URLem i menu."
+
+#: includes/plugins.inc:44;53
+msgid "Block"
+msgstr "Blok"
+
+#: includes/plugins.inc:45
+msgid "Display the view as a block."
+msgstr "Wyświetl widok jako blok."
+
+#: includes/plugins.inc:57
+msgid "Attachment"
+msgstr "Załącznik"
+
+#: includes/plugins.inc:58
+msgid "Attachments added to other displays to achieve multiple views in the same view."
+msgstr "Załączniki dołączone do tego podglądu tworzą wiele widoków w jednym."
+
+#: includes/plugins.inc:66
+msgid "Display the view as a feed, such as an RSS feed."
+msgstr "Wyświetl widok jako kanał, np. RSS."
+
+#: includes/plugins.inc:78;124
+msgid "Unformatted"
+msgstr "Niesformatowany"
+
+#: includes/plugins.inc:79
+msgid "Displays rows one after another."
+msgstr "Wyświetl rzędy jeden po drugim."
+
+#: includes/plugins.inc:89
+msgid "Displays rows as an HTML list."
+msgstr "Wyświetl rzędy jako liste HTML."
+
+#: includes/plugins.inc:97
+msgid "Grid"
+msgstr "Siatka"
+
+#: includes/plugins.inc:98
+msgid "Displays rows in a grid."
+msgstr "Wyświetl rzędy na siatce."
+
+#: includes/plugins.inc:106
+msgid "Table"
+msgstr "Tabela"
+
+#: includes/plugins.inc:107
+msgid "Displays rows in a table."
+msgstr "Wyświetl rzędy w tabeli."
+
+#: includes/plugins.inc:117
+msgid "Displays the default summary summary as a list."
+msgstr "Wyświetl domyślnie podumowanie jako listę."
+
+#: includes/plugins.inc:125
+msgid "Displays the summary unformatted, with option for one after another or inline."
+msgstr "Wyświetl podsumowanie nie formatując, z opcją \"jeden po drugim\" lub wyrównane."
+
+#: includes/plugins.inc:132
+msgid "RSS Feed"
+msgstr "Kanał RSS"
+
+#: includes/plugins.inc:133
+msgid "Generates an RSS feed from a view."
+msgstr "Generuje kanały RSS z widoku."
+
+#: includes/plugins.inc:143
+#: includes/view.inc:1663
+msgid "Fields"
+msgstr "Pola"
+
+#: includes/plugins.inc:144
+msgid "Displays the fields with an optional template."
+msgstr "Wyświetl pola w opcjonalnym szablonie."
+
+#: includes/plugins.inc:154
+msgid "Fixed entry"
+msgstr "Stały wpis"
+
+#: includes/plugins.inc:158;164
+msgid "PHP Code"
+msgstr "Kod PHP"
+
+#: includes/plugins.inc:168
+msgid "Numeric"
+msgstr "Numeryczny"
+
+#: includes/plugins.inc:783
+msgid "Broken field"
+msgstr "Uszkodzone pole"
+
+#: includes/plugins.inc:800
+msgid "Basic settings"
+msgstr "Ustawienia podstawowe"
+
+#: includes/plugins.inc:807
+msgid "Change the name of this display."
+msgstr "Zmień nazwę podglądu."
+
+#: includes/plugins.inc:819
+msgid "Change the title that this display will use."
+msgstr "Zmień na tytuł którego podgląd będzie używał."
+
+#: includes/plugins.inc:829
+msgid "Style"
+msgstr "Styl"
+
+#: includes/plugins.inc:831
+msgid "Change the style plugin."
+msgstr "Zmień plugin stylu."
+
+#: includes/plugins.inc:845
+msgid "Row style"
+msgstr "Styl rzędu"
+
+#: includes/plugins.inc:847
+msgid "Change the row plugin."
+msgstr "Zmień plugin rzędu."
+
+#: includes/plugins.inc:857
+msgid "Use AJAX"
+msgstr "Użyj AJAXa"
+
+#: includes/plugins.inc:859
+msgid "Change whether or not this display will use AJAX."
+msgstr "Wybierz czy podgląd ma używać AJAXa czy nie."
+
+#: includes/plugins.inc:866
+msgid "Use pager"
+msgstr "Użyj podziału na strony"
+
+#: includes/plugins.inc:867
+msgid "Mini"
+msgstr "Mini"
+
+#: includes/plugins.inc:868
+msgid "Change this display's pager setting."
+msgstr "Zmień ustawienia podziału na strony dla podglądu."
+
+#: includes/plugins.inc:875;1054
+msgid "Items per page"
+msgstr "Elementów na stronę"
+
+#: includes/plugins.inc:875;1054;3339
+msgid "Items to display"
+msgstr "Elementy do wyświetlenia"
+
+#: includes/plugins.inc:876
+msgid "Unlimited"
+msgstr "Nieograniczone"
+
+#: includes/plugins.inc:877
+msgid "Change how many items to display."
+msgstr "Zmień ile elementów wyświetlać."
+
+#: includes/plugins.inc:883
+msgid "More link"
+msgstr "Więcej odnosników"
+
+#: includes/plugins.inc:885
+msgid "Specify whether this display will provide a \"more\" link."
+msgstr "Określa, czy podgląd ma wyświetlać \"więcej...\" odnośników"
+
+#: includes/plugins.inc:891;1081
+msgid "Distinct"
+msgstr "Niepowtarzalne"
+
+#: includes/plugins.inc:893;1078
+msgid "Display only distinct items, without duplicates."
+msgstr "Wyświetla liste elementów bez duplikatów."
+
+#: includes/plugins.inc:904;1104
+msgid "Unrestricted"
+msgstr "Nieograniczone"
+
+#: includes/plugins.inc:912
+msgid "Multiple roles"
+msgstr "Wiele ról"
+
+#: includes/plugins.inc:924
+msgid "Access"
+msgstr "Dostęp"
+
+#: includes/plugins.inc:926
+msgid "Specify access control settings for this display."
+msgstr "Określa, sposób dostępu do ustawień dla tego podglądu."
+
+#: includes/plugins.inc:946
+msgid "Link display"
+msgstr "Powiąż z podglądem"
+
+#: includes/plugins.inc:948
+msgid "Specify which display this display will link to."
+msgstr "Określa, który podgląd odnosi się do tego podglądu."
+
+#: includes/plugins.inc:953;1143
+msgid "Header"
+msgstr "Nagłówek"
+
+#: includes/plugins.inc:953;1159
+msgid "Footer"
+msgstr "Stopka"
+
+#: includes/plugins.inc:953;1175
+msgid "Empty text"
+msgstr "Pusty tekst"
+
+#: includes/plugins.inc:969
+msgid "Unknown/missing filter"
+msgstr "Nieznany/Utracony filtr"
+
+#: includes/plugins.inc:977
+msgid "Change this display's !name."
+msgstr "Zmień nazwe podglądu !name."
+
+#: includes/plugins.inc:983
+msgid "Theme"
+msgstr "Skórka"
+
+#: includes/plugins.inc:984
+msgid "Information"
+msgstr "Informacja"
+
+#: includes/plugins.inc:985
+msgid "Get information on how to theme this display"
+msgstr "Pobiera informację jak skórka ma wyświetlać ten podgląd"
+
+#: includes/plugins.inc:1011
+msgid "The name of this display"
+msgstr "Nazwa podglądu"
+
+#: includes/plugins.inc:1014
+msgid "This title will appear only in the administrative interface for the View."
+msgstr "Ten tytuł ukaże się tylko w panelu administracyjnym Widoków."
+
+#: includes/plugins.inc:1019
+msgid "The title of this view"
+msgstr "Tytuł tego widoku"
+
+#: includes/plugins.inc:1022
+msgid "This title will be displayed with the view, wherever titles are normally displayed; i.e, as the page title, block title, etc."
+msgstr "Ten tytuł będzie wyświetlany z widokiem wszędzie tam, gdzie tytuły sa normalnie wyświetlane; Na przykład Tytuł strony czy Tytuł bloku."
+
+#: includes/plugins.inc:1027
+msgid "Use AJAX when available to load this view"
+msgstr "Użyj AJAXa do ładowania tego widoku jeśli dostępny"
+
+#: includes/plugins.inc:1031
+msgid "If set, this view will use an AJAX mechanism for paging, table sorting and exposed filters. This means the entire page will not refresh. It is not recommended that you use this if this view is the main content of the page as it will prevent deep linking to specific pages, but it is very useful for side content."
+msgstr "Jeśli zaznaczysz to pole, widok będzie używał AJAXa do dzielenia widoku na strony, sortowania tabel i pokazywania filtrów. Oznacza to, że strona nie będzie kompletnie odświeżana. Nie poleca się używania dla głównej treści strony, może zapobiegać głębokiemu linkowaniu specyficznych stron, ale jest bardzo użyteczne dla zawartości strony."
+
+#: includes/plugins.inc:1040
+msgid "Use a pager for this view"
+msgstr "Użyj podziału na strony dla tego widoku"
+
+#: includes/plugins.inc:1043
+msgid "Full pager"
+msgstr "Wszystkie opcje"
+
+#: includes/plugins.inc:1043
+msgid "Mini pager"
+msgstr "Podstawowe opcje"
+
+#: includes/plugins.inc:1048
+msgid "Pager element"
+msgstr "Pager element"
+
+#: includes/plugins.inc:1049
+msgid "Unless you're experiencing problems with pagers related to this view, you should leave this at 0. If using multiple pagers on one page you may need to set this number to a higher value so as not to conflict within the ?page= array. Large values will add a lot of commas to your URLs, so avoid if possible."
+msgstr "Dopóki podział na strony działa, powinieneś ustawić wartośc na 0. Jeśli używasz wielu podziałów stron na jednej stronie, powinienes ustawić wartość na większą nie kolidującą z ?page= array. Duża wartośc doda wiele przecinków w Twoim URLu, więc unikaj takiego rozwiązania jeśli to możliwe."
+
+#: includes/plugins.inc:1058
+msgid "The number of items to display per page. Enter 0 for no limit."
+msgstr "Liczba elementów wyświetlanych na stronie. 0 - bez limitu."
+
+#: includes/plugins.inc:1063
+msgid "Offset"
+msgstr "Przesunięcie"
+
+#: includes/plugins.inc:1064
+msgid "The number of items to skip. For example, if this field is 3, the first 3 items will be skipped and not displayed. Offset can not be used if items to display is 0; instead use a very large number there."
+msgstr "Liczba elementów do pominięcia. Dla przykładu jeśli pole jest ustawione na 3, to 3 pierwsze elementy będa pominięte i nie będą wyświetlone. Przesunięcie nie może byc użyte jeżeli elementów nie ma; zamiast używania wielkich liczb tutaj. "
+
+#: includes/plugins.inc:1069
+msgid "Add a more link to the bottom of the display."
+msgstr "Dodaj więcej odnośników w dolnej częsci podglądu."
+
+#: includes/plugins.inc:1072
+msgid "Create more link"
+msgstr "Utwórz więcej odnosników"
+
+#: includes/plugins.inc:1073
+msgid "This will add a more link to the bottom of this view, which will link to the page view. If you have more than one page view, the link will point to the display specified in 'Link display' above."
+msgstr "Dodaje więcej odnosników w dolnej częsci widoku, które odnoszą się do strony widoku. Jeśli masz więcej niż jedną stronę widoków, odnośnik będzie się odnosił do podglądu określonego w 'Powiąż z podglądem' powyżej."
+
+#: includes/plugins.inc:1082
+msgid "This will make the view display only distinct items. If there are multiple identical items, each will be displayed only once. You can use this to try and remove duplicates from a view, though it does not always work. Note that this can slow queries down, so use it with caution."
+msgstr "Tworzy widok podglądu elementów niepowtarzających się. Jeśli masz wiele elementów identycznych, każdy zostanie wyświetlony tylko raz. Możesz tego użyć do usuwania powtarzających się widoków jednakże nie zawsze sie udaje. Uwaga operacja może spowolnić wykonywanie się zapytań, proszę używać ostrożnie."
+
+#: includes/plugins.inc:1087
+msgid "Access restrictions"
+msgstr "Ograniczenie dostępu"
+
+#: includes/plugins.inc:1104
+msgid "By role"
+msgstr "Przez rolę"
+
+#: includes/plugins.inc:1104
+msgid "By permission"
+msgstr "Przez uprawnienia"
+
+#: includes/plugins.inc:1113
+msgid "If by role"
+msgstr "Jeśli przez role"
+
+#: includes/plugins.inc:1116
+msgid "Only the checked roles will be able to access this display. Note that users with \"access all views\" can see any view, regardless of role."
+msgstr "Tylko zaznaczone rolę będą miały dostęp do podglądu. Uwaga, użytkownicy z \"dostępem do wszystkich widoków\" będą mogli zobaczyć dowolny widok bez względu na rolę."
+
+#: includes/plugins.inc:1133
+msgid "If by permission"
+msgstr "Jeśli przez uprzenienia"
+
+#: includes/plugins.inc:1135
+msgid "Only users with the selected permission flag will be able to access this display. Note that users with \"access all views\" can see any view, regardless of other permissions."
+msgstr "Dostęp do podglądu będą mieć tylko użytkownicy z zaznaczonym dostępem. Uwaga, użytkownicy z \"Dostęp do wszystkich widoków\" będą widzieć wszystkie widoki bez względu na inne ustawienia dostępu. "
+
+#: includes/plugins.inc:1146;1162
+msgid "Display even if view has no result"
+msgstr "Wyświetl nawet gdy widok nie zawiera danych"
+
+#: includes/plugins.inc:1153
+msgid "Text to display at the top of the view. May contain an explanation or links or whatever you like. Optional."
+msgstr "Tekst wyświetlany na górze widoku. Może zawierać opis albo odnośniki, co tylko chcesz. Ustawienie opcjonalne."
+
+#: includes/plugins.inc:1169
+msgid "Text to display beneath the view. May contain an explanation or links or whatever you like. Optional."
+msgstr "Tekst wyświetlany poniżej widoku. Może zawierać opis albo odnośniki, co tylko chcesz. Ustawienie opcjonalne."
+
+#: includes/plugins.inc:1180
+msgid "Text to display if the view has no results. Optional."
+msgstr "Tekst wyświetlany w przypadku braku danych w widoku. Ustawienie opcjonalne."
+
+#: includes/plugins.inc:1186
+msgid "How should this view be styled"
+msgstr "Jakiego stylu powinieneś użyć dla tego widoku"
+
+#: includes/plugins.inc:1192
+msgid "If the style you choose has settings, be sure to click the settings button that will appear next to it in the View summary."
+msgstr "Jeśli styl który wybrałes ma ustawienia, upewnij się że przycisk ustawień pojawił się obok Widoku podsumowań."
+
+#: includes/plugins.inc:1200
+msgid "You may also adjust the !settings for the currently selected style by clicking on the icon."
+msgstr "Powinieneś również dostosować !settings obecnie wybrany styl poprzez klinięcie na ikonkę."
+
+#: includes/plugins.inc:1200;1242
+msgid "settings"
+msgstr "ustawienia"
+
+#: includes/plugins.inc:1206
+msgid "Style options"
+msgstr "Opcje stylów"
+
+#: includes/plugins.inc:1218
+msgid "Row style options"
+msgstr "Opcje stylu rzędów"
+
+#: includes/plugins.inc:1230
+msgid "How should each row in this view be styled"
+msgstr "Jakiego stylu każdy rząd danych ma używać"
+
+#: includes/plugins.inc:1242
+msgid "You may also adjust the !settings for the currently selected row style by clicking on the icon."
+msgstr "Powinieneś również dostosować !settings obecnie wybrany styl rzędu danych poprzez klinięcie na ikonkę."
+
+#: includes/plugins.inc:1248
+msgid "Which display to use for path"
+msgstr "Którego podglądu użyć dla ściezki"
+
+#: includes/plugins.inc:1257
+msgid "Which display to use to get this display's path for things like summary links, rss feed links, more links, etc."
+msgstr "Którego podglądu użyć aby otrzymać scieżkę podglądu dla odnośników do danych takich jak : podsumowanie, kanały RSS, więcej odnośników itd."
+
+#: includes/plugins.inc:1262
+msgid "Theming information"
+msgstr "Informacje o skórkach"
+
+#: includes/plugins.inc:1270
+msgid "Display output"
+msgstr "Wygląd podglądu"
+
+#: includes/plugins.inc:1275
+msgid "Style output"
+msgstr "Wygląd stylu"
+
+#: includes/plugins.inc:1280
+msgid "Row style output"
+msgstr "Wygląd lini tekstu"
+
+#: includes/plugins.inc:1286
+msgid "Field @field"
+msgstr "Pole @field"
+
+#: includes/plugins.inc:1294
+msgid "Important! When you add a new template to your theme, be sure to clear the theme registry cache. You can do this by visiting administer >> site building >> themes -- just loading the page should clear the cache."
+msgstr "Ważne! Kiedy dodajesz nowy szablon do skórki, upewnij się że wyczyściłes pamięć podręczną skórki. Możesz tego dokonać wchodząć w ustawienia >> Zarządzaj >> Budowa witryny >> Skórki -- właściwe łądowanie strony powinno oczyścić pamięć podręczną."
+
+#: includes/plugins.inc:1306
+msgid "Theming information (display)"
+msgstr "Informacje o skórce (podgląd)"
+
+#: includes/plugins.inc:1307;1326;1347;1368
+msgid "Back to !info."
+msgstr "Wróć do !info"
+
+#: includes/plugins.inc:1307;1326;1347;1368
+msgid "theming information"
+msgstr "informacje o tworzeniu skórek"
+
+#: includes/plugins.inc:1310
+msgid "This display has no theming information"
+msgstr "Ten podgląd nie posiada informacji o tworzeniu skórek"
+
+#: includes/plugins.inc:1313
+msgid "This is the default theme template used for this display."
+msgstr "To jest domyslny szablon skórki używanej w tym podglądzie."
+
+#: includes/plugins.inc:1325
+msgid "Theming information (style)"
+msgstr "Informację o tworzeniu skórki (styl)"
+
+#: includes/plugins.inc:1331
+msgid "This display has no style theming information"
+msgstr "Ten podgląd nie posiada informacji o stylach skórek"
+
+#: includes/plugins.inc:1334
+msgid "This is the default theme template used for this style."
+msgstr "Domyslna skórka używana w tym szablonie dla tego stylu."
+
+#: includes/plugins.inc:1346;1367
+msgid "Theming information (row style)"
+msgstr "Informacje o tworzeniu skórki (styl lini tekstu)"
+
+#: includes/plugins.inc:1352
+msgid "This display has no row style theming information"
+msgstr "Ten podgląd nie ma informacji o tworzeniu skórek dla wierszy tabel"
+
+#: includes/plugins.inc:1355;1370
+msgid "This is the default theme template used for this row style."
+msgstr "To jest domyślny szablon skórki dla tego stylu lini danych"
+
+#: includes/plugins.inc:1434
+msgid "You must select at least one role if type is \"by role\""
+msgstr "Musisz wybrać przynajmniej jedną rolę gdy typ jest \"przez rolę\""
+
+#: includes/plugins.inc:1551
+msgid "Override"
+msgstr "Nadpisz"
+
+#: includes/plugins.inc:1563
+msgid "Use default"
+msgstr "Użyj domślnych"
+
+#: includes/plugins.inc:1756
+msgid "Display @display uses fields but there are none defined for it."
+msgstr "Podgląd @display używa pól, ale żadne nie jest zdefiniowane."
+
+#: includes/plugins.inc:1760
+msgid "Display @display uses path but path is undefined."
+msgstr "Podgląd @display używa ścieżki ale żadna nie jest zdefiniowana."
+
+#: includes/plugins.inc:1765
+msgid "Display @display has an invalid style plugin."
+msgstr "Podgląd @display ma nieprawidłowy plugin stylu."
+
+#: includes/plugins.inc:1994
+msgid "Page settings"
+msgstr "Ustawienia strony"
+
+#: includes/plugins.inc:2019
+msgid "No menu"
+msgstr "Brak menu"
+
+#: includes/plugins.inc:2022
+msgid "Normal: @title"
+msgstr "Zwykły: @title"
+
+#: includes/plugins.inc:2026
+msgid "Tab: @title"
+msgstr "Zakładka: @tab"
+
+#: includes/plugins.inc:2036
+msgid "Menu"
+msgstr "Menu"
+
+#: includes/plugins.inc:2042
+msgid "Change settings for the parent menu"
+msgstr "Zmień ustawienia dla nadrzędnego menu"
+
+#: includes/plugins.inc:2055
+msgid "The menu path or URL of this view"
+msgstr "Ścieżka menu albo URL tego widoku"
+
+#: includes/plugins.inc:2059
+msgid "This view will be displayed by visiting this path on your site. You may use \"%\" in your URL to represent values that will be used for arguments: For example, \"node/%/feed\"."
+msgstr "Widok będzie wyświetlony przez odwiedzenie tej ścieżki na Twojej stronie. Możesz użyć \"%\" w URLu reprezentując wartości użyte dla argumentów: Na przykład, \"node/%/feed\"."
+
+#: includes/plugins.inc:2065
+msgid "Menu item entry"
+msgstr "Lista elementów menu"
+
+#: includes/plugins.inc:2082
+msgid "No menu entry"
+msgstr "Brak listy elementów menu"
+
+#: includes/plugins.inc:2083
+msgid "Normal menu entry"
+msgstr "Zwykły wpis w menu"
+
+#: includes/plugins.inc:2084;2131
+msgid "Menu tab"
+msgstr "Zakładka menu"
+
+#: includes/plugins.inc:2085
+msgid "Default menu tab"
+msgstr "Domyslna zakładka menu"
+
+#: includes/plugins.inc:2094
+msgid "If set to normal or tab, enter the text to use for the menu item."
+msgstr "Wprowadź tekst by użyć elementu menu, gdy menu jest zwykłe lub gdy jest zakładką."
+
+#: includes/plugins.inc:2103
+msgid "If set to tab, enter the weight of the item. The lower th weight the higher/further left it will appear."
+msgstr "Wpisz wagę elementu gdy przypisujesz zakładce. Im mniejsza waga tym zakładka pojawi się bardziej z lewej strony."
+
+#: includes/plugins.inc:2109
+msgid "Default tab options"
+msgstr "Domyślne opcje zakładek"
+
+#: includes/plugins.inc:2118
+msgid "When providing a menu item as a tab, Drupal needs to know what the parent menu item of that tab will be. Sometimes the parent will already exist, but other times you will need to have one created. The path of a parent item will always be the same path with the last part left off. i.e, if the path to this view is foo/bar/baz, the parent path would be foo/bar."
+msgstr "Kiedy dostarczamy menu jako zakłądki, Drupal musi wiedzieć jaki będzie element nadrzędny menu zakładki. Czasami element nadrzędny istnieje, ale czasami będzie trzeba go utworzyć. Ścieżką elementu nadrzędnego zawsze będzie częścią powstałą przez odłączenie ostatniego fragmentu ścieżki podrzędnej. Na przykład ścieżka do widoku jest: foo/bar/baz nadrzędną ścieżka będzie foo/bar."
+
+#: includes/plugins.inc:2129
+msgid "Parent menu item"
+msgstr "Nadrzędny element menu"
+
+#: includes/plugins.inc:2131
+msgid "Already exists"
+msgstr "Już istnieje"
+
+#: includes/plugins.inc:2131
+msgid "Normal menu item"
+msgstr "Standardowy element menu"
+
+#: includes/plugins.inc:2139
+msgid "If creating a parent menu item, enter the title of the item."
+msgstr "Gdy dodajesz element nadrzędny menu, wprowadź jego tytuł."
+
+#: includes/plugins.inc:2145
+msgid "Tab weight"
+msgstr "Waga zakładki"
+
+#: includes/plugins.inc:2149
+msgid "If the parent menu item is a tab, enter the weight of the tab. The lower the number, the more to the left it will be."
+msgstr "Gdy element nadrzędny menu jest zakładką, wprowadź jej wagę. Im mniejszy numer, tym bardziej będzie z lewej."
+
+#: includes/plugins.inc:2163
+msgid "\"$arg\" is no longer supported. Use % instead."
+msgstr "\"$arg\" już nie używamy. Użyj w zamian %. "
+
+#: includes/plugins.inc:2173
+msgid "Views cannot create normal menu items for paths with a % in them."
+msgstr "Widok nie może tworzyć standardowych elementów menu dla ścieżek z % w nich."
+
+#: includes/plugins.inc:2180
+msgid "A display whose path ends with a % cannot be a tab."
+msgstr "Wyświetla które ścieżki kończące się % nie mogą być zakładką."
+
+#: includes/plugins.inc:2185
+msgid "Title is required for this menu type."
+msgstr "Tytuł jest wymagany dla tego typu menu"
+
+#: includes/plugins.inc:2216
+msgid "Display @display is set to use a menu but the menu title is not set."
+msgstr "Podgląd @display jest ustawiony tak, by używać tytułu menu ale tytuł nie został ustawiony."
+
+#: includes/plugins.inc:2222
+msgid "Display @display is set to use a parent menu but the parent menu title is not set."
+msgstr "Podgląd @display jest ustawiony by używać nadrzędnego menu, ale tytuł elementu menu nie został ustawiony."
+
+#: includes/plugins.inc:2288
+msgid "Block settings"
+msgstr "Ustawienia Bloków"
+
+#: includes/plugins.inc:2302
+msgid "Admin"
+msgstr "Admin"
+
+#: includes/plugins.inc:2314
+msgid "Caching"
+msgstr "Zapis do pamięci podręcznej"
+
+#: includes/plugins.inc:2324
+msgid "Do not cache"
+msgstr "Nie zapisuj w pamięci podręcznej"
+
+#: includes/plugins.inc:2325
+msgid "Cache once for everything (global)"
+msgstr "Jedna pamięć podręczna dla wszystkiego (globalna)"
+
+#: includes/plugins.inc:2326
+msgid "Per page"
+msgstr "Na stronę"
+
+#: includes/plugins.inc:2327
+msgid "Per role"
+msgstr "Na rolę"
+
+#: includes/plugins.inc:2328
+msgid "Per role per page"
+msgstr "Na rolę na stronę"
+
+#: includes/plugins.inc:2329
+msgid "Per user"
+msgstr "Na użytkownika"
+
+#: includes/plugins.inc:2330
+msgid "Per user per page"
+msgstr "Na użytkownika na stronę"
+
+#: includes/plugins.inc:2355
+msgid "Block admin description"
+msgstr "Opis bloku administracyjnego"
+
+#: includes/plugins.inc:2358
+msgid "This will appear as the name of this block in administer >> site building >> blocks."
+msgstr "To ukaże się jako nazwa bloku w Zarządzaj >> Konfiguracja witryny >> Bloki."
+
+#: includes/plugins.inc:2363
+msgid "Block caching type"
+msgstr "Typ pamięci podręcznej dla bloku"
+
+#: includes/plugins.inc:2367
+msgid "This sets the default status for Drupal's built-in block caching method; this requires that caching be turned on in block administration, and be careful because you have little control over when this cache is flushed."
+msgstr "To ustawia domyslny status dla wbudowanej metody blokowego cache'owania; to wymaga by cache'owanie bylo wlaczone w bloku administracyjnym, i badz ostrozny poniewaz masz mala kontrole na tym kiedy cache jest opróżniany."
+
+#: includes/plugins.inc:2418
+msgid "Before"
+msgstr "Przed"
+
+#: includes/plugins.inc:2419
+msgid "After"
+msgstr "Po"
+
+#: includes/plugins.inc:2420
+msgid "Both"
+msgstr "Oba"
+
+#: includes/plugins.inc:2440
+msgid "Attachment settings"
+msgstr "Ustawienia załączników"
+
+#: includes/plugins.inc:2445;2486
+msgid "Inherit arguments"
+msgstr "Dziedziczenie argumentów"
+
+#: includes/plugins.inc:2451;2495
+msgid "Position"
+msgstr "Pozycja"
+
+#: includes/plugins.inc:2457;2649
+msgid "Multiple displays"
+msgstr "Wiele podglądów"
+
+#: includes/plugins.inc:2472;2504;2664;2678
+msgid "Attach to"
+msgstr "Dołącz do"
+
+#: includes/plugins.inc:2489
+msgid "Inherit"
+msgstr "Dziedzicz"
+
+#: includes/plugins.inc:2490
+msgid "Should this display inherit its arguments from the parent display to which it is attached?"
+msgstr "Czy podgląd ma dziedziczyć argumenty z nadrzędnego podglądu do którego jest dołączony?"
+
+#: includes/plugins.inc:2498;2687
+msgid "Attach before or after the parent display?"
+msgstr "Dołączyć przed czy po nadrzędnym podglądzie?"
+
+#: includes/plugins.inc:2513
+msgid "Select which display or displays this should attach to."
+msgstr "Wybierz, który lub które podglądy powinny być dołączone."
+
+#: includes/plugins.inc:2641
+msgid "Feed settings"
+msgstr "Ustawienia kanału"
+
+#: includes/plugins.inc:2693
+msgid "This view will be displayed by visiting this path on your site. It is recommended that the path be something like \"path/%/%/feed\" or \"path/%/%/rss.xml\", putting one % in the path for each argument you have defined in the view."
+msgstr "Ten widok będzie wyświetlany odwiedzającym tą ścieżkę w adresie Twojej strony. Poleca się by ścieżka wyglądała \"path/%/%/feed\" albo \"path/%/%/rss.xml\", umieszczamy JEDEN % w ścieżce dla każdego ze zdefiniowanych argumentów w widoku."
+
+#: includes/plugins.inc:2835
+msgid "Grouping field"
+msgstr "Pole grupujące"
+
+#: includes/plugins.inc:2838
+msgid "You may optionally specify a field by which to group the records. Leave blank to not group."
+msgstr "Opcjonalnie możesz okreslić pole grupujące dane. Pozostaw puste by nie grupować. "
+
+#: includes/plugins.inc:2923
+msgid "Style @style requires a row style but the row plugin is invalid."
+msgstr "Styl @style wymaga stylu wiersza tabeli, a plugin wiersza tabeli jest niewłaściwy."
+
+#: includes/plugins.inc:2970
+msgid "List type"
+msgstr "Typ listy"
+
+#: includes/plugins.inc:3000
+msgid "Number of columns"
+msgstr "Liczba kolumn"
+
+#: includes/plugins.inc:3005
+msgid "Alignment"
+msgstr "Wyrównanie"
+
+#: includes/plugins.inc:3006
+msgid "Horizontal"
+msgstr "Poziomo"
+
+#: includes/plugins.inc:3006
+msgid "Vertical"
+msgstr "Pionowo"
+
+#: includes/plugins.inc:3008
+msgid "Horizontal alignment will place items starting in the upper left and moving right. Vertical alignment will place items starting in the upper left and moving down."
+msgstr "Wyrównanie poziome umieści elementy zaczynając od części lewej górnej w strone prawej. Pionowe zaś umieśi je od części lewej górnej w dół."
+
+#: includes/plugins.inc:3127
+msgid "You need at least one field before you can configure your table settings"
+msgstr "Potrzebujesz przynajmniej jednego pola zanim zaczniesz konfigurować ustawienia tabel"
+
+#: includes/plugins.inc:3136
+msgid "Override normal sorting if click sorting is used"
+msgstr "Nadpisz normalne sortowanie jeśli ktoś kliknął \"sortuj\""
+
+#: includes/plugins.inc:3142
+msgid "Enable Drupal style \"sticky\" table headers (Javascript)"
+msgstr "Włącz styl \"przyklejony\" do nagłówków tabel (JavaScript)"
+
+#: includes/plugins.inc:3144
+msgid "(Sticky header effects will not be active for preview below, only on live output.)"
+msgstr "(Przyklejone nagłówki nie będą aktywne przy podglądzie poniżej tylko w podglądzie na żywo.)"
+
+#: includes/plugins.inc:3149
+msgid "Default sort order"
+msgstr "Domyślne sortowanie"
+
+#: includes/plugins.inc:3150
+#: includes/sort.handlers.inc:60
+msgid "Ascending"
+msgstr "Rosnąco"
+
+#: includes/plugins.inc:3150
+#: includes/sort.handlers.inc:60
+msgid "Descending"
+msgstr "Malejąco"
+
+#: includes/plugins.inc:3152
+msgid "If a default sort order is selected, what order should it use by default."
+msgstr "Jakie sortowanie ma być stosowane domyślnie gdy zaznaczymy sorotwanie domyślne."
+
+#: includes/plugins.inc:3238
+msgid "Place fields into columns; you may combine multiple fields into the same column. If you do, the separator in the column specified will be used to separate the fields. Check the sortable box to make that column clicksortable, and check the default sort radio to determine which column will be sorted by default, if any. You may control column order and field labels in the fields section."
+msgstr "Umieść pola w kolumnach; możesz ustawić wiele pól w tej samej kolumnie. Separator w wybranych kolumnach będzie oddzielał pola. Zaznacz pole sortowania, aby wybrać jak domyślnie dana kolumna ma być sortowana. Porządek sortowania i opisy etykiet pól możesz kontrolować w sekcji pól."
+
+#: includes/plugins.inc:3263
+#: includes/view.inc:1665
+msgid "Field"
+msgstr "Pole"
+
+#: includes/plugins.inc:3264
+msgid "Column"
+msgstr "Kolumna"
+
+#: includes/plugins.inc:3267
+msgid "Sortable"
+msgstr "Sortowalny"
+
+#: includes/plugins.inc:3271
+msgid "Default sort"
+msgstr "Standardowe sortowanie"
+
+#: includes/plugins.inc:3330
+msgid "Display record count with link"
+msgstr "Wyświetl ilośc rekordów z odnośnikiem"
+
+#: includes/plugins.inc:3335
+msgid "Override number of items to display"
+msgstr "Nadpisz liczbę elementów do wyświetlenia"
+
+#: includes/plugins.inc:3372
+msgid "Display items inline"
+msgstr "Wyświetl elementy \"inline\""
+
+#: includes/plugins.inc:3421
+msgid "Use the site mission for the description"
+msgstr "Używaj misji strony do opisu"
+
+#: includes/plugins.inc:3425
+msgid "RSS description"
+msgstr "Opis kanału RSS"
+
+#: includes/plugins.inc:3427
+msgid "This will appear in the RSS feed itself."
+msgstr "To pojawi się samo w kanale RSS."
+
+#: includes/plugins.inc:3550
+msgid "Inline fields"
+msgstr "Pola \"inline\""
+
+#: includes/plugins.inc:3553
+msgid "Inline fields will be displayed next to each other rather than one after another."
+msgstr "Pola \"inline\" będą wyświetlone obok siebie względnie jedno pod drugim."
+
+#: includes/plugins.inc:3561
+msgid "The separator may be placed between inline fields to keep them from squishing up next to each other. You can use HTML in this field."
+msgstr "Separator może być umiejscowiony pomiędzy polami \"inline\" by trzymać je ściśnięte razem. W tym polu możesz użyć HTMLa."
+
+#: includes/plugins.inc:3611
+msgid "Default argument"
+msgstr "Domyślny argument"
+
+#: includes/plugins.inc:3653
+msgid "PHP argument code"
+msgstr "Kod argumentu PHP (PHP argument code)"
+
+#: includes/plugins.inc:3656
+msgid "Enter PHP code that returns a value to use for this argument. Do not use <?php ?>. You must return only a single value for just this argument."
+msgstr "Wprowadź kod PHP który zwróci wartość użytą dla tego argumentu. Nie używaj <?php ?>. Musisz zwrócić tylko jedną wartość dla jednego argumentu."
+
+#: includes/plugins.inc:3760
+msgid "PHP validate code"
+msgstr "Kod poprawności PHP"
+
+#: includes/plugins.inc:3762
+msgid "Enter PHP code that returns TRUE or FALSE. No return is the same as FALSE, so be SURE to return something if you do not want to declare the argument invalid. Do not use <?php ?>. The argument to validate will be \"$argument\" and the view will be \"$view\". You may change the argument by setting \"$handler->argument\"."
+msgstr "Ten kod zwraca PRAWDĘ (true) lub FAŁSZ(false). Brak zwróconej wartości jest równoznaczny z FAŁSZem więć upewnij się że zwracasz coś by deklarować argument właściwie. Nie używaj <?php ?>. Argument mozna sprawdzić wpisując \"$argument\" , widok \"$view\". Możesz zmienić argument poprzez ustawienie \"$handler->argument\"."
+
+#: includes/relationship.handlers.inc:62
+msgid "The label for this relationship that will be displayed only administratively."
+msgstr "Etykieta dla tego powiązania, która będzie wyświetlana tylko w trybie administracji."
+
+#: includes/relationship.handlers.inc:67
+msgid "Require this relationship"
+msgstr "Wymaga zalezności"
+
+#: includes/relationship.handlers.inc:68
+msgid "If required, items that do not contain this relationship will not appear."
+msgstr "Gdy wymagane, elementy niezawierające tej relacji nie ukażą się."
+
+#: includes/sort.handlers.inc:43
+msgid "asc"
+msgstr "asc"
+
+#: includes/sort.handlers.inc:47
+msgid "desc"
+msgstr "desc"
+
+#: includes/sort.handlers.inc:59
+msgid "Sort order"
+msgstr "Kolejność sortowania"
+
+#: includes/sort.handlers.inc:76
+msgid "views_handler_sort_formula missing default: @formula"
+msgstr "views_handler_sort_formula utracona domyślnie: @formula"
+
+#: includes/sort.handlers.inc:116
+msgid "Granularity"
+msgstr "Ziarnistość"
+
+#: includes/sort.handlers.inc:118
+msgid "Second"
+msgstr "Drugi"
+
+#: includes/sort.handlers.inc:119
+msgid "Minute"
+msgstr "Minuta"
+
+#: includes/sort.handlers.inc:120
+msgid "Hour"
+msgstr "Godzina"
+
+#: includes/sort.handlers.inc:121
+msgid "Day"
+msgstr "Dzień"
+
+#: includes/sort.handlers.inc:122
+msgid "Month"
+msgstr "Miesiąc"
+
+#: includes/sort.handlers.inc:123
+msgid "Year"
+msgstr "Rok"
+
+#: includes/sort.handlers.inc:125
+msgid "The granularity is the smallest unit to use when determining whether two dates are the same; for example, if the granularity is \"Year\" then all dates in 1999, regardless of when they fall in 1999, will be considered the same date."
+msgstr "Ziarnistość jest najmniejszą jednostką używaną do określenia czy dwie daty są takie same; na przykład gdy ziarnistością jest \"Rok\" to wszystkie daty zawierające 1999 będą traktowane jako jedna data."
+
+#: includes/view.inc:224
+msgid "set_display called with invalid display id @display"
+msgstr "set_display wołany z nieprawidłowym ID Podglądu @display"
+
+#: includes/view.inc:946
+msgid "Home"
+msgstr "Start"
+
+#: includes/view.inc:1664
+msgid "fields"
+msgstr "pola"
+
+#: includes/view.inc:1666
+msgid "field"
+msgstr "pole"
+
+#: includes/view.inc:1671
+msgid "arguments"
+msgstr "argumenty"
+
+#: includes/view.inc:1672;1673
+msgid "Argument"
+msgstr "Argument"
+
+#: includes/view.inc:1677
+msgid "Sort criteria"
+msgstr "Kryteria sortowania"
+
+#: includes/view.inc:1678
+msgid "sort criteria"
+msgstr "kryteria sortowania"
+
+#: includes/view.inc:1679
+msgid "Sort criterion"
+msgstr "Kryterium sortowania"
+
+#: includes/view.inc:1680
+msgid "sort criterion"
+msgstr "kryterium sortowania"
+
+#: includes/view.inc:1684
+msgid "Filters"
+msgstr "Filtry"
+
+#: includes/view.inc:1685
+msgid "filters"
+msgstr "filtry"
+
+#: includes/view.inc:1686
+msgid "Filter"
+msgstr "Filtr"
+
+#: includes/view.inc:1687
+msgid "filter"
+msgstr "filtr"
+
+#: includes/view.inc:1692
+msgid "Relationships"
+msgstr "Zależności"
+
+#: includes/view.inc:1693
+msgid "relationships"
+msgstr "zależności"
+
+#: js/ajax.js:0;0;0;0;0;0;0
+#: js/ajax_view.js:0;0;0
+msgid "An error occurred at "
+msgstr "Błąd wystąpił w "
+
+#: js/tabs.js:0
+msgid "jQuery UI Tabs: Mismatching fragment identifier."
+msgstr "jQuery UI Tabs: Niepasujący fragment identyfikatora."
+
+#: js/tabs.js:0
+msgid "jQuery UI Tabs: Not enough arguments to add tab."
+msgstr "jQuery UI Tabs: Za mało argumentów by dodać zakładkę."
+
+#: modules/book.views.inc:21;36;46;99
+msgid "Book"
+msgstr "Książka"
+
+#: modules/book.views.inc:30
+msgid "Top level book"
+msgstr "Najwyższy poziom książki"
+
+#: modules/book.views.inc:31
+msgid "The book the node is in"
+msgstr "Książka w której jest segment"
+
+#: modules/book.views.inc:58
+msgid "The weight of the book page."
+msgstr "Waga strony książki"
+
+#: modules/book.views.inc:69
+#: modules/comment.views.inc:202
+#: modules/taxonomy.views.inc:339
+msgid "Depth"
+msgstr "Głębokość"
+
+#: modules/book.views.inc:70
+msgid "The depth of the book page in the hierarchy; top level books have a depth of 1."
+msgstr "Głębokość strony książki w hierarchi; książki najwyższego poziomu mają głębokość 1."
+
+#: modules/book.views.inc:87
+msgid "Hierarchy"
+msgstr "Hierarchia"
+
+#: modules/book.views.inc:88
+msgid "The order of pages in the book hierarchy. Remember to sort by weight too if you want exactly the right order."
+msgstr "Kolejność stron w hierarchi książki. Pamiętaj by sortować po wadze również jeśli chcesz mieć właściwie posortowane."
+
+#: modules/book.views.inc:110
+msgid "Parent"
+msgstr "Nadrzędny"
+
+#: modules/book.views.inc:111
+msgid "The parent book node"
+msgstr "Nadrzędny segment książki"
+
+#: modules/book.views.inc:116
+msgid "Book parent"
+msgstr "Rodzic książki"
+
+#: modules/comment.views.inc:22;26;382;391
+msgid "Comment"
+msgstr "Komentarz"
+
+#: modules/comment.views.inc:27
+msgid "Comments are responses to node content."
+msgstr "Komentarze są odpowiedziami na zawartość segmentów."
+
+#: modules/comment.views.inc:45
+msgid "The title of the comment."
+msgstr "Tytuł komentarza"
+
+#: modules/comment.views.inc:63
+#: modules/node.views.inc:348
+msgid "Body"
+msgstr "Treść"
+
+#: modules/comment.views.inc:64
+msgid "The text of the comment."
+msgstr "Tekst komentarza"
+
+#: modules/comment.views.inc:76
+msgid "ID"
+msgstr "ID"
+
+#: modules/comment.views.inc:77
+msgid "The commment ID of the field"
+msgstr "ID komentarza pola"
+
+#: modules/comment.views.inc:95
+msgid "Author"
+msgstr "Autor"
+
+#: modules/comment.views.inc:96
+msgid "The name of the poster."
+msgstr "Imie nadsyłającego."
+
+#: modules/comment.views.inc:114
+msgid "Author's website"
+msgstr "Adres strony nadsyłającego"
+
+#: modules/comment.views.inc:115
+msgid "The website address of the comment's author. Can be a link. The homepage can also be linked with the Name field. Will be empty if posted by a registered user."
+msgstr "Adres strony domowej autora. Może być odnośnikiem. Pole nazwy użytkownika również może być odnośnikiem do strony domowej. Pozostanie puste w przypadku gdy nadsyłającym jest użytkownik zarejestrowany."
+
+#: modules/comment.views.inc:133
+#: modules/node.views.inc:107
+msgid "Post date"
+msgstr "Data nadesłania"
+
+#: modules/comment.views.inc:134
+msgid "Date and time of when the comment was posted."
+msgstr "Data i czas wysłania komentarza."
+
+#: modules/comment.views.inc:149
+msgid "In moderation"
+msgstr "W moderacji"
+
+#: modules/comment.views.inc:150
+msgid "Whether or not the comment is currently in moderation."
+msgstr "Czy ten komentarz jest obecnie moderowany czy nie."
+
+#: modules/comment.views.inc:157
+msgid "Moderated"
+msgstr "Moderowane"
+
+#: modules/comment.views.inc:167
+msgid "View link"
+msgstr "Podgląd"
+
+#: modules/comment.views.inc:168
+msgid "Provide a simple link to view the comment."
+msgstr "Dostarcza prosty odnośnik do podglądania komentarzy."
+
+#: modules/comment.views.inc:176
+#: modules/node.views.inc:231
+#: modules/user.views.inc:204
+msgid "Edit link"
+msgstr "Edytuj"
+
+#: modules/comment.views.inc:177
+msgid "Provide a simple link to edit the comment."
+msgstr "Dostarcza prosty odnośnik do edycji komentarzy"
+
+#: modules/comment.views.inc:185
+#: modules/node.views.inc:239;461
+#: modules/user.views.inc:212
+msgid "Delete link"
+msgstr "Usuń"
+
+#: modules/comment.views.inc:186
+msgid "Provide a simple link to delete the comment."
+msgstr "Dostarcza prosty odnośnik do usuwania komentarzy."
+
+#: modules/comment.views.inc:194
+msgid "Reply-to link"
+msgstr "link Odpowiedz"
+
+#: modules/comment.views.inc:195
+msgid "Provide a simple link to reply to the comment."
+msgstr "Dostarcza prosty odnośnik do odpowiedzi na komentarze."
+
+#: modules/comment.views.inc:203
+msgid "Display the depth of the comment if it is threaded."
+msgstr "Wyświetl głebokość komentarzy gdy są w wątku."
+
+#: modules/comment.views.inc:207
+msgid "Thread"
+msgstr "Wątek"
+
+#: modules/comment.views.inc:208
+msgid "Sort by the threaded order. This will keep child comments together with their parents."
+msgstr "Sortuj w kolejności wątków. To pomoże trzymać podrzędne komentarze wraz z nadrzędnymi razem."
+
+#: modules/comment.views.inc:214
+#: modules/node.views.inc:1413
+msgid "Node ID"
+msgstr "ID segmentu (Node ID)"
+
+#: modules/comment.views.inc:215
+msgid "The node the comment is a reply to."
+msgstr "Segment do którego ten komentarz jest odpowiedzią."
+
+#: modules/comment.views.inc:220;253
+#: modules/node.views.inc:24;29;89;347;362;473;1178;1187;1197
+msgid "Node"
+msgstr "Segment"
+
+#: modules/comment.views.inc:225
+msgid "User ID"
+msgstr "ID użytkownika (User ID)"
+
+#: modules/comment.views.inc:226
+msgid "The user who wrote the comment."
+msgstr "Użytkownik który napisał komentarz."
+
+#: modules/comment.views.inc:231
+#: modules/node.views.inc:335
+#: modules/statistics.views.inc:201
+#: modules/user.views.inc:23;27;221
+msgid "User"
+msgstr "Użytkownik"
+
+#: modules/comment.views.inc:236
+msgid "Parent CID"
+msgstr "CID rodzica (Parent CID)"
+
+#: modules/comment.views.inc:237
+msgid "The Comment ID of the parent comment."
+msgstr "ID komentarza (Comment ID) nadrzędnego komentarza."
+
+#: modules/comment.views.inc:245
+msgid "Parent comment"
+msgstr "Poprzednia odpowiedź"
+
+#: modules/comment.views.inc:266
+msgid "Last comment time"
+msgstr "Ostatnio komentowane"
+
+#: modules/comment.views.inc:267
+msgid "Date and time of when the last comment was posted."
+msgstr "Data i czas ostatniego komentarza."
+
+#: modules/comment.views.inc:282
+msgid "Last comment author"
+msgstr "Autor ostatniego komentarza"
+
+#: modules/comment.views.inc:283
+msgid "The name of the author of the last posted comment."
+msgstr "Dane autora ostatniego komentarza."
+
+#: modules/comment.views.inc:295
+msgid "Comment count"
+msgstr "Liczba komentarzy"
+
+#: modules/comment.views.inc:296
+msgid "The number of comments a node has."
+msgstr "Liczba komentarzy dla segmentu."
+
+#: modules/comment.views.inc:314
+msgid "Updated/commented date"
+msgstr "Data aktualizacji/komentarza"
+
+#: modules/comment.views.inc:315
+msgid "The most recent of last comment posted or node updated time."
+msgstr "Ostatni czas modyfikacji segmentu lub nadesłania komentarza."
+
+#: modules/comment.views.inc:338
+msgid "New comments"
+msgstr "Nowe komentarze"
+
+#: modules/comment.views.inc:339
+msgid "The number of new comments on the node."
+msgstr "Liczba nowych komentarzy w segmencie."
+
+#: modules/comment.views.inc:347
+msgid "Comment status"
+msgstr "Status komentarza"
+
+#: modules/comment.views.inc:348
+msgid "Whether comments are enabled or disabled on the node."
+msgstr "Czy komentarze w segmencie mają być włączone czy też nie."
+
+#: modules/comment.views.inc:362
+msgid "User posted or commented"
+msgstr "Użytkownik nadesłał lub komentował"
+
+#: modules/comment.views.inc:363
+msgid "Display comments only if a user posted the node or commented on the node."
+msgstr "Wyświetl komentarze jedynie gdy użytkownik wysłał lub komentował segment."
+
+#: modules/comment.views.inc:383
+msgid "Display the comment with standard comment view."
+msgstr "Wyświetl komentarz w standardowym widoku komentarza."
+
+#: modules/comment.views.inc:392
+msgid "Display the comment as RSS."
+msgstr "Wyświetl komentarz jako kanał RSS."
+
+#: modules/comment.views.inc:462
+msgid "Link this field to its comment"
+msgstr "Podlinkuj to pole do jego komentarza"
+
+#: modules/comment.views.inc:506
+msgid "Link this field to its user or an author's homepage"
+msgstr "Podlinkuj to pole do jego użytkownika lub strony domowej autora"
+
+#: modules/comment.views.inc:553
+#: modules/node.views.inc:601
+#: modules/user.views.inc:447
+msgid "Text to display"
+msgstr "Tekst do wyświetlenia"
+
+#: modules/comment.views.inc:564
+#: modules/node.views.inc:612
+#: modules/user.views.inc:463
+msgid "view"
+msgstr "przeglądaj"
+
+#: modules/comment.views.inc:589
+#: modules/node.views.inc:643
+#: modules/user.views.inc:481
+msgid "edit"
+msgstr "edytuj"
+
+#: modules/comment.views.inc:605
+#: modules/node.views.inc:673;752
+#: modules/user.views.inc:499
+msgid "delete"
+msgstr "usuń"
+
+#: modules/comment.views.inc:621
+msgid "reply"
+msgstr "powtórz"
+
+#: modules/comment.views.inc:764
+msgid "Link this field to new comments"
+msgstr "Podlinkuj to pole do \"nowe komentarze\""
+
+#: modules/comment.views.inc:769
+msgid "Display nothing if no new comments"
+msgstr "Nie wyświetlaj nic, gdy nie ma odpowiedzi"
+
+#: modules/comment.views.inc:836
+#: modules/user.views.inc:606
+msgid "Anonymous"
+msgstr "Anonimowy"
+
+#: modules/comment.views.inc:842
+msgid "No user"
+msgstr "Brak użytkownika"
+
+#: modules/comment.views.inc:878;895
+msgid "Disabled"
+msgstr "Wyłączone"
+
+#: modules/comment.views.inc:880;896
+msgid "Read only"
+msgstr "Tylko do odczytu"
+
+#: modules/comment.views.inc:882;897
+msgid "Read/Write"
+msgstr "Odczyt/Zapis"
+
+#: modules/comment.views.inc:917
+#: modules/node.views.inc:1235
+msgid "Display links"
+msgstr "Wyświetlaj odnosniki"
+
+#: modules/node.views.inc:30
+msgid "Nodes are a Drupal site's primary content."
+msgstr "Segmenty są główną zawartością stron w Drupalu."
+
+#: modules/node.views.inc:57
+msgid "Nid"
+msgstr "Nid"
+
+#: modules/node.views.inc:58
+msgid "The node ID of the node."
+msgstr "ID segmentu"
+
+#: modules/node.views.inc:85;403
+msgid "The title of the node."
+msgstr "Tytuł segmentu."
+
+#: modules/node.views.inc:108
+msgid "The date the node was posted."
+msgstr "Data wysłania segmentu."
+
+#: modules/node.views.inc:123
+msgid "Updated date"
+msgstr "Data uaktualnienia"
+
+#: modules/node.views.inc:124
+msgid "The date the node was last updated."
+msgstr "Data ostatniej aktualizacji segmentu."
+
+#: modules/node.views.inc:140
+msgid "The type of a node (for example, \"blog entry\", \"forum post\", \"story\", etc)."
+msgstr "Typ segmentu (np. \"blog entry\", \"forum post\", \"story\", etc)."
+
+#: modules/node.views.inc:158;166;180
+#: modules/upload.views.inc:74
+msgid "Published"
+msgstr "Opublikowany"
+
+#: modules/node.views.inc:159
+msgid "The published status of the node."
+msgstr "Opublikowany status segmentu."
+
+#: modules/node.views.inc:175
+msgid "Published or admin"
+msgstr "Opublikowany albo tryb administracji"
+
+#: modules/node.views.inc:176
+msgid "Filters out unpublished nodes if the current user cannot view them."
+msgstr "Filtruje nieopublikowane segmenty jeśli dany użytkownik nie może ich przeglądać."
+
+#: modules/node.views.inc:186;194
+msgid "Promoted to front page"
+msgstr "Promowany na stronie głównej"
+
+#: modules/node.views.inc:187
+msgid "The front page of the node."
+msgstr "Strona główna segmentu."
+
+#: modules/node.views.inc:203;212
+msgid "Sticky"
+msgstr "Przyklejony"
+
+#: modules/node.views.inc:204
+msgid "Whether or not the node is sticky."
+msgstr "Czy segment ma być przyklejony czy nie."
+
+#: modules/node.views.inc:223
+msgid "Link"
+msgstr "Odnośnik"
+
+#: modules/node.views.inc:224
+msgid "Provide a simple link to the node."
+msgstr "Dostarcza prosty odnosnik do segmentu."
+
+#: modules/node.views.inc:232
+msgid "Provide a simple link to edit the node."
+msgstr "Dostarcza prosty odnośnik do edytowania segmentu."
+
+#: modules/node.views.inc:240
+msgid "Provide a simple link to delete the node."
+msgstr "Dostarcza prosty odnosnik do kasowania segmentu."
+
+#: modules/node.views.inc:248;1115
+msgid "Language"
+msgstr "Język"
+
+#: modules/node.views.inc:249
+msgid "The language the content is in."
+msgstr "Język w jakim jest treść."
+
+#: modules/node.views.inc:266;437
+#: modules/user.views.inc:125
+msgid "Created date"
+msgstr "Data utworzenia"
+
+#: modules/node.views.inc:267
+msgid "In the form of CCYYMMDD."
+msgstr "Format danych: CCYYMMDD"
+
+#: modules/node.views.inc:275
+msgid "Created year + month"
+msgstr "Rok i miesiąc utworzenia"
+
+#: modules/node.views.inc:276
+msgid "In the form of YYYYMM."
+msgstr "Format danych: YYYYMM."
+
+#: modules/node.views.inc:284
+msgid "Created year"
+msgstr "Rok utworzenia"
+
+#: modules/node.views.inc:285
+msgid "In the form of YYYY."
+msgstr "Format danych YYYY"
+
+#: modules/node.views.inc:293
+msgid "Created month"
+msgstr "Miesiąc utworzenia"
+
+#: modules/node.views.inc:294
+msgid "In the form of MM (01 - 12)."
+msgstr "Format danych MM (01 - 12)."
+
+#: modules/node.views.inc:302
+msgid "Created week"
+msgstr "Tydzień utworzenia"
+
+#: modules/node.views.inc:303
+msgid "In the form of WW (01 - 53)."
+msgstr "Format danych WW(01 - 53)."
+
+#: modules/node.views.inc:315;320
+msgid "Node revision"
+msgstr "Wersja segmentu"
+
+#: modules/node.views.inc:321
+msgid "Node revisions are a history of changes to nodes."
+msgstr "Wersje segmentu są historią zmian w nich."
+
+#: modules/node.views.inc:336
+msgid "Relate a node revision to the user who created the revision."
+msgstr "Powiązuje wersje segmentu z użytkownikiem który stworzył wersje."
+
+#: modules/node.views.inc:341
+msgid "user"
+msgstr "użytkownik"
+
+#: modules/node.views.inc:349
+msgid "The actual, full data in the body field; this may not be valid data on all node types."
+msgstr "Faktyczna, pełne dane w polu treści; Mogą nie być właściwe dla wszystkich segmentów."
+
+#: modules/node.views.inc:363
+msgid "Teaser"
+msgstr "Skrót"
+
+#: modules/node.views.inc:364
+msgid "The stored teaser field. This may not be valid or useful data on all node types."
+msgstr "Pole przechowywania skrótu. Nie poleca się przechowywania pożytecznych danych we wszystkich segmentach."
+
+#: modules/node.views.inc:377
+msgid "Vid"
+msgstr "Vid"
+
+#: modules/node.views.inc:378
+msgid "The revision ID of the node revision."
+msgstr "ID wersji wersji segmentu."
+
+#: modules/node.views.inc:423
+msgid "Log message"
+msgstr "Dziennik wiadomości"
+
+#: modules/node.views.inc:424
+msgid "The log message entered when the revision was created."
+msgstr "Wiadomość wprowadzona do dziennika w momencie utworzenia wersji."
+
+#: modules/node.views.inc:438
+msgid "The date the node revision was created."
+msgstr "Data stworzenia wersji dla segmentu."
+
+#: modules/node.views.inc:453
+msgid "Revert link"
+msgstr "Powrót"
+
+#: modules/node.views.inc:454
+msgid "Provide a simple link to revert to the revision."
+msgstr "Dostarcza prosty odnośnik do powrotu do poprzedniej wersji."
+
+#: modules/node.views.inc:462
+msgid "Provide a simple link to delete the node revision."
+msgstr "Dostarcza prosty odnośnik do kasowania wersji segmentu."
+
+#: modules/node.views.inc:489
+msgid "Has new content"
+msgstr "Ma nową zawartość"
+
+#: modules/node.views.inc:492
+msgid "Show a marker if the node has new or updated content."
+msgstr "Oznacza, jeśli segment jest nowy lub zawiera nową treść."
+
+#: modules/node.views.inc:495
+msgid "Show only nodes that have new content."
+msgstr "Pokazuj tylko te segmenty, które maja nową zawartość."
+
+#: modules/node.views.inc:528
+msgid "Link this field to its node"
+msgstr "Odnieś to pole do segmentu"
+
+#: modules/node.views.inc:713
+msgid "revert"
+msgstr "powrót"
+
+#: modules/node.views.inc:788
+msgid "Check for new comments as well"
+msgstr "Sprawdzaj również dla nowych odpowiedzi"
+
+#: modules/node.views.inc:860
+msgid "Unknown node type"
+msgstr "Nieznany typ segmentu"
+
+#: modules/node.views.inc:1043
+msgid "Week @week"
+msgstr "Tydzień @week"
+
+#: modules/node.views.inc:1055
+msgid "Node type"
+msgstr "Typ segmentu"
+
+#: modules/node.views.inc:1116
+msgid "Current user's language"
+msgstr "Bieżący język użytkownika."
+
+#: modules/node.views.inc:1116
+msgid "No language"
+msgstr "Brak języka"
+
+#: modules/node.views.inc:1166
+msgid "Unknown language"
+msgstr "Nieznany język"
+
+#: modules/node.views.inc:1179;1188
+msgid "Display the node with standard node view."
+msgstr "Wyświetlaj segment widokiem standardowym."
+
+#: modules/node.views.inc:1203
+msgid "Node ID from URL"
+msgstr "ID segmentu z URLa"
+
+#: modules/node.views.inc:1230
+msgid "Display only teaser"
+msgstr "Wyświetlaj tylko skrót"
+
+#: modules/node.views.inc:1291
+msgid "Full text"
+msgstr "Pełen tekst"
+
+#: modules/node.views.inc:1292
+msgid "Title plus teaser"
+msgstr "Tytuł i skrót"
+
+#: modules/node.views.inc:1293
+msgid "Title only"
+msgstr "Tylko tytuł"
+
+#: modules/node.views.inc:1294
+msgid "Use default RSS settings"
+msgstr "Użyj domyślnych ustawień RSS"
+
+#: modules/node.views.inc:1360
+msgid "read more"
+msgstr "czytaj więcej"
+
+#: modules/node.views.inc:1393
+msgid "Types"
+msgstr "Typy"
+
+#: modules/node.views.inc:1396
+msgid "If you wish to validate for specific node types, check them; if none are checked, all nodes will pass."
+msgstr "Zaznacz, jeśli chcesz sprawdzać poprawność dla konkretnego typu segmentu. Gdy nie znaznaczysz - wszystkie segmenty będą sprawdzane."
+
+#: modules/node.views.inc:1403
+msgid "Validate user has access to the node"
+msgstr "Sprawdza czy użytkownik ma dostęp do segmentu"
+
+#: modules/node.views.inc:1411
+#: modules/taxonomy.views.inc:1044
+msgid "Argument type"
+msgstr "Typ argumentu"
+
+#: modules/node.views.inc:1414
+msgid "Node IDs separated by , or +"
+msgstr "ID Segmentów oddzielone przez , lub + "
+
+#: modules/node.views.inc:1533
+msgid "Display %display has no access control but does not contain a filter for published nodes."
+msgstr "Podgląd %display nie ma dostępu ale i nie zawiera filtrów do publikacji segmentów."
+
+#: modules/poll.views.inc:23
+msgid "Poll"
+msgstr "Ankieta"
+
+#: modules/poll.views.inc:38;47
+#: modules/user.views.inc:173;182
+msgid "Active"
+msgstr "Aktywny/e"
+
+#: modules/poll.views.inc:39
+msgid "Whether the poll is open for voting."
+msgstr "Czy ankieta jest otwarta do głosowania."
+
+#: modules/profile.views.inc:20;40
+msgid "Profile"
+msgstr "Profil"
+
+#: modules/profile.views.inc:100
+msgid "@field-name"
+msgstr "@firld-name"
+
+#: modules/profile.views.inc:107
+msgid "Profile textfield"
+msgstr "Profil pola tekstowego"
+
+#: modules/profile.views.inc:126
+msgid "Profile textarea"
+msgstr "Profil obszaru tekstowego"
+
+#: modules/profile.views.inc:142
+msgid "Profile checkbox"
+msgstr "Profil checkboxa"
+
+#: modules/profile.views.inc:159
+msgid "Profile URL"
+msgstr "Profil URLa"
+
+#: modules/profile.views.inc:175
+msgid "Profile selection"
+msgstr "Profil wyboru"
+
+#: modules/profile.views.inc:195
+msgid "Profile freeform list %field-name."
+msgstr "Lista profilu %field-name."
+
+#: modules/profile.views.inc:207
+msgid "Profile date %field-name."
+msgstr "Data profilu %field-name."
+
+#: modules/search.views.inc:23;77;88;106;172;247
+msgid "Search"
+msgstr "Szukaj"
+
+#: modules/search.views.inc:72
+msgid "Score"
+msgstr "Punkty"
+
+#: modules/search.views.inc:73
+msgid "The score of the search item."
+msgstr "Ilość trafień "
+
+#: modules/search.views.inc:95
+msgid "Links from"
+msgstr "Odnośniki z"
+
+#: modules/search.views.inc:96
+msgid "Nodes that link from the node."
+msgstr "segmenty odnoszące z segmentu."
+
+#: modules/search.views.inc:113
+msgid "Links to"
+msgstr "Odnosniki do"
+
+#: modules/search.views.inc:114
+msgid "Nodes that link to the node."
+msgstr "segmenty odnoszące się do segmentu."
+
+#: modules/search.views.inc:125
+msgid "Search Terms"
+msgstr "Szukane wyrażenia"
+
+#: modules/search.views.inc:126
+msgid "The terms to search for."
+msgstr "Lista szukanych wyrażeń"
+
+#: modules/search.views.inc:156
+msgid "On empty input"
+msgstr "Na puste wejście"
+
+#: modules/search.views.inc:159
+msgid "Show All"
+msgstr "Pokaż wszystko"
+
+#: modules/search.views.inc:160
+msgid "Show None"
+msgstr "Nic nie pokazuj"
+
+#: modules/search.views.inc:175
+msgid "Enter the terms you wish to search for."
+msgstr "Wpisz terminy których szukasz."
+
+#: modules/search.views.inc:190
+msgid "You must include at least one positive keyword with @count characters or more."
+msgstr "Musisz wstawić przynajmniej jedno właściwe słowo z @count znakami lub więcej. "
+
+#: modules/search.views.inc:194
+msgid "Search for either of the two terms with uppercase OR. For example, cats OR dogs."
+msgstr "Wyszukiwanie dla obu wyrażeń wpisujemy wielkimi literami OR. Na przykład, koty OR psy."
+
+#: modules/search.views.inc:248
+msgid "Display the results with standard search view."
+msgstr "Wyświetl wyniki za pomocą widoku standardowego wyszukiwania."
+
+#: modules/search.views.inc:274
+msgid "Display score"
+msgstr "Wyświetl wynik"
+
+#: modules/statistics.views.inc:24
+msgid "Node statistics"
+msgstr "Statystyki segmentu"
+
+#: modules/statistics.views.inc:36
+msgid "Total views"
+msgstr "Wszystkie odwiedziny"
+
+#: modules/statistics.views.inc:37
+msgid "The total number of times the node has been viewed."
+msgstr "Ogolna liczba wizyt dla segmentu."
+
+#: modules/statistics.views.inc:53
+msgid "Views today"
+msgstr "Wizyt dzisiaj"
+
+#: modules/statistics.views.inc:54
+msgid "The total number of times the node has been viewed today."
+msgstr "Całkowita liczba wyświetleń segmentu dzisiaj."
+
+#: modules/statistics.views.inc:70
+msgid "Most recent view"
+msgstr "Najczęściej odwiedzane"
+
+#: modules/statistics.views.inc:71
+msgid "The most recent time the node has been viewed."
+msgstr "Ostatni czas kiedy segment był przeglądany."
+
+#: modules/statistics.views.inc:86;91
+msgid "Access log"
+msgstr "Dziennik dostępu"
+
+#: modules/statistics.views.inc:92
+msgid "Stores site access information."
+msgstr "Przechowuje informacje o dostępie do strony."
+
+#: modules/statistics.views.inc:106
+msgid "Session ID"
+msgstr "ID Sesji (Session ID)"
+
+#: modules/statistics.views.inc:107
+msgid "Browser session ID of user that visited page."
+msgstr "ID Sesji przeglądarki użytkownika odwiedzającego stronę."
+
+#: modules/statistics.views.inc:126
+msgid "Page title"
+msgstr "Tytuł strony"
+
+#: modules/statistics.views.inc:127
+msgid "Title of page visited."
+msgstr "Tytuł odwiedzonej strony."
+
+#: modules/statistics.views.inc:147
+msgid "Internal path to page visited (relative to Drupal root.)"
+msgstr "Wewnetrzna scieżka strony (relatywna do głównej Drupala)."
+
+#: modules/statistics.views.inc:166
+msgid "Referrer"
+msgstr "Odwołuje się"
+
+#: modules/statistics.views.inc:167
+msgid "Referrer URI."
+msgstr "Odwołuje się do URLa"
+
+#: modules/statistics.views.inc:182
+msgid "Hostname"
+msgstr "Hostname"
+
+#: modules/statistics.views.inc:183
+msgid "Hostname of user that visited the page."
+msgstr "Nazwy hostów użytkowników którzy odwiedzili stronę."
+
+#: modules/statistics.views.inc:202
+msgid "The user who visited the site."
+msgstr "Użytkownik który odwiedził witrynę."
+
+#: modules/statistics.views.inc:212
+msgid "Timer"
+msgstr "Czasomierz (Timer)"
+
+#: modules/statistics.views.inc:213
+msgid "Time in milliseconds that the page took to load."
+msgstr "Czas ładowania strony w milisekundach."
+
+#: modules/statistics.views.inc:228
+msgid "Timestamp"
+msgstr "Timestamp"
+
+#: modules/statistics.views.inc:229
+msgid "Timestamp of when the page was visited."
+msgstr "Znacznik czasu wizyty strony."
+
+#: modules/system.views.inc:25;30
+msgid "File"
+msgstr "Plik"
+
+#: modules/system.views.inc:31
+msgid "Files maintained by Drupal and various modules."
+msgstr "Pliki zarządzane przez Drupala i różne moduły."
+
+#: modules/system.views.inc:49
+msgid "File ID"
+msgstr "ID pliku (File ID)"
+
+#: modules/system.views.inc:50
+msgid "The ID of the file."
+msgstr "ID pliku"
+
+#: modules/system.views.inc:70
+msgid "The name of the file."
+msgstr "Nazwa pliku."
+
+#: modules/system.views.inc:89
+msgid "The path of the file."
+msgstr "Ścieżka pliku."
+
+#: modules/system.views.inc:107
+msgid "Mime type"
+msgstr "Mime type"
+
+#: modules/system.views.inc:108
+msgid "The mime type of the file."
+msgstr "\"mime type\" pliku."
+
+#: modules/system.views.inc:126
+msgid "Size"
+msgstr "Rozmiar"
+
+#: modules/system.views.inc:127
+msgid "The size of the file."
+msgstr "Rozmiar pliku."
+
+#: modules/system.views.inc:142
+msgid "Status"
+msgstr "Status"
+
+#: modules/system.views.inc:143
+msgid "The status of the file."
+msgstr "Status pliku."
+
+#: modules/system.views.inc:158
+msgid "Upload date"
+msgstr "Data dodania"
+
+#: modules/system.views.inc:159
+msgid "The date the file was uploaded."
+msgstr "Data dodania pliku."
+
+#: modules/system.views.inc:204
+#: modules/upload.views.inc:145;216
+msgid "Link this field to download the file"
+msgstr "Podlinkuj to pole do \"pobierz plik\""
+
+#: modules/system.views.inc:231
+msgid "Temporary"
+msgstr "Stały/e"
+
+#: modules/system.views.inc:232
+msgid "Permanent"
+msgstr "Stały/e"
+
+#: modules/system.views.inc:278
+msgid "No title"
+msgstr "Brak tytułu"
+
+#: modules/taxonomy.views.inc:24;73;143;161;219;255;298;309
+msgid "Taxonomy"
+msgstr "Taxonomia"
+
+#: modules/taxonomy.views.inc:54
+msgid "Vocabulary name"
+msgstr "Nazwa słownika"
+
+#: modules/taxonomy.views.inc:56
+msgid "Name of the vocabulary a term is a member of. This will be the vocabulary that whichever term the \"Taxonomy: Term\" field is; and can similarly cause duplicates."
+msgstr "Nazwa słownika w którym znajduje się wyrażenie. To będzie słownik dla któregokolwiek wyrażenia pola \"Taksonomia: wyrażenie\"; i może powodować powstawanie duplikatów."
+
+#: modules/taxonomy.views.inc:62
+msgid "Vocabulary ID"
+msgstr "ID Słownika (Vocabluary ID)"
+
+#: modules/taxonomy.views.inc:63
+msgid "The taxonomy vocabulary ID"
+msgstr "ID słownika w taksonomi"
+
+#: modules/taxonomy.views.inc:76;107
+msgid "Term"
+msgstr "Wyrażenie"
+
+#: modules/taxonomy.views.inc:77
+msgid "Taxonomy terms are attached to nodes."
+msgstr "Wyrażenia Taxonomi dołączone do segmentów."
+
+#: modules/taxonomy.views.inc:108
+msgid "Taxonomy terms. Note that using this can cause duplicate nodes to appear in views; you must add filters to reduce the resultset."
+msgstr "Wyrażenia z taksonomi. Uwaga może to powodować duplikaty segmentów pojawiające się w widokach; Musisz dodać filtry by zredukować ilość wyników tamże."
+
+#: modules/taxonomy.views.inc:118
+msgid "Taxonomy term name"
+msgstr "Nazwa wyrażenia w taxonomi"
+
+#: modules/taxonomy.views.inc:127
+msgid "The term weight field"
+msgstr "Pole wagi wyrażenia"
+
+#: modules/taxonomy.views.inc:139
+msgid "Term description"
+msgstr "Opis wyrażenia"
+
+#: modules/taxonomy.views.inc:140
+msgid "The description associated with a taxonomy term."
+msgstr "Opis powiązany z wyrażeniem taxonomi."
+
+#: modules/taxonomy.views.inc:151;763
+msgid "Vocabulary"
+msgstr "Słownik"
+
+#: modules/taxonomy.views.inc:152
+msgid "Filter the results of \"Taxonomy: Term\" to a particular vocabulary."
+msgstr "Ogranicza wyniki \"Taksonomia: wyrażenie\" do konkretnego słownika."
+
+#: modules/taxonomy.views.inc:193;1046
+msgid "Term ID"
+msgstr "ID Wyrażenia"
+
+#: modules/taxonomy.views.inc:194
+msgid "The taxonomy term ID"
+msgstr "ID wyrażenia w taxonomi"
+
+#: modules/taxonomy.views.inc:196
+msgid "All terms"
+msgstr "Wszystkie wyrażenia"
+
+#: modules/taxonomy.views.inc:197
+msgid "Display all taxonomy terms associated with a node."
+msgstr "Wyświetl wszystkie wyrażenia Taxonomi powiązane z segmentem."
+
+#: modules/taxonomy.views.inc:282
+msgid "Term synonym"
+msgstr "Synonim wyrażenia"
+
+#: modules/taxonomy.views.inc:283
+msgid "Term synonyms may be used to find terms by alternate names."
+msgstr "Synonimy mogą być używane do znajdowania wyrażenia jako alternatywa."
+
+#: modules/taxonomy.views.inc:299
+msgid "Term ID (with depth)"
+msgstr "ID Wyrażenia (z głębokością)"
+
+#: modules/taxonomy.views.inc:300
+msgid "The depth filter is more complex, so provides fewer options."
+msgstr "Filtr głębokości jest bardziej kompleksowy (complex), dlatego udostępnia mniej opcji."
+
+#: modules/taxonomy.views.inc:310
+msgid "Term ID depth modifier"
+msgstr "Modyfikator głębokości Identyfikatora wyrażenia"
+
+#: modules/taxonomy.views.inc:311
+msgid "Allows the \"depth\" for Taxonomy: Term ID (with depth) to be modified via an additional argument."
+msgstr "Zezwala na modyfikowanie \"głębokość\" dla Taksonomi: ID wyrażenia (z głębokością) poprzez dodatkowy argument."
+
+#: modules/taxonomy.views.inc:341
+msgid "The depth will match nodes tagged with terms in the hierarchy. For example, if you have the term \"fruit\" and a child term \"apple\", with a depth of 1 (or higher) then filtering for the term \"fruit\" will get nodes that are tagged with \"apple\" as well as \"fruit\". If negative, the reverse is true; searching for \"apple\" will also pick up nodes tagged with \"fruit\" if depth is -1 (or lower)."
+msgstr "Głębokość dopasuje segmenty oznaczone w hierarchi. Na przykład, jeśli masz wyrażenie \"owoc\" i jego dziecko - wyrażenie \"jabłko\", z głębokością 1 (lub wyższą) wtedy filtrowanie dla wyrażenia \"owoc\" zbierze razem segmenty oznaczone zarówno jako \"jabłko\" jak i \"owoc\". Działa to również w drugą stronę; jeśli głębokość jest -1 (lub niższa) szukając \"jabłko\" zbierzemy razem segmenty oznaczone jako \"owoc\" "
+
+#: modules/taxonomy.views.inc:346
+msgid "Allow multiple terms per argument"
+msgstr "Pozwól na wiele wyrażeń przypadających na argument"
+
+#: modules/taxonomy.views.inc:347
+msgid "If selected, users can enter multiple arguments in the form of 1+2+3. Due to the number of JOINs it would require, AND will be treated as OR with this argument."
+msgstr "Gdy zaznaczone, użytkownicy będą mogli wprowadzać wiele argumentów w postaci 1+2+3. W związku z wymaganą przez to liczbą złączeń (JOINs), \"'oraz\" (AND) będą traktowane jako \"lub\" (OR)."
+
+#: modules/taxonomy.views.inc:353;978
+msgid "Set the breadcrumb for the term parents"
+msgstr " Ustaw trop dla wyrażeń nadrzędnych"
+
+#: modules/taxonomy.views.inc:354;979
+msgid "If selected, the breadcrumb trail will include all parent terms, each one linking to this view. Note that this only works if just one term was received."
+msgstr "Jeśli zaznaczone, trop będzie zawierał wszystkie wyrażenia nadrzędne (parents), każde odnoszące się do tego widoku. Uwaga, działa gdy otrzymano tylko jedno wyrażenie."
+
+#: modules/taxonomy.views.inc:440;685
+msgid "No name"
+msgstr "Brak nazwy"
+
+#: modules/taxonomy.views.inc:551
+msgid "Link this field to its term page"
+msgstr "Podlinkuj to pole do jego strony wyrażeń"
+
+#: modules/taxonomy.views.inc:558
+msgid "Limit terms by vocabulary"
+msgstr "Ogranicz wyrażenia do słownika"
+
+#: modules/taxonomy.views.inc:572;1034
+msgid "Vocabularies"
+msgstr "Słowniki"
+
+#: modules/taxonomy.views.inc:645
+msgid "Link this field to its taxonomy term page"
+msgstr "Odnosnik do strony z listą wyrażeń taksonomi"
+
+#: modules/taxonomy.views.inc:721
+msgid "No vocabulary"
+msgstr "Brak słownika"
+
+#: modules/taxonomy.views.inc:765
+msgid "Select which vocabulary to show terms for in the regular options."
+msgstr "Wybierz, który ze słowników ma wyświetlać wyrażenia"
+
+#: modules/taxonomy.views.inc:775
+msgid "Selection type"
+msgstr "Typ wyboru"
+
+#: modules/taxonomy.views.inc:776
+msgid "Dropdown"
+msgstr "Rozwiń"
+
+#: modules/taxonomy.views.inc:776
+msgid "Autocomplete"
+msgstr "Autouzupełnianie"
+
+#: modules/taxonomy.views.inc:782
+msgid "Show hierarchy in dropdown"
+msgstr "Pokaż hierarchie jako menu rozwijane."
+
+#: modules/taxonomy.views.inc:799
+msgid "An invalid vocabulary is selected. Please change it in the options."
+msgstr "Wybrano niewłaściwy słownik. Wybierz inny."
+
+#: modules/taxonomy.views.inc:817;851
+msgid "Select terms from vocabulary @voc"
+msgstr "Wybierz wyrażenia ze słownika @voc "
+
+#: modules/taxonomy.views.inc:1012
+msgid "Taxonomy term"
+msgstr "Wyrażenia taksonomi"
+
+#: modules/taxonomy.views.inc:1037
+msgid "If you wish to validate for specific vocabularies, check them; if none are checked, all nodes will pass."
+msgstr "Jeśli chcesz sprawdzać poprawność dla określonych słowników - zaznacz; jeśli nie, nie zaznaczaj, wtedy wszystkie segmenty będą sprawdzane."
+
+#: modules/taxonomy.views.inc:1047
+msgid "Term IDs separated by , or +"
+msgstr "ID wrażeń oddzielone , lub +"
+
+#: modules/taxonomy.views.inc:1048
+msgid "Term name or synonym"
+msgstr "Nazwa wyrazenia lub synonim"
+
+#: modules/taxonomy.views.inc:1049
+msgid "Term name/synonym converted to Term ID"
+msgstr "Wyrażenie/synonim skonwertowany do ID Wyrażenia (Term ID)"
+
+#: modules/taxonomy.views.inc:1052
+msgid "Select the form of this argument; if using term name, it is generally more efficient to convert it to a term ID and use Taxonomy: Term ID rather than Taxonomy: Term Name\" as an argument."
+msgstr " "
+
+#: modules/taxonomy.views.inc:937
+msgid "Unable to find term: @terms"
+msgid_plural "Unable to find terms: @terms"
+msgstr[0] "Nie znaleziono wyrażenia: @terms"
+msgstr[1] "Nie znaleziono wyrażeń: @terms"
+msgstr[2] "Nie znaleziono wyrażeń: @terms"
+
+#: modules/upload.views.inc:25
+msgid "Upload"
+msgstr "Dodaj plik"
+
+#: modules/upload.views.inc:49
+msgid "The description of the uploaded file."
+msgstr "Opis wgranego pliku."
+
+#: modules/upload.views.inc:66
+msgid "Listed"
+msgstr "Wylistowany"
+
+#: modules/upload.views.inc:67
+msgid "Whether or not the file is marked to be listed."
+msgstr "Czy pliki mają być wylistowane czy też nie."
+
+#: modules/upload.views.inc:83
+msgid "The weight, used for sorting."
+msgstr "Waga użytego sortowania."
+
+#: modules/upload.views.inc:101;113
+msgid "Attached files"
+msgstr "Dołączone pliki"
+
+#: modules/upload.views.inc:102
+msgid "All files attached to a node with upload.module."
+msgstr "Wszystkie pliki dołączone do segmentu z upload.module."
+
+#: modules/upload.views.inc:109;274
+msgid "Has attached files"
+msgstr "Ma dołączone pliki"
+
+#: modules/upload.views.inc:110
+msgid "Only display items with attached files. This can cause duplicates if there are multiple attached files."
+msgstr "Wyświetla tylko elementy z dołączonymi plikami. To może powodować powstawanie duplikatów jeśli jest wiele dołączonych plików."
+
+#: modules/upload.views.inc:114
+msgid "Add a relationship to gain access to more file data for files uploaded by upload.module. Note that this relationship will cause duplicate nodes if there are multiple files attached to the node."
+msgstr "Dodaj zależności zyskujące dostęp do plików danych załadowanych przez upload.module. Uwaga, ta zalezność może spowodować pojawienie się duplikatów wielu plików dołączonych do segmentu."
+
+#: modules/upload.views.inc:120
+msgid "Files"
+msgstr "Pliki"
+
+#: modules/upload.views.inc:151
+msgid "Only show \"listed\" file attachments"
+msgstr "Pokazuj tylko załączniki \"listed\""
+
+#: modules/user.views.inc:28
+msgid "Users who have created accounts on your site."
+msgstr "Użytkownicy którzy założyli konto na Twojej witrynie."
+
+#: modules/user.views.inc:48
+msgid "Uid"
+msgstr "Uid"
+
+#: modules/user.views.inc:49
+msgid "The user ID"
+msgstr "ID użytkownika"
+
+#: modules/user.views.inc:70
+msgid "Current"
+msgstr "Bieżący"
+
+#: modules/user.views.inc:71
+msgid "Filter the view to the currently logged in user."
+msgstr "Filtr do przeglądania obecnie zalogowanych użytkowników."
+
+#: modules/user.views.inc:80
+msgid "The user or author name."
+msgstr "Użytkownik lub dane autora"
+
+#: modules/user.views.inc:96
+msgid "E-mail"
+msgstr "E-mail"
+
+#: modules/user.views.inc:97
+msgid "Email address for a given user. Only accessible to users with administer users permission"
+msgstr "Adres e-mail dla danego użytkownika. Dostępne tylko dla użytkowników z prawami administratora."
+
+#: modules/user.views.inc:114
+msgid "Picture"
+msgstr "Obraz"
+
+#: modules/user.views.inc:115
+msgid "The user's picture, if allowed."
+msgstr "Obrzy użytkownika, jeśli dozwolone."
+
+#: modules/user.views.inc:126
+msgid "The date the user was created."
+msgstr "Data stworzenia użytkownika."
+
+#: modules/user.views.inc:141
+msgid "Last access"
+msgstr "Ostatni dostęp"
+
+#: modules/user.views.inc:142
+msgid "The user's last access date."
+msgstr "Data ostatniego dostępu użytkownika."
+
+#: modules/user.views.inc:157
+msgid "Last login"
+msgstr "Ostatni login"
+
+#: modules/user.views.inc:158
+msgid "The user's last login date."
+msgstr "Data ostatniego loginu użytkownika."
+
+#: modules/user.views.inc:174
+msgid "Whether a user is active or blocked."
+msgstr "Czy użytkownik jest aktywny, czy zablokowany."
+
+#: modules/user.views.inc:191
+msgid "Signature"
+msgstr "Podpis"
+
+#: modules/user.views.inc:192
+msgid "The user's signature."
+msgstr "Podpis użytkownika"
+
+#: modules/user.views.inc:205
+msgid "Provide a simple link to edit the user."
+msgstr "Dostarcza prosty odnośnik do edycji użytkownika."
+
+#: modules/user.views.inc:213
+msgid "Provide a simple link to delete the user."
+msgstr "Dostarcza prosty odnośnik do usunięcia użytkownika."
+
+#: modules/user.views.inc:242
+msgid "Roles"
+msgstr "Role"
+
+#: modules/user.views.inc:243
+msgid "Roles that a user belongs to."
+msgstr "Role do których należy użytkownik"
+
+#: modules/user.views.inc:255
+msgid "No role"
+msgstr "Brak roli"
+
+#: modules/user.views.inc:306
+msgid "User ID from URL"
+msgstr "ID użytkownika z URL"
+
+#: modules/user.views.inc:322
+msgid "Also look for a node and use the node author"
+msgstr "Patrz również na segment i użyj jego autora."
+
+#: modules/user.views.inc:387
+msgid "Link this field to its user"
+msgstr "Podlinkuj to pole do użytkownika"
+
+#: modules/user.views.inc:520
+msgid "Link this field"
+msgstr "Podlinkuj to pole"
+
+#: modules/user.views.inc:523
+msgid "No link"
+msgstr "Brak odnośnika"
+
+#: modules/user.views.inc:524
+msgid "To the user"
+msgstr "Dla użytkownika"
+
+#: modules/user.views.inc:525
+msgid "With a mailto:"
+msgstr "Z \"wyślij do:\" (mailto:)"
+
+#: modules/user.views.inc:643
+msgid "Usernames"
+msgstr "Lista użytkowników"
+
+#: modules/user.views.inc:644
+msgid "Enter a comma separated list of user names."
+msgstr "Wprowadź liste użytkowników oddzieloną przecinkami."
+
+#: modules/user.views.inc:752
+msgid "Is the logged in user"
+msgstr "Zalogowany użytkownik"
+
+#: modules/user.views.inc:710
+msgid "Unable to find user: @users"
+msgid_plural "Unable to find users: @users"
+msgstr[0] "Nie mogę znaleźć użytkownika: @users"
+msgstr[1] "Nie mogę znaleźć użytkowników: @users"
+msgstr[2] "Nie mogę znaleźć użytkowników: @users"
+
+#: modules/views.views.inc:18
+msgid "Global"
+msgstr "Globalne"
+
+#: modules/views.views.inc:23
+msgid "Random"
+msgstr "Losowy"
+
+#: modules/views.views.inc:24
+msgid "Randomize the display order."
+msgstr "Losowa kolejność wyświetlania."
+
+#: modules/views.views.inc:31
+msgid "Null"
+msgstr "Null"
+
+#: modules/views.views.inc:32
+msgid "Allow an argument to be ignored. The query will not be altered by this argument."
+msgstr "Zezwól na ignorowanie argumentu. Ten argument nie będzie miał wpływu na zapytanie."
+
+#: modules/views.views.inc:88
+msgid "Fail basic validation if any argument is given"
+msgstr "Zawodzi podstawowe sprawdzanie poprawności jeśli podamy jakikolwiek argument."
+
+#: modules/views.views.inc:90
+msgid "By checking this field, you can use this to make sure views with more arguments than necessary fail validation."
+msgstr "Zaznaczając to pole, używając tego możesz wymusić błąd poprawności dla widoków z większą niż wymaganą liczbą argumentów."
+
+#: theme/views-more.tpl.php:15
+msgid "more"
+msgstr "więcej"
+
+#: theme/views-ui-edit-item.tpl.php:18
+msgid "None defined"
+msgstr "Niezdefiniowane"
+
+#: theme/views-ui-edit-tab.tpl.php:31
+msgid "View settings"
+msgstr "Ustawienia widoków"
+
+#: theme/views-ui-edit-view.tpl.php:11
+msgid "This view is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to !break."
+msgstr "Ten widok jest edytowany przez !user, dlatego nikt inny w tej chwili nie może go edytować. Blokadę założono !age temu. Kliknij !break aby zlikwidować blokadę."
+
+#: theme/views-ui-edit-view.tpl.php:16
+msgid "New view"
+msgstr "Nowy widok"
+
+#: theme/views-ui-edit-view.tpl.php:18
+msgid "Changed view"
+msgstr "Zmień widok"
+
+#: theme/views-ui-edit-view.tpl.php:23
+msgid "View %name, displaying items of type @base."
+msgstr "Widok %name, wyświetlający typy elementów @base."
+
+#: theme/views-ui-edit-view.tpl.php:42
+msgid "Live preview"
+msgstr "Podgląd"
+
+#: theme/views-ui-list-views.tpl.php:17
+msgid "@type @base view: @view"
+msgstr "@type @base widok: @view"
+
+#: theme/views-ui-list-views.tpl.php:27
+msgid "Title: @title"
+msgstr "Tytuł: @title"
+
+#: theme/views-ui-list-views.tpl.php:30
+msgid "Path: !path"
+msgstr "Śćiezka: !path"
+
+#: theme/theme.inc:90
+msgid "Edit this view"
+msgstr "Edytuj widok"
+
+#: theme/theme.inc:289
+msgid "sort by @s"
+msgstr "Sortuj po @s"
+
+#: theme/theme.inc:490
+msgid "‹‹"
+msgstr "‹‹"
+
+#: theme/theme.inc:491
+msgid "››"
+msgstr "››"
+
+#: theme/theme.inc:501
+msgid "@current of @max"
+msgstr "@current z @max"
+
+#: views_export/views_export.module:76
+msgid "There are no views to be exported at this time."
+msgstr "W tym momencie nie ma widoków do eksportu."
+
+#: views_export/views_export.module:108
+msgid "Show only these tags"
+msgstr "Pokazuj tylko te tagi"
+
+#: views_export/views_export.module:122
+msgid "Module name"
+msgstr "Nazwa modułu"
+
+#: views_export/views_export.module:123
+msgid "Enter the module name to export code to."
+msgstr "Wprowadź nazwe modułu dla którego kod ma byś wyeksportowany."
+
+#: views_export/views_export.module:190
+msgid "Put this in @module.views_default.inc in your modules/@module directory or modules/@module/includes directory"
+msgstr "Umieść @module.views_default.inc w swoim katalogu modules/@module lub modules/@module/includes"
+
+#: views_export/views_export.module:44
+msgid "use views exporter"
+msgstr "Użyj eksportera widoków"
+
+#: views_export/views_export.module:17
+msgid "Bulk export"
+msgstr "Hurtowy eksport"
+
+#: views_export/views_export.module:0
+msgid "views_export"
+msgstr "views_export"
+
+#: views_export/views_export.info:0
+msgid "Views exporter"
+msgstr "Eksporter Widoków"
+
+#: views_export/views_export.info:0
+msgid "Allows exporting multiple views at once."
+msgstr "Zezwala na eksportowanie wielu widoków na raz"
+
Index: sites/all/modules/views/translations/uk.po
===================================================================
--- sites/all/modules/views/translations/uk.po (.../trunk) (revision 0)
+++ sites/all/modules/views/translations/uk.po (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,4909 @@
+# $Id: uk.po,v 1.4 2009/05/25 11:10:06 podarok Exp $
+#
+# Ukrainian translation of Drupal (general)
+# Copyright YEAR NAME
+# Generated from files:
+# views.module,v 1.332 2009/04/08 16:11:51 merlinofchaos
+# admin.inc,v 1.154 2009/04/07 20:48:28 merlinofchaos
+# views_ui.module,v 1.109 2009/01/30 00:56:01 merlinofchaos
+# views_export.module,v 1.4 2009/04/08 16:11:51 merlinofchaos
+# views.info,v 1.7 2007/08/12 06:52:14 merlinofchaos
+# views_ui.info,v 1.10 2008/01/09 00:05:08 merlinofchaos
+# views_export.info,v 1.1 2008/06/12 16:17:25 merlinofchaos
+# plugins.inc,v 1.152 2009/01/07 23:31:12 merlinofchaos
+# convert.inc,v 1.14 2009/04/07 23:21:00 merlinofchaos
+# theme.inc,v 1.72 2009/04/08 04:24:52 merlinofchaos
+# docs.php,v 1.13 2009/02/06 21:56:36 merlinofchaos
+# node.views.inc,v 1.93 2009/04/08 20:54:57 merlinofchaos
+# upload.views.inc,v 1.15 2008/11/24 19:58:31 merlinofchaos
+# views_handler_argument.inc,v 1.7 2009/02/20 20:12:38 merlinofchaos
+# views_handler_relationship_translation.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos
+# aggregator.views.inc,v 1.2 2009/04/07 23:07:31 merlinofchaos
+# comment.views.inc,v 1.32 2009/04/08 06:38:41 merlinofchaos
+# views_plugin_display.inc,v 1.20 2009/04/07 22:48:04 merlinofchaos
+# views_plugin_display_page.inc,v 1.5 2009/01/27 18:40:31 merlinofchaos
+# views_handler_field.inc,v 1.14 2009/04/08 05:23:56 merlinofchaos
+# views_handler_filter.inc,v 1.6 2009/04/07 23:05:29 merlinofchaos
+# views_handler_relationship.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_sort.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_argument_date.inc,v 1.3 2009/03/24 22:28:26 merlinofchaos
+# views_handler_argument_many_to_one.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_argument_numeric.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_argument_string.inc,v 1.4 2009/01/07 21:30:31 merlinofchaos
+# taxonomy.views.inc,v 1.50 2009/01/08 00:36:02 merlinofchaos
+# views_handler_argument_null.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# view.inc,v 1.151 2009/02/18 01:41:34 merlinofchaos
+# views_handler_field_boolean.inc,v 1.2 2009/01/30 00:01:41 merlinofchaos
+# views_handler_filter_boolean_operator.inc,v 1.3 2008/11/24 19:58:30 merlinofchaos
+# views_handler_filter_in_operator.inc,v 1.6 2009/01/31 19:38:59 merlinofchaos
+# views_handler_filter_node_tnid.inc,v 1.1 2008/12/02 16:34:24 merlinofchaos
+# views_plugin_display_attachment.inc,v 1.3 2009/01/06 04:45:39 merlinofchaos
+# views_handler_field_date.inc,v 1.2 2009/02/21 23:36:42 merlinofchaos
+# views_handler_field_numeric.inc,v 1.5 2009/04/07 22:59:14 merlinofchaos
+# views_handler_field_prerender_list.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_plugin_row_aggregator_rss.inc,v 1.1 2009/01/07 19:38:08 merlinofchaos
+# views_plugin_row_node_rss.inc,v 1.6 2009/04/07 22:02:40 merlinofchaos
+# views_plugin_style_list.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_row_fields.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_style_summary_unformatted.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_url.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_field_aggregator_title_link.inc,v 1.1 2009/01/07 19:38:08 merlinofchaos
+# views_handler_field_accesslog_path.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_filter_numeric.inc,v 1.7 2009/03/25 17:29:33 merlinofchaos
+# views_handler_filter_string.inc,v 1.7 2009/01/27 20:40:29 merlinofchaos
+# views_handler_filter_date.inc,v 1.3 2008/11/26 19:01:44 merlinofchaos
+# views_handler_filter_equality.inc,v 1.2 2008/09/10 01:08:06 merlinofchaos
+# views_handler_filter_many_to_one.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# system.views.inc,v 1.7 2008/09/03 19:21:29 merlinofchaos
+# views_plugin_access.inc,v 1.1 2008/09/08 22:50:17 merlinofchaos
+# views_handler_field_search_score.inc,v 1.2 2009/02/23 23:30:38 merlinofchaos
+# views_plugin_style_table.inc,v 1.5 2008/10/15 22:25:36 merlinofchaos
+# views_handler_sort_date.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_handler_sort_formula.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos
+# views_plugin_style.inc,v 1.5 2009/03/24 22:22:11 merlinofchaos
+# user.views.inc,v 1.56 2009/02/06 20:54:53 merlinofchaos
+# statistics.views.inc,v 1.9 2008/10/28 20:21:37 merlinofchaos
+# views_plugin_display_block.inc,v 1.2 2008/11/19 19:50:54 merlinofchaos
+# views_plugin_display_feed.inc,v 1.3 2008/09/30 18:52:15 merlinofchaos
+# book.views.inc,v 1.5 2008/12/02 19:37:08 merlinofchaos
+# views_plugin_row.inc,v 1.3 2009/04/11 17:18:58 merlinofchaos
+# ajax.inc,v 1.19 2008/09/22 20:50:58 merlinofchaos
+# analyze.inc,v 1.1 2008/10/28 22:50:00 merlinofchaos
+# form.inc,v 1.10 2008/06/25 21:10:10 merlinofchaos
+# handlers.inc,v 1.109 2009/04/10 20:22:54 merlinofchaos
+# views_plugin_access_role.inc,v 1.2 2009/01/07 23:31:13 merlinofchaos
+# views_plugin_access_perm.inc,v 1.3 2009/01/07 23:31:13 merlinofchaos
+# ajax.js,v 1.25 2009/03/24 23:03:32 merlinofchaos
+# ajax_view.js,v 1.17 2009/03/25 00:11:25 merlinofchaos
+# tabs.js,v 1.3 2008/03/30 15:58:26 merlinofchaos
+# views_handler_argument_term_node_tid_depth.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# locale.views.inc,v 1.1 2009/02/23 22:20:04 merlinofchaos
+# views_handler_filter_locale_group.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# views_handler_filter_locale_version.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# translation.views.inc,v 1.8 2009/01/07 23:13:46 merlinofchaos
+# views_handler_filter_locale_language.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# views_handler_filter_node_language.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos
+# views_plugin_row_node_view.inc,v 1.3 2009/04/08 20:54:58 merlinofchaos
+# poll.views.inc,v 1.4 2008/12/03 19:10:21 merlinofchaos
+# profile.views.inc,v 1.9 2008/09/24 21:21:21 merlinofchaos
+# search.views.inc,v 1.17 2009/02/23 23:30:38 merlinofchaos
+# views_plugin_argument_validate_taxonomy_term.inc,v 1.4 2009/04/08 05:10:07 merlinofchaos
+# views_handler_filter_term_node_tid.inc,v 1.8 2009/04/07 23:21:01 merlinofchaos
+# views_handler_filter_upload_fid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views.views.inc,v 1.6 2009/01/30 00:01:41 merlinofchaos
+# views_handler_argument_comment_user_uid.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_argument_user_uid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_comment.inc,v 1.5 2009/02/10 20:37:49 merlinofchaos
+# views_handler_field_node_new_comments.inc,v 1.6 2009/04/07 23:02:07 merlinofchaos
+# views_handler_field_node.inc,v 1.3 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_file.inc,v 1.3 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_taxonomy.inc,v 1.3 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_user.inc,v 1.3 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_comment_link.inc,v 1.2 2008/09/10 00:16:14 merlinofchaos
+# views_handler_field_locale_link_edit.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# views_handler_field_node_link.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_user_link.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_comment_link_delete.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_node_link_delete.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_node_revision_link_delete.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_user_link_delete.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_comment_link_edit.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_node_link_edit.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_user_link_edit.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_comment_link_reply.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_comment_node_link.inc,v 1.1 2009/04/08 06:38:41 merlinofchaos
+# views_handler_field_comment_username.inc,v 1.2 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_node_comment.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_filter_node_comment.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_plugin_row_comment_view.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_argument_locale_group.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# views_handler_argument_locale_language.inc,v 1.1 2009/02/20 23:02:09 merlinofchaos
+# views_handler_argument_node_language.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_argument_node_language.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos
+# views_handler_argument_dates_various.inc,v 1.4 2009/01/08 00:25:19 merlinofchaos
+# views_handler_argument_node_type.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_history_user_timestamp.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_field_node_revision_link_revert.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_filter_node_type.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_plugin_argument_validate_node.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos
+# views_handler_filter_search.inc,v 1.5 2009/04/10 19:32:19 merlinofchaos
+# views_plugin_row_search_view.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_argument_file_fid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_upload_description.inc,v 1.3 2009/01/30 00:01:42 merlinofchaos
+# views_handler_field_upload_fid.inc,v 1.6 2009/04/07 22:48:03 merlinofchaos
+# views_handler_argument_taxonomy.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_argument_term_node_tid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_argument_vocabulary_vid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_term_node_tid.inc,v 1.3 2009/04/07 22:02:40 merlinofchaos
+# views_handler_field_user_mail.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_field_user_name.inc,v 1.2 2009/02/05 04:31:15 merlinofchaos
+# views_handler_filter_user_current.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_handler_filter_user_name.inc,v 1.2 2008/09/22 23:41:14 merlinofchaos
+# views_plugin_argument_default_user.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_argument_validate_user.inc,v 1.2 2009/02/17 23:32:33 merlinofchaos
+# views_plugin_access_none.inc,v 1.1 2008/09/08 22:50:17 merlinofchaos
+# views_plugin_argument_default.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_argument_default_php.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_argument_validate.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_argument_validate_php.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_style_summary.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_style_grid.inc,v 1.1 2008/09/03 19:21:30 merlinofchaos
+# views_plugin_style_rss.inc,v 1.2 2008/12/02 00:02:06 merlinofchaos
+# views-more.tpl.php,v 1.2 2008/04/11 08:46:26 merlinofchaos
+# views-ui-edit-item.tpl.php,v 1.9 2008/08/08 16:57:44 merlinofchaos
+# views-ui-edit-tab.tpl.php,v 1.11 2008/08/08 16:57:44 merlinofchaos
+# views-ui-edit-view.tpl.php,v 1.10 2009/04/07 23:05:29 merlinofchaos
+# views-ui-list-views.tpl.php,v 1.6 2008/10/28 18:11:43 merlinofchaos
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: views uk Ukrainian Translation\n"
+"POT-Creation-Date: 2009-05-25 13:53+0300\n"
+"PO-Revision-Date: 2009-05-25 13:55+0200\n"
+"Last-Translator: podarok \n"
+"Language-Team: uk \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=((((n%10)==1)&&((n%100)!=11))?(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));\n"
+"X-Poedit-Language: Ukrainian\n"
+"X-Poedit-Country: UKRAINE\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: views.module:644
+msgid "Broken handler @table.@field"
+msgstr "Втрачено handler @table.@field"
+
+#: views.module:762
+msgid "Skipping broken view @view"
+msgstr "Пропущено поломаний view @view"
+
+#: views.module:814;854
+#: includes/admin.inc:114;232;232;646
+msgid "Overridden"
+msgstr "Пріоритетно"
+
+#: views.module:817;850
+#: views_ui.module:282
+#: includes/admin.inc:113;231;231;613;794
+msgid "Default"
+msgstr "Стандартний (default)"
+
+#: views.module:964
+#: includes/admin.inc:311
+#: views_export/views_export.module:117
+msgid "Apply"
+msgstr "Застосувати"
+
+#: views.module:146
+msgid "access all views"
+msgstr "доступ до всіх виглядів"
+
+#: views.module:146
+msgid "administer views"
+msgstr "адмініструвати вигляди"
+
+#: views.module:158
+#: views_ui.module:26
+#: views.info:0;0
+#: views_ui.info:0
+#: views_export/views_export.info:0
+msgid "Views"
+msgstr "Views"
+
+#: views.module:162
+msgid "Ajax callback for view loading."
+msgstr "Ajax callback для завантаження view."
+
+#: views.module:0
+msgid "views"
+msgstr "views"
+
+#: views_ui.module:159
+msgid "The converter will make a best-effort attempt to convert a Views 1 view to Views 2. This conversion is not reliable; you will very likely have to make adjustments to your view to get it to match. You can import Views 1 views through the normal Import tab."
+msgstr ""
+
+#: views_ui.module:258
+msgid "Changes cannot be made to a locked view."
+msgstr "Зміни не можуть бути зроблені до заблокованого вигляду."
+
+#: views_ui.module:28
+msgid "Views are customized lists of content on your system; they are highly configurable and give you control over how lists of content are presented."
+msgstr ""
+
+#: views_ui.module:32
+#: includes/plugins.inc:135
+msgid "List"
+msgstr "Список"
+
+#: views_ui.module:38
+#: includes/admin.inc:1206;1206;2193
+msgid "Add"
+msgstr "Додати"
+
+#: views_ui.module:43
+#: includes/admin.inc:752
+msgid "Import"
+msgstr "Імпортувати"
+
+#: views_ui.module:49
+msgid "Tools"
+msgstr "Утиліти"
+
+#: views_ui.module:55
+msgid "Basic"
+msgstr "Базовий"
+
+#: views_ui.module:63
+#: includes/convert.inc:30
+msgid "Convert"
+msgstr "Конвертування"
+
+#: views_ui.module:64
+msgid "Convert stored Views 1 views."
+msgstr "Конвертувати збережений View 1 view."
+
+#: views_ui.module:70;83;88
+msgid "Delete view"
+msgstr "Стерти view"
+
+#: views_ui.module:76
+msgid "Convert view"
+msgstr "Конвертація view"
+
+#: views_ui.module:113
+#: includes/admin.inc:109
+#: theme/theme.inc:91
+msgid "Edit"
+msgstr "Редагувати"
+
+#: views_ui.module:0
+msgid "views_ui"
+msgstr "views_ui"
+
+#: views.info:0
+msgid "Create customized lists and queries from your database."
+msgstr "Створення видозмінених виглядів і запитів з Вашої Бази Даних"
+
+#: views_ui.info:0
+msgid "Views UI"
+msgstr "Views UI"
+
+#: views_ui.info:0
+msgid "Administrative interface to views. Without this module, you cannot create or edit your views."
+msgstr "Адміністративний інтерфейс для виглядів. Без цього модуля Ви не зможете створювати або змінювати Ваші вигляди."
+
+#: docs/docs.php:90;97
+msgid "Example table"
+msgstr "Таблиця приклад"
+
+#: docs/docs.php:98
+msgid "Example table contains example content and can be related to nodes."
+msgstr "Таблиця прикладів відображає варіанти і може бути застосована для матеріалів."
+
+#: docs/docs.php:122
+msgid "Example content"
+msgstr "Матеріал приклад"
+
+#: docs/docs.php:123
+msgid "Some example content that references a node."
+msgstr "Деякі приклади, пов'язані з матеріалами"
+
+#: docs/docs.php:131
+msgid "Example node"
+msgstr "Матеріал приклад"
+
+#: docs/docs.php:137
+msgid "Plain text field"
+msgstr "Поле чистого тексту"
+
+#: docs/docs.php:138
+msgid "Just a plain text field."
+msgstr "Просто поле з просто текстом."
+
+#: docs/docs.php:156
+msgid "Numeric field"
+msgstr "Цифрове поле"
+
+#: docs/docs.php:157
+msgid "Just a numeric field."
+msgstr "Просто поле з просто цифр."
+
+#: docs/docs.php:172
+msgid "Boolean field"
+msgstr "Булеве поле"
+
+#: docs/docs.php:173
+msgid "Just an on/off field."
+msgstr "Просто поле так/ні, 1/0, ввімкнено/вимкнено"
+
+#: docs/docs.php:180
+#: modules/node.views.inc:159;167
+#: modules/upload.views.inc:82
+msgid "Published"
+msgstr "Оприлюднений"
+
+#: docs/docs.php:190
+msgid "Timestamp field"
+msgstr "Поле моменту часу"
+
+#: docs/docs.php:191
+msgid "Just a timestamp field."
+msgstr "Просто поле для часу"
+
+#: docs/docs.php:262
+msgid "Emulates the default Drupal front page; you may set the default home page path to this view to make it your front page."
+msgstr "Емулює базову головну сторінку Друпал; Ви можете встановити базовою сторінкою сайту цей вигляд, щоб спробувати різні модифікації головної сторінки"
+
+#: docs/docs.php:263
+msgid "default"
+msgstr "за замовчуванням"
+
+#: docs/docs.php:272
+#: includes/plugins.inc:25
+msgid "Defaults"
+msgstr "Базове"
+
+#: docs/docs.php:361
+#: includes/plugins.inc:39;47
+msgid "Page"
+msgstr "Сторінка"
+
+#: docs/docs.php:416
+#: includes/plugins.inc:72;80
+msgid "Feed"
+msgstr "RSS стрічка"
+
+#: docs/docs.php:484
+msgid "Front page feed"
+msgstr "Стрічка головної сторінки"
+
+#: handlers/views_handler_argument.inc:102
+#: modules/translation/views_handler_relationship_translation.inc:23
+msgid "All"
+msgstr "Усе"
+
+#: handlers/views_handler_argument.inc:119
+#: includes/admin.inc:288;407
+#: modules/aggregator.views.inc:40;172
+#: modules/comment.views.inc:44
+#: modules/node.views.inc:85;417
+#: plugins/views_plugin_display.inc:592
+#: plugins/views_plugin_display_page.inc:291;375
+msgid "Title"
+msgstr "Назва"
+
+#: handlers/views_handler_argument.inc:121
+msgid "The title to use when this argument is present. It will override the title of the view and titles from previous arguments. You can use percent substitution here to replace with argument titles. Use \"%1\" for the first argument, \"%2\" for the second, etc."
+msgstr ""
+
+#: handlers/views_handler_argument.inc:134
+msgid "Action to take if argument is not present"
+msgstr ""
+
+#: handlers/views_handler_argument.inc:146
+msgid "Wildcard"
+msgstr "Джокер"
+
+#: handlers/views_handler_argument.inc:149
+msgid "If this value is received as an argument, the argument will be ignored; i.e, \"all values\""
+msgstr ""
+
+#: handlers/views_handler_argument.inc:155
+msgid "Wildcard title"
+msgstr "Джокер назви"
+
+#: handlers/views_handler_argument.inc:158
+msgid "The title to use for the wildcard in substitutions elsewhere."
+msgstr ""
+
+#: handlers/views_handler_argument.inc:181
+msgid "Validator options"
+msgstr "Параметри перевірки"
+
+#: handlers/views_handler_argument.inc:186
+msgid "Validator"
+msgstr "Перевірка"
+
+#: handlers/views_handler_argument.inc:190
+msgid ""
+msgstr "<Базова перевірка>"
+
+#: handlers/views_handler_argument.inc:229
+msgid "Action to take if argument does not validate"
+msgstr ""
+
+#: handlers/views_handler_argument.inc:248
+msgid "Display all values"
+msgstr "Показувати всі значення"
+
+#: handlers/views_handler_argument.inc:253
+msgid "Hide view / Page not found (404)"
+msgstr "Сховати вигляд / Сторінку не знайдено (404)"
+
+#: handlers/views_handler_argument.inc:258
+msgid "Display empty text"
+msgstr "Відображати пустий текст"
+
+#: handlers/views_handler_argument.inc:263
+msgid "Summary, sorted ascending"
+msgstr "Сумарно, сортування пряме"
+
+#: handlers/views_handler_argument.inc:270
+msgid "Summary, sorted descending"
+msgstr "Сумарно, сортування зворотнє"
+
+#: handlers/views_handler_argument.inc:277
+msgid "Provide default argument"
+msgstr "Вказати аргумент по замовчуванню"
+
+#: handlers/views_handler_argument.inc:310
+msgid "Provide default argument options"
+msgstr ""
+
+#: handlers/views_handler_argument.inc:320
+msgid "Default argument type"
+msgstr "Базовий тип аргумента"
+
+#: handlers/views_handler_argument.inc:744
+#: handlers/views_handler_field.inc:599
+#: handlers/views_handler_filter.inc:593
+#: handlers/views_handler_relationship.inc:133
+#: handlers/views_handler_sort.inc:66
+msgid "Broken/missing handler"
+msgstr ""
+
+#: handlers/views_handler_argument.inc:752
+#: handlers/views_handler_field.inc:607
+#: handlers/views_handler_filter.inc:601
+#: handlers/views_handler_relationship.inc:141
+#: handlers/views_handler_sort.inc:74
+msgid "The handler for this item is broken or missing and cannot be used. If a module provided the handler and was disabled, re-enabling the module may restore it. Otherwise, you should probably delete this item."
+msgstr ""
+
+#: handlers/views_handler_argument_date.inc:29
+msgid "Current date"
+msgstr "Теперішня дата"
+
+#: handlers/views_handler_argument_date.inc:30
+msgid "Current node's creation time"
+msgstr ""
+
+#: handlers/views_handler_argument_date.inc:31
+msgid "Current node's update time"
+msgstr ""
+
+#: handlers/views_handler_argument_many_to_one.inc:45
+#: handlers/views_handler_argument_numeric.inc:30
+msgid "Allow multiple terms per argument."
+msgstr "Дозволити багато термінів на аргумент"
+
+#: handlers/views_handler_argument_many_to_one.inc:46
+msgid "If selected, users can enter multiple arguments in the form of 1+2+3 (for OR) or 1,2,3 (for AND)."
+msgstr ""
+
+#: handlers/views_handler_argument_many_to_one.inc:53
+#: handlers/views_handler_argument_string.inc:95
+msgid "Allow multiple arguments to work together."
+msgstr "Дозволити багато аргументів в спільній роботі"
+
+#: handlers/views_handler_argument_many_to_one.inc:54
+#: handlers/views_handler_argument_string.inc:96
+msgid "If selected, multiple instances of this argument can work together, as though multiple terms were supplied to the same argument. This setting is not compatible with the \"Reduce duplicates\" setting."
+msgstr ""
+
+#: handlers/views_handler_argument_many_to_one.inc:60
+#: handlers/views_handler_argument_string.inc:102
+msgid "Do not display items with no value in summary"
+msgstr ""
+
+#: handlers/views_handler_argument_many_to_one.inc:95;109
+#: handlers/views_handler_argument_numeric.inc:45;57
+#: modules/taxonomy.views.inc:133;212;296
+msgid "Uncategorized"
+msgstr "Без категорії"
+
+#: handlers/views_handler_argument_many_to_one.inc:113
+#: handlers/views_handler_argument_numeric.inc:61
+msgid "Invalid input"
+msgstr "Некоректний ввід"
+
+#: handlers/views_handler_argument_null.inc:21
+msgid "Fail basic validation if any argument is given"
+msgstr ""
+
+#: handlers/views_handler_argument_null.inc:23
+msgid "By checking this field, you can use this to make sure views with more arguments than necessary fail validation."
+msgstr ""
+
+#: handlers/views_handler_argument_numeric.inc:31
+msgid "If selected, users can enter multiple arguments in the form of 1+2+3 or 1,2,3."
+msgstr ""
+
+#: handlers/views_handler_argument_numeric.inc:37
+msgid "Exclude the argument"
+msgstr "Пропук аргумента"
+
+#: handlers/views_handler_argument_numeric.inc:38
+msgid "If selected, the numbers entered in the argument will be excluded rather than limiting the view."
+msgstr ""
+
+#: handlers/views_handler_argument_string.inc:44
+msgid "Glossary mode"
+msgstr "Режим глосарію"
+
+#: handlers/views_handler_argument_string.inc:45
+msgid "Glossary mode applies a limit to the number of characters used in the argument, which allows the summary view to act as a glossary."
+msgstr ""
+
+#: handlers/views_handler_argument_string.inc:51
+msgid "Character limit"
+msgstr "Лімит символа"
+
+#: handlers/views_handler_argument_string.inc:52
+msgid "How many characters of the argument to filter against. If set to 1, all fields starting with the letter in the argument would be matched."
+msgstr ""
+
+#: handlers/views_handler_argument_string.inc:60
+msgid "Case"
+msgstr "Вибір"
+
+#: handlers/views_handler_argument_string.inc:61
+msgid "When printing the argument result, how to transform the case."
+msgstr ""
+
+#: handlers/views_handler_argument_string.inc:63;77
+msgid "No transform"
+msgstr "Без перетворення"
+
+#: handlers/views_handler_argument_string.inc:64;78
+msgid "Upper case"
+msgstr "Великі літери"
+
+#: handlers/views_handler_argument_string.inc:65;79
+msgid "Lower case"
+msgstr "Малі літери"
+
+#: handlers/views_handler_argument_string.inc:66;80
+msgid "Capitalize first letter"
+msgstr "Виправлення першої букви"
+
+#: handlers/views_handler_argument_string.inc:67;81
+msgid "Capitalize each word"
+msgstr "Виправлення першої літери в кожному слові"
+
+#: handlers/views_handler_argument_string.inc:74
+msgid "Case in path"
+msgstr "Вибір в шляху"
+
+#: handlers/views_handler_argument_string.inc:75
+msgid "When printing url paths, how to transform the of the argument. Do not use this unless with Postgres as it uses case sensitive comparisons."
+msgstr ""
+
+#: handlers/views_handler_argument_string.inc:88
+msgid "Transform spaces to dashes in URL"
+msgstr ""
+
+#: handlers/views_handler_field.inc:173
+#: handlers/views_handler_filter.inc:322
+#: handlers/views_handler_relationship.inc:78
+msgid "Label"
+msgstr "Заголовок"
+
+#: handlers/views_handler_field.inc:175
+msgid "The label for this field that will be displayed to end users if the style requires it."
+msgstr ""
+
+#: handlers/views_handler_field.inc:179
+msgid "Exclude from display"
+msgstr ""
+
+#: handlers/views_handler_field.inc:181
+msgid "Check this box to not display this field, but still load it in the view. Use this option to not show a grouping field in each record, or when doing advanced theming."
+msgstr ""
+
+#: handlers/views_handler_field.inc:188
+msgid "Rewrite the output of this field"
+msgstr ""
+
+#: handlers/views_handler_field.inc:189
+msgid "If checked, you can alter the output of this field by specifying a string of text with replacement tokens that can use any existing field output."
+msgstr ""
+
+#: handlers/views_handler_field.inc:194
+msgid "Text"
+msgstr "Текст"
+
+#: handlers/views_handler_field.inc:197
+msgid "The text to display for this field. You may include HTML. You may enter data from this view as per the \"Replacement patterns\" below."
+msgstr ""
+
+#: handlers/views_handler_field.inc:206
+msgid "Output this field as a link"
+msgstr "Вивід даного поля в вигляді посилання"
+
+#: handlers/views_handler_field.inc:207
+msgid "If checked, this field will be made into a link. The destination must be given below."
+msgstr ""
+
+#: handlers/views_handler_field.inc:211
+msgid "Link path"
+msgstr "Шлях посилання"
+
+#: handlers/views_handler_field.inc:214
+msgid "The Drupal path or absolute URL for this link. You may enter data from this view as per the \"Replacement patterns\" below."
+msgstr ""
+
+#: handlers/views_handler_field.inc:221
+msgid "Alt text"
+msgstr "Альтернативний текст"
+
+#: handlers/views_handler_field.inc:224
+msgid "Text to place as \"alt\" text which most browsers display as a tooltip when hovering over the link."
+msgstr ""
+
+#: handlers/views_handler_field.inc:231
+msgid "Prefix text"
+msgstr "Текст-префікс"
+
+#: handlers/views_handler_field.inc:234
+msgid "Any text to display before this link. You may include HTML."
+msgstr ""
+
+#: handlers/views_handler_field.inc:241
+msgid "Suffix text"
+msgstr "Текст-суфікс"
+
+#: handlers/views_handler_field.inc:244
+msgid "Any text to display after this link. You may include HTML."
+msgstr ""
+
+#: handlers/views_handler_field.inc:254
+#: includes/plugins.inc:173
+#: includes/view.inc:1911
+msgid "Fields"
+msgstr "Поля"
+
+#: handlers/views_handler_field.inc:262
+#: includes/admin.inc:491
+#: includes/view.inc:1918
+msgid "Arguments"
+msgstr "Аргументи"
+
+#: handlers/views_handler_field.inc:266
+msgid "
You must add some additional fields to this display before using this field. These fields may be marked as Exclude from display if you prefer. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.
The following substitution patterns are available for this display. Use the pattern shown on the left to display the value indicated on the right. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.
"
+msgstr ""
+
+#: handlers/views_handler_field.inc:288
+msgid "Replacement patterns"
+msgstr "Шаблони заміни"
+
+#: handlers/views_handler_field.inc:298
+msgid "Trim this field to a maximum length"
+msgstr "Скоротити це поле до максимальної довжини"
+
+#: handlers/views_handler_field.inc:299
+msgid "If checked, this field be trimmed to a maximum length in characters."
+msgstr ""
+
+#: handlers/views_handler_field.inc:304
+msgid "Maximum length"
+msgstr "Максимальна довжина"
+
+#: handlers/views_handler_field.inc:307
+msgid "The maximum number of characters his field can be."
+msgstr ""
+
+#: handlers/views_handler_field.inc:316
+msgid "Trim only on a word boundary"
+msgstr ""
+
+#: handlers/views_handler_field.inc:317
+msgid "If checked, this field be trimmed only on a word boundary. This is guaranteed to be the maximum characters stated or less. If there are no word boundaries this could trim a field to nothing."
+msgstr ""
+
+#: handlers/views_handler_field.inc:327
+msgid "Add an ellipsis"
+msgstr ""
+
+#: handlers/views_handler_field.inc:328
+msgid "If checked, a \"...\" will be added if a field was trimmed."
+msgstr ""
+
+#: handlers/views_handler_field.inc:338
+msgid "Strip HTML tags"
+msgstr "Обмежувати теги HTML"
+
+#: handlers/views_handler_field.inc:339
+msgid "If checked, all HTML tags will be stripped."
+msgstr ""
+
+#: handlers/views_handler_field.inc:349
+msgid "Field can contain HTML"
+msgstr "Поле може сприймати HTML"
+
+#: handlers/views_handler_field.inc:350
+msgid "If checked, HTML corrector will be run to ensure tags are properly closed after trimming."
+msgstr ""
+
+#: handlers/views_handler_field_boolean.inc:25
+msgid "Output format"
+msgstr "Вихідний формат"
+
+#: handlers/views_handler_field_boolean.inc:27
+msgid "Yes/No"
+msgstr "Так/Ні"
+
+#: handlers/views_handler_field_boolean.inc:28
+msgid "True/False"
+msgstr "True/False"
+
+#: handlers/views_handler_field_boolean.inc:29
+msgid "On/Off"
+msgstr "Ввімкнено/Вимкнено"
+
+#: handlers/views_handler_field_boolean.inc:35
+msgid "Reverse"
+msgstr "Реверс"
+
+#: handlers/views_handler_field_boolean.inc:36
+msgid "If checked, true will be displayed as false."
+msgstr "Відмічене - TRUE буде відображене як FALSE"
+
+#: handlers/views_handler_field_boolean.inc:50
+#: handlers/views_handler_filter_boolean_operator.inc:43
+#: handlers/views_handler_filter_in_operator.inc:25
+#: modules/translation/views_handler_filter_node_tnid.inc:25
+#: plugins/views_plugin_display.inc:633;642;659;667;717;803;1207
+#: plugins/views_plugin_display_attachment.inc:63;69
+msgid "Yes"
+msgstr "Так"
+
+#: handlers/views_handler_field_boolean.inc:50
+#: handlers/views_handler_filter_boolean_operator.inc:43
+#: handlers/views_handler_filter_in_operator.inc:25
+#: modules/translation/views_handler_filter_node_tnid.inc:26
+#: plugins/views_plugin_display.inc:633;642;659;667;717;803;811;1207
+#: plugins/views_plugin_display_attachment.inc:63;69
+msgid "No"
+msgstr "Ні"
+
+#: handlers/views_handler_field_boolean.inc:52
+#: handlers/views_handler_filter_boolean_operator.inc:20;52
+msgid "True"
+msgstr "Так"
+
+#: handlers/views_handler_field_boolean.inc:52
+#: handlers/views_handler_filter_boolean_operator.inc:52
+msgid "False"
+msgstr "False"
+
+#: handlers/views_handler_field_boolean.inc:54
+#: handlers/views_handler_filter_boolean_operator.inc:46
+msgid "On"
+msgstr "Ввімкнено"
+
+#: handlers/views_handler_field_boolean.inc:54
+#: handlers/views_handler_filter_boolean_operator.inc:46
+msgid "Off"
+msgstr "Вимкнено"
+
+#: handlers/views_handler_field_date.inc:24
+msgid "Date format"
+msgstr "Формат Дати"
+
+#: handlers/views_handler_field_date.inc:29
+msgid "Custom"
+msgstr "Власна"
+
+#: handlers/views_handler_field_date.inc:30
+msgid "Time ago"
+msgstr "Часу назад"
+
+#: handlers/views_handler_field_date.inc:31
+msgid "Time ago (with \"ago\" appended)"
+msgstr ""
+
+#: handlers/views_handler_field_date.inc:37
+msgid "Custom date format"
+msgstr "Свій формат часу"
+
+#: handlers/views_handler_field_date.inc:38
+msgid "If \"Custom\", see the PHP docs for date formats. If \"Time ago\" this is the the number of different units to display, which defaults to two."
+msgstr ""
+
+#: handlers/views_handler_field_date.inc:56
+msgid "%time ago"
+msgstr "%time тому"
+
+#: handlers/views_handler_field_numeric.inc:32
+msgid "Round"
+msgstr "Округлення"
+
+#: handlers/views_handler_field_numeric.inc:33
+msgid "If checked, the number will be rounded."
+msgstr ""
+
+#: handlers/views_handler_field_numeric.inc:38
+msgid "Precision"
+msgstr "Точність"
+
+#: handlers/views_handler_field_numeric.inc:40
+msgid "Specify how many digits to print after the decimal point."
+msgstr ""
+
+#: handlers/views_handler_field_numeric.inc:47
+msgid "Decimal point"
+msgstr "Десяткова точка"
+
+#: handlers/views_handler_field_numeric.inc:49
+msgid "What single character to use as a decimal point."
+msgstr ""
+
+#: handlers/views_handler_field_numeric.inc:55
+msgid "Thousands separator"
+msgstr "Розділювач тисяч"
+
+#: handlers/views_handler_field_numeric.inc:57
+msgid "What single character to use as the thousands separator."
+msgstr ""
+
+#: handlers/views_handler_field_numeric.inc:62
+msgid "Prefix"
+msgstr "Префікс"
+
+#: handlers/views_handler_field_numeric.inc:64
+msgid "Text to put before the number, such as currency symbol."
+msgstr ""
+
+#: handlers/views_handler_field_numeric.inc:68
+msgid "Suffix"
+msgstr "Суфікс"
+
+#: handlers/views_handler_field_numeric.inc:70
+msgid "Text to put after the number, such as currency symbol."
+msgstr ""
+
+#: handlers/views_handler_field_prerender_list.inc:29
+#: modules/aggregator/views_plugin_row_aggregator_rss.inc:23
+#: modules/node/views_plugin_row_node_rss.inc:30
+msgid "Display type"
+msgstr "Тип відображення"
+
+#: handlers/views_handler_field_prerender_list.inc:31
+#: plugins/views_plugin_style_list.inc:33
+msgid "Unordered list"
+msgstr "Ненумерований список"
+
+#: handlers/views_handler_field_prerender_list.inc:32
+#: plugins/views_plugin_style_list.inc:33
+msgid "Ordered list"
+msgstr "Нумерований список"
+
+#: handlers/views_handler_field_prerender_list.inc:33
+msgid "Simple separator"
+msgstr "Простий розділювач"
+
+#: handlers/views_handler_field_prerender_list.inc:40
+#: includes/admin.inc:3010
+#: plugins/views_plugin_row_fields.inc:47
+#: plugins/views_plugin_style_summary_unformatted.inc:30
+msgid "Separator"
+msgstr "Розділювач"
+
+#: handlers/views_handler_field_prerender_list.inc:48
+msgid "Empty list text"
+msgstr "Текст, коли пустий список"
+
+#: handlers/views_handler_field_prerender_list.inc:50
+msgid "If the list is empty, you may enter text here that will be displayed."
+msgstr ""
+
+#: handlers/views_handler_field_url.inc:24
+#: modules/aggregator/views_handler_field_aggregator_title_link.inc:28
+#: modules/statistics/views_handler_field_accesslog_path.inc:31
+msgid "Display as link"
+msgstr "Відображати як посилання"
+
+#: handlers/views_handler_filter.inc:136
+msgid "Operator"
+msgstr "Оператор"
+
+#: handlers/views_handler_filter.inc:201
+msgid "Expose"
+msgstr "Показувати фільтр"
+
+#: handlers/views_handler_filter.inc:206
+msgid "This item is currently not exposed. If you expose it, users will be able to change the filter as they view it."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:213
+msgid "Hide"
+msgstr "Приховати"
+
+#: handlers/views_handler_filter.inc:218
+msgid "This item is currently exposed. If you hide it, users will not be able to change the filter as they view it."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:289
+msgid "Unlock operator"
+msgstr "Розблокувати оператор"
+
+#: handlers/views_handler_filter.inc:290
+msgid "When checked, the operator will be exposed to the user"
+msgstr ""
+
+#: handlers/views_handler_filter.inc:296
+msgid "Operator identifier"
+msgstr "Ідентифікатор оператора"
+
+#: handlers/views_handler_filter.inc:298
+msgid "This will appear in the URL after the ? to identify this operator."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:315
+msgid "Filter identifier"
+msgstr "Ідентифікатор фільтра"
+
+#: handlers/views_handler_filter.inc:317
+msgid "This will appear in the URL after the ? to identify this filter. Cannot be blank."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:333
+msgid "Optional"
+msgstr "Необов'язковий"
+
+#: handlers/views_handler_filter.inc:334
+msgid "This exposed filter is optional and will have added options to allow it not to be set."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:340
+msgid "Force single"
+msgstr "Примусово одиничний"
+
+#: handlers/views_handler_filter.inc:341
+msgid "Force this exposed filter to accept only one option."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:347
+msgid "Remember"
+msgstr "Запам'ятати"
+
+#: handlers/views_handler_filter.inc:348
+msgid "Remember the last setting the user gave this filter."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:359
+msgid "The identifier is required if the filter is exposed."
+msgstr ""
+
+#: handlers/views_handler_filter.inc:364
+msgid "This identifier is not allowed."
+msgstr "Ідентифікатор недозволено"
+
+#: handlers/views_handler_filter.inc:465
+#: includes/admin.inc:2744
+msgid ""
+msgstr "<любе>"
+
+#: handlers/views_handler_filter.inc:465
+#: includes/admin.inc:2744
+msgid "- Any -"
+msgstr "- любе -"
+
+#: handlers/views_handler_filter_boolean_operator.inc:97
+#: handlers/views_handler_filter_in_operator.inc:175
+#: handlers/views_handler_filter_numeric.inc:247
+#: handlers/views_handler_filter_string.inc:111
+msgid "exposed"
+msgstr "відображено"
+
+#: handlers/views_handler_filter_date.inc:24
+msgid "Value type"
+msgstr "Тип значення"
+
+#: handlers/views_handler_filter_date.inc:26
+msgid "A date in any machine readable format. CCYY-MM-DD HH:MM:SS is preferred."
+msgstr ""
+
+#: handlers/views_handler_filter_date.inc:27
+msgid "An offset from the current time such as \"+1 day\" or \"-2 hours and 30 minutes\""
+msgstr ""
+
+#: handlers/views_handler_filter_date.inc:77;83;87
+msgid "Invalid date format."
+msgstr "Некоректний формат дати"
+
+#: handlers/views_handler_filter_equality.inc:15
+#: handlers/views_handler_filter_numeric.inc:38
+#: handlers/views_handler_filter_string.inc:28
+msgid "Is equal to"
+msgstr "Дорівнює до"
+
+#: handlers/views_handler_filter_equality.inc:16
+#: handlers/views_handler_filter_numeric.inc:44
+#: handlers/views_handler_filter_string.inc:34
+msgid "Is not equal to"
+msgstr "Не дорівнює до"
+
+#: handlers/views_handler_filter_equality.inc:26
+#: handlers/views_handler_filter_numeric.inc:148;163
+#: handlers/views_handler_filter_string.inc:170
+msgid "Value"
+msgstr "Значення"
+
+#: handlers/views_handler_filter_in_operator.inc:15
+msgid "Options"
+msgstr "Опції (варіанти)"
+
+#: handlers/views_handler_filter_in_operator.inc:37
+msgid "Limit list to selected items"
+msgstr ""
+
+#: handlers/views_handler_filter_in_operator.inc:38
+msgid "If checked, the only items presented to the user will be the ones selected here."
+msgstr ""
+
+#: handlers/views_handler_filter_in_operator.inc:57
+#: handlers/views_handler_filter_many_to_one.inc:32
+msgid "Is one of"
+msgstr "Один з"
+
+#: handlers/views_handler_filter_in_operator.inc:58
+msgid "Is not one of"
+msgstr "Жоден з"
+
+#: handlers/views_handler_filter_in_operator.inc:193
+#: modules/system.views.inc:209
+#: plugins/views_plugin_access.inc:55
+msgid "Unknown"
+msgstr "Невідоме"
+
+#: handlers/views_handler_filter_many_to_one.inc:33
+msgid "Is all of"
+msgstr "З всіма"
+
+#: handlers/views_handler_filter_many_to_one.inc:34
+msgid "Is none of"
+msgstr "Без жодного"
+
+#: handlers/views_handler_filter_numeric.inc:26
+msgid "Is less than"
+msgstr "Менше чим"
+
+#: handlers/views_handler_filter_numeric.inc:28
+msgid "<"
+msgstr "<"
+
+#: handlers/views_handler_filter_numeric.inc:32
+msgid "Is less than or equal to"
+msgstr "Менше-рівне до"
+
+#: handlers/views_handler_filter_numeric.inc:34
+msgid "<="
+msgstr "<="
+
+#: handlers/views_handler_filter_numeric.inc:40
+#: handlers/views_handler_filter_string.inc:29
+msgid "="
+msgstr "="
+
+#: handlers/views_handler_filter_numeric.inc:46
+#: handlers/views_handler_filter_string.inc:35
+msgid "!="
+msgstr "!="
+
+#: handlers/views_handler_filter_numeric.inc:50
+msgid "Is greater than or equal to"
+msgstr "Більше-рівне від"
+
+#: handlers/views_handler_filter_numeric.inc:52
+msgid ">="
+msgstr ">="
+
+#: handlers/views_handler_filter_numeric.inc:56
+msgid "Is greater than"
+msgstr "Більше чим"
+
+#: handlers/views_handler_filter_numeric.inc:58
+msgid ">"
+msgstr ">"
+
+#: handlers/views_handler_filter_numeric.inc:62
+msgid "Is between"
+msgstr "Між"
+
+#: handlers/views_handler_filter_numeric.inc:64
+msgid "between"
+msgstr "між"
+
+#: handlers/views_handler_filter_numeric.inc:68
+msgid "Is not between"
+msgstr "Поза межами"
+
+#: handlers/views_handler_filter_numeric.inc:70
+msgid "not between"
+msgstr "оза межами"
+
+#: handlers/views_handler_filter_numeric.inc:79
+#: handlers/views_handler_filter_string.inc:80
+msgid "Is empty (NULL)"
+msgstr "Пусто (NULL)"
+
+#: handlers/views_handler_filter_numeric.inc:81
+#: handlers/views_handler_filter_string.inc:82
+msgid "empty"
+msgstr "пусто"
+
+#: handlers/views_handler_filter_numeric.inc:85
+#: handlers/views_handler_filter_string.inc:86
+msgid "Is not empty (NULL)"
+msgstr "Не пусто (NOT NULL)"
+
+#: handlers/views_handler_filter_numeric.inc:87
+#: handlers/views_handler_filter_string.inc:88
+msgid "not empty"
+msgstr "не пусто"
+
+#: handlers/views_handler_filter_numeric.inc:175
+msgid "Min"
+msgstr "Мін"
+
+#: handlers/views_handler_filter_numeric.inc:181
+msgid "And max"
+msgstr "І макс"
+
+#: handlers/views_handler_filter_numeric.inc:181
+msgid "And"
+msgstr "І"
+
+#: handlers/views_handler_filter_numeric.inc:253
+msgid "@min and @max"
+msgstr "@min та @max"
+
+#: handlers/views_handler_filter_string.inc:40
+msgid "Contains"
+msgstr "Містить"
+
+#: handlers/views_handler_filter_string.inc:41
+msgid "contains"
+msgstr "містить"
+
+#: handlers/views_handler_filter_string.inc:46
+msgid "Contains any word"
+msgstr "Містить будь-яке слово"
+
+#: handlers/views_handler_filter_string.inc:47
+msgid "has word"
+msgstr "містить слово"
+
+#: handlers/views_handler_filter_string.inc:52
+msgid "Contains all words"
+msgstr "Містить всі слова"
+
+#: handlers/views_handler_filter_string.inc:53
+msgid "has all"
+msgstr "містить всі"
+
+#: handlers/views_handler_filter_string.inc:58
+msgid "Starts with"
+msgstr "Починається з"
+
+#: handlers/views_handler_filter_string.inc:59
+msgid "begins"
+msgstr "починається"
+
+#: handlers/views_handler_filter_string.inc:64
+msgid "Ends with"
+msgstr "Закінчується на"
+
+#: handlers/views_handler_filter_string.inc:65
+msgid "ends"
+msgstr "закінчується"
+
+#: handlers/views_handler_filter_string.inc:70
+msgid "Does not contain"
+msgstr "Не містить"
+
+#: handlers/views_handler_filter_string.inc:71
+msgid "!has"
+msgstr "!has"
+
+#: handlers/views_handler_filter_string.inc:126
+msgid "Case sensitive"
+msgstr "Чутливе до регістру"
+
+#: handlers/views_handler_filter_string.inc:128
+msgid "Case sensitive filters may be faster. MySQL might ignore case sensitivity."
+msgstr ""
+
+#: handlers/views_handler_relationship.inc:80
+msgid "The label for this relationship that will be displayed only administratively."
+msgstr ""
+
+#: handlers/views_handler_relationship.inc:85
+msgid "Require this relationship"
+msgstr ""
+
+#: handlers/views_handler_relationship.inc:86
+msgid "If required, items that do not contain this relationship will not appear."
+msgstr ""
+
+#: handlers/views_handler_sort.inc:38
+msgid "asc"
+msgstr "зрост"
+
+#: handlers/views_handler_sort.inc:42
+msgid "desc"
+msgstr "спад"
+
+#: handlers/views_handler_sort.inc:54
+msgid "Sort order"
+msgstr "Сортування"
+
+#: handlers/views_handler_sort.inc:55
+#: modules/search/views_handler_field_search_score.inc:37
+#: plugins/views_plugin_style_table.inc:149
+msgid "Ascending"
+msgstr "Зростання"
+
+#: handlers/views_handler_sort.inc:55
+#: modules/search/views_handler_field_search_score.inc:37
+#: plugins/views_plugin_style_table.inc:149
+msgid "Descending"
+msgstr "Спадання"
+
+#: handlers/views_handler_sort_date.inc:26
+msgid "Granularity"
+msgstr "Деталізація"
+
+#: handlers/views_handler_sort_date.inc:28
+msgid "Second"
+msgstr "Секунда"
+
+#: handlers/views_handler_sort_date.inc:29
+msgid "Minute"
+msgstr "Хвилина"
+
+#: handlers/views_handler_sort_date.inc:30
+msgid "Hour"
+msgstr "Година"
+
+#: handlers/views_handler_sort_date.inc:31
+msgid "Day"
+msgstr "День"
+
+#: handlers/views_handler_sort_date.inc:32
+msgid "Month"
+msgstr "Місяць"
+
+#: handlers/views_handler_sort_date.inc:33
+msgid "Year"
+msgstr "Рік"
+
+#: handlers/views_handler_sort_date.inc:35
+msgid "The granularity is the smallest unit to use when determining whether two dates are the same; for example, if the granularity is \"Year\" then all dates in 1999, regardless of when they fall in 1999, will be considered the same date."
+msgstr ""
+
+#: handlers/views_handler_sort_formula.inc:24
+msgid "views_handler_sort_formula missing default: @formula"
+msgstr ""
+
+#: includes/admin.inc:36
+msgid "If you enable the advanced help module, Views will provide more and better help. Hide this message."
+msgstr ""
+
+#: includes/admin.inc:39
+msgid "If you install the advanced help module from !href, Views will provide more and better help. Hide this message."
+msgstr "Проінсталювавши advanced help модуль із !href, Views буде описано краще. Сховати."
+
+#: includes/admin.inc:55;318
+msgid "Reset"
+msgstr "Повернути"
+
+#: includes/admin.inc:110;1006
+#: theme/theme.inc:98
+#: views_export/views_export.module:129
+msgid "Export"
+msgstr "Експортувати"
+
+#: includes/admin.inc:111;1011
+#: theme/theme.inc:103
+msgid "Clone"
+msgstr "Клонування"
+
+#: includes/admin.inc:114;649
+msgid "Revert"
+msgstr "Відновити"
+
+#: includes/admin.inc:114;654;875
+#: includes/convert.inc:35;108
+msgid "Delete"
+msgstr "Стерти"
+
+#: includes/admin.inc:119
+msgid "Disable"
+msgstr "Вимкнути"
+
+#: includes/admin.inc:122
+msgid "Enable"
+msgstr "Увімкнути"
+
+#: includes/admin.inc:128
+msgid "Warning! Broken view!"
+msgstr ""
+
+#: includes/admin.inc:143
+#: includes/view.inc:1714
+msgid "Broken"
+msgstr "Пошкоджено"
+
+#: includes/admin.inc:205
+msgid "Install the advanced help module for the getting started"
+msgstr "Проінсталюйте модуль advanced help для початку роботи"
+
+#: includes/admin.inc:208
+msgid "Not sure what to do? Try the \"!getting-started\" page."
+msgstr "Не впевнені що робити?? Спробуйте \"!getting-started\" сторінку."
+
+#: includes/admin.inc:222;229;2159
+msgid ""
+msgstr "<Всі>"
+
+#: includes/admin.inc:223
+#: plugins/views_plugin_style.inc:76
+msgid ""
+msgstr "<Нічого>"
+
+#: includes/admin.inc:227
+msgid "Storage"
+msgstr "Зберігання"
+
+#: includes/admin.inc:230;230
+#: includes/view.inc:1208;1258
+msgid "Normal"
+msgstr "Нормально"
+
+#: includes/admin.inc:244;291
+#: modules/node.views.inc:140
+#: plugins/views_plugin_display_page.inc:279
+msgid "Type"
+msgstr "Тип"
+
+#: includes/admin.inc:262;289;1091
+#: views_export/views_export.module:147
+msgid "Tag"
+msgstr "Таг"
+
+#: includes/admin.inc:278
+msgid "Displays"
+msgstr "Відображення"
+
+#: includes/admin.inc:285
+msgid "Sort by"
+msgstr "Сортувати за"
+
+#: includes/admin.inc:287
+#: modules/system.views.inc:69
+#: modules/user.views.inc:59;80
+#: plugins/views_plugin_display.inc:580
+msgid "Name"
+msgstr "Ім'я"
+
+#: includes/admin.inc:290;415
+#: modules/statistics.views.inc:149
+#: modules/system.views.inc:88
+#: plugins/views_plugin_display_page.inc:208
+msgid "Path"
+msgstr "Шлях"
+
+#: includes/admin.inc:292
+#: includes/convert.inc:21
+#: modules/aggregator.views.inc:230
+#: modules/upload.views.inc:56
+#: plugins/views_plugin_display_page.inc:299;383
+#: views_export/views_export.module:147
+msgid "Description"
+msgstr "Опис"
+
+#: includes/admin.inc:299
+msgid "Order"
+msgstr "Послідовність"
+
+#: includes/admin.inc:301
+msgid "Up"
+msgstr "Вгору"
+
+#: includes/admin.inc:302
+msgid "Down"
+msgstr "Вниз"
+
+#: includes/admin.inc:394;425
+msgid "Query"
+msgstr "Запит"
+
+#: includes/admin.inc:396
+msgid "These queries were run during view rendering:"
+msgstr ""
+
+#: includes/admin.inc:401
+msgid "[@time ms]"
+msgstr ""
+
+#: includes/admin.inc:404
+msgid "Other queries"
+msgstr "Інші запити"
+
+#: includes/admin.inc:412
+msgid "This display has no path."
+msgstr "Цей вигляд немає шляху"
+
+#: includes/admin.inc:417
+msgid "Query build time"
+msgstr ""
+
+#: includes/admin.inc:417;418;419
+msgid "@time ms"
+msgstr ""
+
+#: includes/admin.inc:418
+msgid "Query execute time"
+msgstr ""
+
+#: includes/admin.inc:419
+msgid "View render time"
+msgstr ""
+
+#: includes/admin.inc:425
+msgid "No query was run"
+msgstr ""
+
+#: includes/admin.inc:432
+msgid "Unable to preview due to validation errors."
+msgstr ""
+
+#: includes/admin.inc:483
+msgid "Display"
+msgstr "Відображення"
+
+#: includes/admin.inc:493
+msgid "Separate arguments with a / as though they were a URL path."
+msgstr ""
+
+#: includes/admin.inc:499
+msgid "Preview"
+msgstr "Переглянути"
+
+#: includes/admin.inc:537
+msgid "Clone view %view"
+msgstr ""
+
+#: includes/admin.inc:550;741
+#: includes/convert.inc:20
+msgid "View name"
+msgstr "Ім'я Вигляду"
+
+#: includes/admin.inc:551
+msgid "This is the unique name of the view. It must contain only alphanumeric characters and underscores; it is used to identify the view internally and to generate unique theming template names for this view. If overriding a module provided view, the name must not be changed or instead a new view will be created."
+msgstr ""
+
+#: includes/admin.inc:560;1854
+msgid "View description"
+msgstr "Опис Вигляду"
+
+#: includes/admin.inc:561;1855
+msgid "This description will appear on the Views administrative UI to tell you what the view is about."
+msgstr ""
+
+#: includes/admin.inc:567;1861
+msgid "View tag"
+msgstr "Тег Вигляду"
+
+#: includes/admin.inc:568;1862
+msgid "Enter an optional tag for this view; it is used only to help sort views on the administrative page."
+msgstr ""
+
+#: includes/admin.inc:580
+msgid "View type"
+msgstr "Тип Вигляду"
+
+#: includes/admin.inc:581
+msgid "The view type is the primary table for which information is being retrieved. The view type controls what arguments, fields, sort criteria and filters are available, so once this is set it cannot be changed."
+msgstr ""
+
+#: includes/admin.inc:592
+msgid "Next"
+msgstr "Наступне"
+
+#: includes/admin.inc:608;786
+msgid "View name must be alphanumeric or underscores only."
+msgstr ""
+
+#: includes/admin.inc:614
+msgid "You must use a unique name for this view."
+msgstr ""
+
+#: includes/admin.inc:647
+msgid "Are you sure you want to revert the view %name?"
+msgstr ""
+
+#: includes/admin.inc:648
+msgid "Reverting the view will delete the view that is in the database, reverting it to the original default view. Any changes you have made will be lost and cannot be recovered."
+msgstr ""
+
+#: includes/admin.inc:652
+#: includes/convert.inc:105
+msgid "Are you sure you want to delete the view %name?"
+msgstr ""
+
+#: includes/admin.inc:653
+msgid "Deleting a view cannot be undone."
+msgstr ""
+
+#: includes/admin.inc:662;698;868;1357
+#: includes/convert.inc:109
+msgid "Cancel"
+msgstr "Скасувати"
+
+#: includes/admin.inc:671
+msgid "The view has been deleted."
+msgstr ""
+
+#: includes/admin.inc:683
+msgid "There is no lock on view %view to break."
+msgstr ""
+
+#: includes/admin.inc:693
+msgid "Are you sure you want to break the lock on view %name?"
+msgstr ""
+
+#: includes/admin.inc:696
+msgid "By breaking this lock, any unsaved changes made by !user will be lost!"
+msgstr ""
+
+#: includes/admin.inc:697
+msgid "Break lock"
+msgstr ""
+
+#: includes/admin.inc:707
+msgid "The lock has been broken and you may now edit this view."
+msgstr ""
+
+#: includes/admin.inc:714
+msgid "Edit view %view"
+msgstr "Змінити Вигляд %view"
+
+#: includes/admin.inc:742
+msgid "Enter the name to use for this view if it is different from the source view. Leave blank to use the name of the view."
+msgstr ""
+
+#: includes/admin.inc:747
+msgid "Paste view code here"
+msgstr "Вставити код Вигляду сюди"
+
+#: includes/admin.inc:769
+msgid "Unable to interpret view code."
+msgstr "Неможливо інтерпретувати код Вигляду"
+
+#: includes/admin.inc:777
+msgid "You are importing a view created in Views version 1. You may need to adjust some parameters to work correctly in version 2."
+msgstr ""
+
+#: includes/admin.inc:780
+msgid "That view is not compatible with this version of Views."
+msgstr ""
+
+#: includes/admin.inc:795
+msgid "A view by that name already exists; please choose a different name"
+msgstr ""
+
+#: includes/admin.inc:804
+msgid "Display plugin @plugin is not available."
+msgstr ""
+
+#: includes/admin.inc:811
+msgid "Style plugin @plugin is not available."
+msgstr ""
+
+#: includes/admin.inc:817
+msgid "Row plugin @plugin is not available."
+msgstr ""
+
+#: includes/admin.inc:827
+msgid "@type handler @table.@field is not available."
+msgstr ""
+
+#: includes/admin.inc:840
+msgid "Unable to import view."
+msgstr ""
+
+#: includes/admin.inc:861;889
+msgid "Save"
+msgstr "Зберегти"
+
+#: includes/admin.inc:913
+msgid "The view has been saved."
+msgstr ""
+
+#: includes/admin.inc:957
+msgid "Unknown or missing table name"
+msgstr ""
+
+#: includes/admin.inc:962
+msgid "Click on an item to edit that item's details."
+msgstr ""
+
+#: includes/admin.inc:965
+msgid "This view has a broken default display and cannot be used."
+msgstr ""
+
+#: includes/admin.inc:1007
+#: theme/theme.inc:99
+msgid "Export this view"
+msgstr "Експортувати вигляд"
+
+#: includes/admin.inc:1012
+#: theme/theme.inc:104
+msgid "Create a copy of this view"
+msgstr "Створити копію даного вигляду"
+
+#: includes/admin.inc:1023
+msgid "View \"!display\""
+msgstr ""
+
+#: includes/admin.inc:1024
+msgid "Go to the real page for this display"
+msgstr ""
+
+#: includes/admin.inc:1090;3044
+#: includes/plugins.inc:218
+#: plugins/views_plugin_display.inc:587;704;723
+#: plugins/views_plugin_display_attachment.inc:90
+#: plugins/views_plugin_display_block.inc:73
+#: plugins/views_plugin_display_feed.inc:108
+#: plugins/views_plugin_display_page.inc:199
+msgid "None"
+msgstr "Немає"
+
+#: includes/admin.inc:1168
+msgid "Invalid"
+msgstr "Некоректно"
+
+#: includes/admin.inc:1169
+msgid "Error: Display @display refers to a plugin named '@plugin', but that plugin doesn't exist!"
+msgstr ""
+
+#: includes/admin.inc:1204;1204
+msgid "Rearrange"
+msgstr "Пересортувати"
+
+#: includes/admin.inc:1244;2244;2420;2488;2573
+msgid "Error: handler for @table > @field doesn't exist!"
+msgstr ""
+
+#: includes/admin.inc:1263;1263;1272
+msgid "Settings"
+msgstr "Налаштування"
+
+#: includes/admin.inc:1268
+#: plugins/views_plugin_display.inc:598;616
+msgid "Missing style plugin"
+msgstr "Загублено додаток стилю"
+
+#: includes/admin.inc:1272
+#: plugins/views_plugin_display.inc:611;626
+msgid "Change settings for this style"
+msgstr ""
+
+#: includes/admin.inc:1275
+msgid " Style: !style"
+msgstr ""
+
+#: includes/admin.inc:1306
+msgid "Invalid display id found while regenerating tabs"
+msgstr ""
+
+#: includes/admin.inc:1339
+msgid "Update"
+msgstr "Оновити"
+
+#: includes/admin.inc:1357
+msgid "Ok"
+msgstr "Ok"
+
+#: includes/admin.inc:1628
+msgid "Unable to initialize default display"
+msgstr ""
+
+#: includes/admin.inc:1660
+msgid "Add display"
+msgstr "Додати відображення"
+
+#: includes/admin.inc:1700
+msgid "Remove display"
+msgstr "Видалити відображення"
+
+#: includes/admin.inc:1711
+msgid "Restore display"
+msgstr "Відновити відображення"
+
+#: includes/admin.inc:1783
+msgid "Analyze"
+msgstr "Аналіз"
+
+#: includes/admin.inc:1795
+msgid "View analysis"
+msgstr "Аналізування Вигляду"
+
+#: includes/admin.inc:1849
+msgid "View details"
+msgstr "Деталі Вигляду"
+
+#: includes/admin.inc:1890;1944;1999;2145;2237;2413;2481;2566
+msgid "Invalid display id @display"
+msgstr ""
+
+#: includes/admin.inc:1948
+msgid "Configure @type"
+msgstr "Конфігурування @type"
+
+#: includes/admin.inc:2003
+msgid "Rearrange @type"
+msgstr "Пересортування @type"
+
+#: includes/admin.inc:2046
+msgid "Broken field @id"
+msgstr "Втрачене поле @id"
+
+#: includes/admin.inc:2086;2095;2329
+msgid "Remove"
+msgstr "Видалити"
+
+#: includes/admin.inc:2086;2086
+msgid "Remove this item"
+msgstr "Видалити цей елемент"
+
+#: includes/admin.inc:2092
+msgid "No fields available."
+msgstr "Недоступні поля"
+
+#: includes/admin.inc:2095
+#: modules/book.views.inc:57
+#: modules/taxonomy.views.inc:139
+#: modules/upload.views.inc:91
+#: plugins/views_plugin_display_page.inc:339
+msgid "Weight"
+msgstr "Вага"
+
+#: includes/admin.inc:2151
+msgid "Add @type"
+msgstr "Додати @type"
+
+#: includes/admin.inc:2162
+msgid "Groups"
+msgstr "Групи"
+
+#: includes/admin.inc:2181
+msgid "!group: !field"
+msgstr "!group: !field"
+
+#: includes/admin.inc:2190
+msgid "There are no @types available to add."
+msgstr ""
+
+#: includes/admin.inc:2287
+#: plugins/views_plugin_row.inc:65
+msgid "Do not use a relationship"
+msgstr ""
+
+#: includes/admin.inc:2302
+#: includes/view.inc:1942;1943
+#: plugins/views_plugin_row.inc:74
+msgid "Relationship"
+msgstr "Зв'язок"
+
+#: includes/admin.inc:2315
+msgid "Configure @type %item"
+msgstr ""
+
+#: includes/admin.inc:2428
+msgid "Configure extra settings for @type %item"
+msgstr ""
+
+#: includes/admin.inc:2493
+msgid "Change summary style for @type %item"
+msgstr ""
+
+#: includes/admin.inc:2516;2530
+msgid "Internal error: broken plugin."
+msgstr ""
+
+#: includes/admin.inc:2580
+msgid "Configure summary style for @type %item"
+msgstr ""
+
+#: includes/admin.inc:2672
+msgid "Clear Views' cache"
+msgstr "Очистити кеш"
+
+#: includes/admin.inc:2678
+msgid "Add Views signature to all SQL queries"
+msgstr ""
+
+#: includes/admin.inc:2679
+msgid "All Views-generated queries will include a special 'VIEWS' = 'VIEWS' string in the WHERE clause. This makes identifying Views queries in database server logs simpler, but should only be used when troubleshooting."
+msgstr ""
+
+#: includes/admin.inc:2685
+msgid "Disable views data caching"
+msgstr ""
+
+#: includes/admin.inc:2686
+msgid "Views caches data about tables, modules and views available, to increase performance. By checking this box, Views will skip this cache and always rebuild this data when needed. This can have a serious performance impact on your site."
+msgstr ""
+
+#: includes/admin.inc:2692
+msgid "Ignore missing advanced help module"
+msgstr ""
+
+#: includes/admin.inc:2693
+msgid "Views uses the advanced help module to provide help text; if this module is not present Views will complain, unless this setting is checked."
+msgstr ""
+
+#: includes/admin.inc:2699
+msgid "Show query above live preview"
+msgstr ""
+
+#: includes/admin.inc:2700
+msgid "The live preview feature will show you the output of the view you're creating, as well as the view. Check here to show the query and other information above the view; leave this unchecked to show that information below the view."
+msgstr ""
+
+#: includes/admin.inc:2706
+msgid "Show other queries run during render during live preview"
+msgstr ""
+
+#: includes/admin.inc:2707
+msgid "Drupal has the potential to run many queries while a view is being rendered. Checking this box will display every query run during view render as part of the live preview."
+msgstr ""
+
+#: includes/admin.inc:2713
+msgid "Do not show hover links over views"
+msgstr ""
+
+#: includes/admin.inc:2714
+msgid "To make it easier to administrate your views, Views provides 'hover' links to take you to the edit and export screen of a view whenever the view is used. This can be distracting on some themes, though; if it is problematic, you can turn it off here."
+msgstr ""
+
+#: includes/admin.inc:2720
+msgid "Enable views performance statistics via the Devel module"
+msgstr ""
+
+#: includes/admin.inc:2721
+msgid "Check this to enable some Views query and performance statistics if Devel is installed."
+msgstr ""
+
+#: includes/admin.inc:2727
+msgid "Disable javascript with Views"
+msgstr ""
+
+#: includes/admin.inc:2728
+msgid "If you are having problems with the javascript, you can disable it here; the Views UI should degrade and still be usable without javascript, it just not as good."
+msgstr ""
+
+#: includes/admin.inc:2736
+msgid "Page region to output performance statistics"
+msgstr ""
+
+#: includes/admin.inc:2743
+msgid "Label for \"Any\" value on optional single-select exposed filters"
+msgstr ""
+
+#: includes/admin.inc:2756
+msgid "The cache has been cleared."
+msgstr ""
+
+#: includes/admin.inc:2922
+msgid "Error: missing @component"
+msgstr ""
+
+#: includes/admin.inc:3008
+#: includes/view.inc:1913
+msgid "Field"
+msgstr "Поле"
+
+#: includes/admin.inc:3009
+msgid "Column"
+msgstr ""
+
+#: includes/admin.inc:3012
+msgid "Sortable"
+msgstr ""
+
+#: includes/admin.inc:3016
+msgid "Default sort"
+msgstr ""
+
+#: includes/ajax.inc:82
+msgid "Server reports invalid input error."
+msgstr ""
+
+#: includes/ajax.inc:83
+msgid "Error"
+msgstr "Помилка"
+
+#: includes/analyze.inc:38
+msgid "View analysis can find nothing to report."
+msgstr ""
+
+#: includes/analyze.inc:104
+msgid "This view has only a default display and therefore will not be placed anywhere on your site; perhaps you want to add a page or a block display."
+msgstr ""
+
+#: includes/convert.inc:14
+msgid "There are no Views 1 views stored in the database to convert."
+msgstr ""
+
+#: includes/convert.inc:22
+msgid "Operations"
+msgstr "Дії"
+
+#: includes/convert.inc:33
+msgid "Converted"
+msgstr ""
+
+#: includes/convert.inc:68
+msgid "The table below lists Views version 1 views that are stored in the database. You can either convert them to work in Views version 2, or delete them. The views are convertible only if there is no Views 2 view with the same name."
+msgstr ""
+
+#: includes/convert.inc:79
+msgid "Unable to find view."
+msgstr ""
+
+#: includes/convert.inc:89
+msgid "Unable to convert view."
+msgstr ""
+
+#: includes/convert.inc:107
+msgid "This action cannot be undone."
+msgstr "Цю дію не можна буде скасувати."
+
+#: includes/convert.inc:117
+msgid "The view has been deleted"
+msgstr ""
+
+#: includes/form.inc:249
+msgid "Validation error, please try again. If this error persists, please contact the site administrator."
+msgstr "Помилка при перевірці значення, будь-ласка, спробуйте ще. Якщо помилка повториться, повідомте адміністратора сайту."
+
+#: includes/handlers.inc:43
+msgid "Handler @handler include tried to loop infinitely!"
+msgstr ""
+
+#: includes/handlers.inc:270
+msgid "!group: !title"
+msgstr ""
+
+#: includes/handlers.inc:521
+msgid "Reduce duplicates"
+msgstr ""
+
+#: includes/handlers.inc:522
+msgid "This filter can cause items that have more than one of the selected options to appear as duplicate results. If this filter causes duplicate results to occur, this checkbox can reduce those duplicates; however, the more terms it has to search for, the less performant the query will be, so use this with caution."
+msgstr ""
+
+#: includes/plugins.inc:26
+msgid "Default settings for this view."
+msgstr ""
+
+#: includes/plugins.inc:40
+msgid "Display the view as a page, with a URL and menu links."
+msgstr ""
+
+#: includes/plugins.inc:51;60
+msgid "Block"
+msgstr "Блок"
+
+#: includes/plugins.inc:52
+msgid "Display the view as a block."
+msgstr ""
+
+#: includes/plugins.inc:64
+msgid "Attachment"
+msgstr "Причіплений файл"
+
+#: includes/plugins.inc:65
+msgid "Attachments added to other displays to achieve multiple views in the same view."
+msgstr "Додатки додаються до інших виглядів для збору кількох VIEW в один."
+
+#: includes/plugins.inc:73
+msgid "Display the view as a feed, such as an RSS feed."
+msgstr ""
+
+#: includes/plugins.inc:93;144
+msgid "Unformatted"
+msgstr "Неформатоване"
+
+#: includes/plugins.inc:94
+msgid "Displays rows one after another."
+msgstr ""
+
+#: includes/plugins.inc:104
+msgid "HTML List"
+msgstr ""
+
+#: includes/plugins.inc:105
+msgid "Displays rows as an HTML list."
+msgstr ""
+
+#: includes/plugins.inc:114
+msgid "Grid"
+msgstr ""
+
+#: includes/plugins.inc:115
+msgid "Displays rows in a grid."
+msgstr ""
+
+#: includes/plugins.inc:124
+msgid "Table"
+msgstr "Таблиця"
+
+#: includes/plugins.inc:125
+msgid "Displays rows in a table."
+msgstr ""
+
+#: includes/plugins.inc:136
+msgid "Displays the default summary as a list."
+msgstr ""
+
+#: includes/plugins.inc:145
+msgid "Displays the summary unformatted, with option for one after another or inline."
+msgstr ""
+
+#: includes/plugins.inc:154
+msgid "RSS Feed"
+msgstr ""
+
+#: includes/plugins.inc:155
+msgid "Generates an RSS feed from a view."
+msgstr ""
+
+#: includes/plugins.inc:174
+msgid "Displays the fields with an optional template."
+msgstr ""
+
+#: includes/plugins.inc:187
+msgid "Fixed entry"
+msgstr ""
+
+#: includes/plugins.inc:191;203
+msgid "PHP Code"
+msgstr "Код PHP"
+
+#: includes/plugins.inc:207
+msgid "Numeric"
+msgstr ""
+
+#: includes/plugins.inc:219
+msgid "Will be available to all users."
+msgstr ""
+
+#: includes/plugins.inc:224
+#: plugins/views_plugin_access_role.inc:40
+msgid "Role"
+msgstr "Роль"
+
+#: includes/plugins.inc:225
+msgid "Access will be granted to users with any of the specified roles."
+msgstr ""
+
+#: includes/plugins.inc:231
+#: plugins/views_plugin_access_perm.inc:35
+msgid "Permission"
+msgstr "Повноваження"
+
+#: includes/plugins.inc:232
+msgid "Access will be granted to users with the specified permission string."
+msgstr ""
+
+#: includes/view.inc:263
+msgid "set_display() called with invalid display id @display."
+msgstr ""
+
+#: includes/view.inc:1104
+msgid "Home"
+msgstr "Головна"
+
+#: includes/view.inc:1912
+msgid "fields"
+msgstr "поля"
+
+#: includes/view.inc:1914
+msgid "field"
+msgstr "поле"
+
+#: includes/view.inc:1919
+msgid "arguments"
+msgstr "аргументи"
+
+#: includes/view.inc:1920;1921
+msgid "Argument"
+msgstr "Аргумент"
+
+#: includes/view.inc:1925
+msgid "Sort criteria"
+msgstr "Критерій сортування"
+
+#: includes/view.inc:1926
+msgid "sort criteria"
+msgstr "критерій сортування"
+
+#: includes/view.inc:1927
+msgid "Sort criterion"
+msgstr "Критерій сортування"
+
+#: includes/view.inc:1928
+msgid "sort criterion"
+msgstr "критерій сортування"
+
+#: includes/view.inc:1932
+msgid "Filters"
+msgstr "Фільтри"
+
+#: includes/view.inc:1933
+msgid "filters"
+msgstr "фільтри"
+
+#: includes/view.inc:1934
+msgid "Filter"
+msgstr "Фільтрація"
+
+#: includes/view.inc:1935
+msgid "filter"
+msgstr "фільтр"
+
+#: includes/view.inc:1940
+msgid "Relationships"
+msgstr "Зв'язки"
+
+#: includes/view.inc:1941
+msgid "relationships"
+msgstr "зв'язки"
+
+#: js/ajax.js:0;0;0;0;0;0;0
+#: js/ajax_view.js:0;0
+msgid "An error occurred at @path."
+msgstr ""
+
+#: js/tabs.js:0
+msgid "jQuery UI Tabs: Mismatching fragment identifier."
+msgstr ""
+
+#: js/tabs.js:0
+msgid "jQuery UI Tabs: Not enough arguments to add tab."
+msgstr ""
+
+#: modules/aggregator.views.inc:26
+msgid "Aggregator"
+msgstr "Підбірка новин"
+
+#: modules/aggregator.views.inc:31;299
+msgid "Aggregator item"
+msgstr ""
+
+#: modules/aggregator.views.inc:32
+msgid "Aggregator items are imported from external RSS and Atom news feeds."
+msgstr ""
+
+#: modules/aggregator.views.inc:41
+msgid "The title of the aggregator item."
+msgstr ""
+
+#: modules/aggregator.views.inc:59;191
+#: modules/node.views.inc:246
+msgid "Link"
+msgstr "Посилання"
+
+#: modules/aggregator.views.inc:60
+msgid "The link to the original source URL of the item."
+msgstr ""
+
+#: modules/aggregator.views.inc:76
+#: modules/comment.views.inc:95
+msgid "Author"
+msgstr "Автор"
+
+#: modules/aggregator.views.inc:77
+msgid "The author of the original imported item."
+msgstr ""
+
+#: modules/aggregator.views.inc:97
+#: modules/comment.views.inc:63
+#: modules/node.views.inc:362
+msgid "Body"
+msgstr "Тіло"
+
+#: modules/aggregator.views.inc:98
+msgid "The actual content of the imported item."
+msgstr ""
+
+#: modules/aggregator.views.inc:112
+#: modules/statistics.views.inc:231
+msgid "Timestamp"
+msgstr "Час"
+
+#: modules/aggregator.views.inc:113
+msgid "The date the original feed item was posted. (With some feeds, this will be the date it was imported.)"
+msgstr ""
+
+#: modules/aggregator.views.inc:135
+msgid "Aggregator feed"
+msgstr ""
+
+#: modules/aggregator.views.inc:147
+msgid "Feed ID"
+msgstr ""
+
+#: modules/aggregator.views.inc:148
+msgid "The unique ID of the aggregator feed."
+msgstr ""
+
+#: modules/aggregator.views.inc:173
+msgid "The title of the aggregator feed."
+msgstr ""
+
+#: modules/aggregator.views.inc:192
+msgid "The link to the source URL of the feed."
+msgstr ""
+
+#: modules/aggregator.views.inc:209
+msgid "Last checked"
+msgstr ""
+
+#: modules/aggregator.views.inc:210
+msgid "The date the feed was last checked for new content."
+msgstr ""
+
+#: modules/aggregator.views.inc:231
+msgid "The description of the aggregator feed."
+msgstr ""
+
+#: modules/aggregator.views.inc:245
+msgid "Last modified"
+msgstr ""
+
+#: modules/aggregator.views.inc:246
+msgid "The date of the most recent new content onf the feed."
+msgstr ""
+
+#: modules/aggregator.views.inc:300
+msgid "Display the aggregator item using the data from the original source."
+msgstr ""
+
+#: modules/book.views.inc:21;36;46;99
+msgid "Book"
+msgstr "Книга"
+
+#: modules/book.views.inc:30
+msgid "Top level book"
+msgstr ""
+
+#: modules/book.views.inc:31
+msgid "The book the node is in."
+msgstr ""
+
+#: modules/book.views.inc:58
+msgid "The weight of the book page."
+msgstr ""
+
+#: modules/book.views.inc:69
+#: modules/comment.views.inc:211
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:24
+msgid "Depth"
+msgstr ""
+
+#: modules/book.views.inc:70
+msgid "The depth of the book page in the hierarchy; top level books have a depth of 1."
+msgstr ""
+
+#: modules/book.views.inc:87
+msgid "Hierarchy"
+msgstr "Ієрархія"
+
+#: modules/book.views.inc:88
+msgid "The order of pages in the book hierarchy. If you want the exactly right order, remember to sort by weight, too."
+msgstr ""
+
+#: modules/book.views.inc:110
+#: modules/taxonomy.views.inc:263
+msgid "Parent"
+msgstr "Попередник"
+
+#: modules/book.views.inc:111
+msgid "The parent book node."
+msgstr ""
+
+#: modules/book.views.inc:116
+msgid "Book parent"
+msgstr ""
+
+#: modules/comment.views.inc:22;26;400;411
+msgid "Comment"
+msgstr "Коментар"
+
+#: modules/comment.views.inc:27
+msgid "Comments are responses to node content."
+msgstr ""
+
+#: modules/comment.views.inc:45
+msgid "The title of the comment."
+msgstr ""
+
+#: modules/comment.views.inc:64
+msgid "The text of the comment."
+msgstr ""
+
+#: modules/comment.views.inc:76
+msgid "ID"
+msgstr "Ідентифікатор"
+
+#: modules/comment.views.inc:77
+msgid "The comment ID of the field"
+msgstr ""
+
+#: modules/comment.views.inc:96
+msgid "The name of the comment's author. Can be rendered as a link to the author's homepage."
+msgstr ""
+
+#: modules/comment.views.inc:114
+msgid "Author's website"
+msgstr ""
+
+#: modules/comment.views.inc:115
+msgid "The website address of the comment's author. Can be rendered as a link. Will be empty if the author is a registered user."
+msgstr ""
+
+#: modules/comment.views.inc:133
+#: modules/node.views.inc:108
+msgid "Post date"
+msgstr ""
+
+#: modules/comment.views.inc:134
+msgid "Date and time of when the comment was posted."
+msgstr ""
+
+#: modules/comment.views.inc:149
+msgid "In moderation"
+msgstr ""
+
+#: modules/comment.views.inc:150
+msgid "Whether or not the comment is currently in moderation."
+msgstr ""
+
+#: modules/comment.views.inc:157
+#: modules/node.views.inc:206;215
+msgid "Moderated"
+msgstr ""
+
+#: modules/comment.views.inc:168
+msgid "View link"
+msgstr ""
+
+#: modules/comment.views.inc:169
+msgid "Provide a simple link to view the comment."
+msgstr ""
+
+#: modules/comment.views.inc:177
+#: modules/locale.views.inc:123
+#: modules/node.views.inc:254
+#: modules/user.views.inc:209
+msgid "Edit link"
+msgstr ""
+
+#: modules/comment.views.inc:178
+msgid "Provide a simple link to edit the comment."
+msgstr ""
+
+#: modules/comment.views.inc:186
+#: modules/node.views.inc:262;476
+#: modules/user.views.inc:217
+msgid "Delete link"
+msgstr ""
+
+#: modules/comment.views.inc:187
+msgid "Provide a simple link to delete the comment."
+msgstr ""
+
+#: modules/comment.views.inc:195
+msgid "Reply-to link"
+msgstr ""
+
+#: modules/comment.views.inc:196
+msgid "Provide a simple link to reply to the comment."
+msgstr ""
+
+#: modules/comment.views.inc:203
+msgid "Node link"
+msgstr ""
+
+#: modules/comment.views.inc:204
+msgid "Display the standard comment link used on regular nodes."
+msgstr ""
+
+#: modules/comment.views.inc:212
+msgid "Display the depth of the comment if it is threaded."
+msgstr ""
+
+#: modules/comment.views.inc:216
+msgid "Thread"
+msgstr "Напрям"
+
+#: modules/comment.views.inc:217
+msgid "Sort by the threaded order. This will keep child comments together with their parents."
+msgstr ""
+
+#: modules/comment.views.inc:223;229;264
+#: modules/node.views.inc:24;29;90;361;376;488;620;631;644
+#: modules/upload.views.inc:43
+msgid "Node"
+msgstr "Матеріал"
+
+#: modules/comment.views.inc:224
+msgid "The node the comment is a reply to."
+msgstr ""
+
+#: modules/comment.views.inc:234;240
+#: modules/node.views.inc:349
+#: modules/statistics.views.inc:204
+#: modules/user.views.inc:23;27;226;317
+msgid "User"
+msgstr "Користувач"
+
+#: modules/comment.views.inc:235
+msgid "The User ID of the comment's author."
+msgstr ""
+
+#: modules/comment.views.inc:245
+msgid "Parent CID"
+msgstr ""
+
+#: modules/comment.views.inc:246
+msgid "The Comment ID of the parent comment."
+msgstr ""
+
+#: modules/comment.views.inc:251;256
+msgid "Parent comment"
+msgstr ""
+
+#: modules/comment.views.inc:252
+msgid "The parent comment."
+msgstr ""
+
+#: modules/comment.views.inc:278
+msgid "Last comment time"
+msgstr "Час останнього коментаря"
+
+#: modules/comment.views.inc:279
+msgid "Date and time of when the last comment was posted."
+msgstr ""
+
+#: modules/comment.views.inc:294
+msgid "Last comment author"
+msgstr "Автор останнього коментаря"
+
+#: modules/comment.views.inc:295
+msgid "The name of the author of the last posted comment."
+msgstr ""
+
+#: modules/comment.views.inc:307
+msgid "Comment count"
+msgstr "Кількість коментарів"
+
+#: modules/comment.views.inc:308
+msgid "The number of comments a node has."
+msgstr ""
+
+#: modules/comment.views.inc:326
+msgid "Updated/commented date"
+msgstr ""
+
+#: modules/comment.views.inc:327
+msgid "The most recent of last comment posted or node updated time."
+msgstr ""
+
+#: modules/comment.views.inc:350
+msgid "New comments"
+msgstr ""
+
+#: modules/comment.views.inc:351
+msgid "The number of new comments on the node."
+msgstr ""
+
+#: modules/comment.views.inc:359
+msgid "Comment status"
+msgstr "Статус коментарів"
+
+#: modules/comment.views.inc:360
+msgid "Whether comments are enabled or disabled on the node."
+msgstr ""
+
+#: modules/comment.views.inc:374
+msgid "User posted or commented"
+msgstr ""
+
+#: modules/comment.views.inc:375
+msgid "Display nodes only if a user posted the node or commented on the node."
+msgstr ""
+
+#: modules/comment.views.inc:401
+msgid "Display the comment with standard comment view."
+msgstr ""
+
+#: modules/comment.views.inc:412
+msgid "Display the comment as RSS."
+msgstr ""
+
+#: modules/locale.views.inc:23;28;55;75;92;105;121
+msgid "Locale source"
+msgstr ""
+
+#: modules/locale.views.inc:29
+msgid "A source string for translation, in English or the default site language."
+msgstr ""
+
+#: modules/locale.views.inc:34
+msgid "LID"
+msgstr ""
+
+#: modules/locale.views.inc:35
+msgid "The ID of the source string."
+msgstr ""
+
+#: modules/locale.views.inc:56
+msgid "Location"
+msgstr "Розташування"
+
+#: modules/locale.views.inc:57
+msgid "A description of the location or context of the string."
+msgstr ""
+
+#: modules/locale.views.inc:76
+#: modules/locale/views_handler_filter_locale_group.inc:10
+msgid "Group"
+msgstr "Група"
+
+#: modules/locale.views.inc:77
+msgid "The group the translation is in."
+msgstr ""
+
+#: modules/locale.views.inc:93
+msgid "Source"
+msgstr "Джерело"
+
+#: modules/locale.views.inc:94
+msgid "The full original string."
+msgstr ""
+
+#: modules/locale.views.inc:106
+#: modules/locale/views_handler_filter_locale_version.inc:10
+msgid "Version"
+msgstr "Версія"
+
+#: modules/locale.views.inc:107
+msgid "The version of Drupal core that this string is for."
+msgstr ""
+
+#: modules/locale.views.inc:124
+msgid "Provide a simple link to edit the translations."
+msgstr ""
+
+#: modules/locale.views.inc:134;146;159;175;185
+msgid "Locale target"
+msgstr ""
+
+#: modules/locale.views.inc:147
+msgid "Translation"
+msgstr "Переклад"
+
+#: modules/locale.views.inc:148
+msgid "The full translation string."
+msgstr ""
+
+#: modules/locale.views.inc:160
+#: modules/translation.views.inc:32
+#: modules/locale/views_handler_filter_locale_language.inc:10
+#: modules/translation/views_handler_filter_node_language.inc:9
+msgid "Language"
+msgstr "Мова"
+
+#: modules/locale.views.inc:161
+msgid "The language this translation is in."
+msgstr ""
+
+#: modules/locale.views.inc:176
+msgid "Singular LID"
+msgstr ""
+
+#: modules/locale.views.inc:177
+msgid "The ID of the parent translation."
+msgstr ""
+
+#: modules/locale.views.inc:186;194
+msgid "Plural"
+msgstr ""
+
+#: modules/locale.views.inc:187
+msgid "Whether or not the translation is plural."
+msgstr ""
+
+#: modules/node.views.inc:30
+msgid "Nodes are a Drupal site's primary content."
+msgstr ""
+
+#: modules/node.views.inc:57
+msgid "Nid"
+msgstr ""
+
+#: modules/node.views.inc:58
+msgid "The node ID of the node."
+msgstr ""
+
+#: modules/node.views.inc:86;418
+msgid "The title of the node."
+msgstr ""
+
+#: modules/node.views.inc:109
+msgid "The date the node was posted."
+msgstr ""
+
+#: modules/node.views.inc:124
+msgid "Updated date"
+msgstr "Дата оновлення"
+
+#: modules/node.views.inc:125
+msgid "The date the node was last updated."
+msgstr ""
+
+#: modules/node.views.inc:141
+msgid "The type of a node (for example, \"blog entry\", \"forum post\", \"story\", etc)."
+msgstr ""
+
+#: modules/node.views.inc:160
+msgid "Whether or not the node is published."
+msgstr ""
+
+#: modules/node.views.inc:177;182
+msgid "Published or admin"
+msgstr ""
+
+#: modules/node.views.inc:178
+msgid "Filters out unpublished nodes if the current user cannot view them."
+msgstr ""
+
+#: modules/node.views.inc:188;196
+msgid "Promoted to front page"
+msgstr "Розміщене на першій сторінці"
+
+#: modules/node.views.inc:189
+msgid "Whether or not the node is promoted to the front page."
+msgstr ""
+
+#: modules/node.views.inc:207
+msgid "Whether or not the node is moderated."
+msgstr ""
+
+#: modules/node.views.inc:225;234
+msgid "Sticky"
+msgstr "Причіплено"
+
+#: modules/node.views.inc:226
+msgid "Whether or not the node is sticky."
+msgstr ""
+
+#: modules/node.views.inc:247
+msgid "Provide a simple link to the node."
+msgstr ""
+
+#: modules/node.views.inc:255
+msgid "Provide a simple link to edit the node."
+msgstr ""
+
+#: modules/node.views.inc:263
+msgid "Provide a simple link to delete the node."
+msgstr ""
+
+#: modules/node.views.inc:271;452
+#: modules/user.views.inc:129
+msgid "Created date"
+msgstr "Дата створення"
+
+#: modules/node.views.inc:272
+msgid "In the form of CCYYMMDD."
+msgstr ""
+
+#: modules/node.views.inc:280
+msgid "Created year + month"
+msgstr ""
+
+#: modules/node.views.inc:281
+msgid "In the form of YYYYMM."
+msgstr ""
+
+#: modules/node.views.inc:289
+msgid "Created year"
+msgstr ""
+
+#: modules/node.views.inc:290
+msgid "In the form of YYYY."
+msgstr ""
+
+#: modules/node.views.inc:298
+msgid "Created month"
+msgstr ""
+
+#: modules/node.views.inc:299
+msgid "In the form of MM (01 - 12)."
+msgstr ""
+
+#: modules/node.views.inc:307
+msgid "Created day"
+msgstr ""
+
+#: modules/node.views.inc:308
+msgid "In the form of DD (01 - 31)."
+msgstr ""
+
+#: modules/node.views.inc:316
+msgid "Created week"
+msgstr ""
+
+#: modules/node.views.inc:317
+msgid "In the form of WW (01 - 53)."
+msgstr ""
+
+#: modules/node.views.inc:329;334
+msgid "Node revision"
+msgstr ""
+
+#: modules/node.views.inc:335
+msgid "Node revisions are a history of changes to nodes."
+msgstr ""
+
+#: modules/node.views.inc:350
+msgid "Relate a node revision to the user who created the revision."
+msgstr ""
+
+#: modules/node.views.inc:355
+msgid "user"
+msgstr "користувач"
+
+#: modules/node.views.inc:363
+msgid "The actual, full data in the body field; this may not be valid data on all node types."
+msgstr ""
+
+#: modules/node.views.inc:377
+#: modules/node/views_plugin_row_node_view.inc:52
+msgid "Teaser"
+msgstr "Анонс"
+
+#: modules/node.views.inc:378
+msgid "The stored teaser field. This may not be valid or useful data on all node types."
+msgstr ""
+
+#: modules/node.views.inc:391
+msgid "Vid"
+msgstr ""
+
+#: modules/node.views.inc:392
+msgid "The revision ID of the node revision."
+msgstr ""
+
+#: modules/node.views.inc:438
+msgid "Log message"
+msgstr "Повідомлення в системний журнал"
+
+#: modules/node.views.inc:439
+msgid "The log message entered when the revision was created."
+msgstr ""
+
+#: modules/node.views.inc:453
+msgid "The date the node revision was created."
+msgstr ""
+
+#: modules/node.views.inc:468
+msgid "Revert link"
+msgstr ""
+
+#: modules/node.views.inc:469
+msgid "Provide a simple link to revert to the revision."
+msgstr ""
+
+#: modules/node.views.inc:477
+msgid "Provide a simple link to delete the node revision."
+msgstr ""
+
+#: modules/node.views.inc:504
+msgid "Has new content"
+msgstr ""
+
+#: modules/node.views.inc:507
+msgid "Show a marker if the node has new or updated content."
+msgstr ""
+
+#: modules/node.views.inc:510
+msgid "Show only nodes that have new content."
+msgstr ""
+
+#: modules/node.views.inc:621;632
+msgid "Display the node with standard node view."
+msgstr ""
+
+#: modules/node.views.inc:651
+msgid "Node ID from URL"
+msgstr ""
+
+#: modules/node.views.inc:718
+msgid "Display %display has no access control but does not contain a filter for published nodes."
+msgstr ""
+
+#: modules/poll.views.inc:20
+msgid "Poll"
+msgstr "Опитування"
+
+#: modules/poll.views.inc:35;43
+#: modules/user.views.inc:177;186
+msgid "Active"
+msgstr "Активний"
+
+#: modules/poll.views.inc:36
+msgid "Whether the poll is open for voting."
+msgstr ""
+
+#: modules/profile.views.inc:20;40
+msgid "Profile"
+msgstr "Профіль"
+
+#: modules/profile.views.inc:100
+msgid "@field-name"
+msgstr ""
+
+#: modules/profile.views.inc:107
+msgid "Profile textfield"
+msgstr ""
+
+#: modules/profile.views.inc:126
+msgid "Profile textarea"
+msgstr ""
+
+#: modules/profile.views.inc:142
+msgid "Profile checkbox"
+msgstr ""
+
+#: modules/profile.views.inc:159
+msgid "Profile URL"
+msgstr ""
+
+#: modules/profile.views.inc:175
+msgid "Profile selection"
+msgstr ""
+
+#: modules/profile.views.inc:195
+msgid "Profile freeform list %field-name."
+msgstr ""
+
+#: modules/profile.views.inc:207
+msgid "Profile date %field-name."
+msgstr ""
+
+#: modules/search.views.inc:23;86;104;167
+msgid "Search"
+msgstr "Пошук"
+
+#: modules/search.views.inc:72
+msgid "Score"
+msgstr "Оцінки"
+
+#: modules/search.views.inc:73
+msgid "The score of the search item. This will not be used if the search filter is not also present."
+msgstr ""
+
+#: modules/search.views.inc:93
+msgid "Links from"
+msgstr ""
+
+#: modules/search.views.inc:94
+msgid "Other nodes that are linked from the node."
+msgstr ""
+
+#: modules/search.views.inc:111
+msgid "Links to"
+msgstr ""
+
+#: modules/search.views.inc:112
+msgid "Other nodes that link to the node."
+msgstr ""
+
+#: modules/search.views.inc:123
+msgid "Search Terms"
+msgstr ""
+
+#: modules/search.views.inc:124
+msgid "The terms to search for."
+msgstr ""
+
+#: modules/search.views.inc:168
+msgid "Display the results with standard search view."
+msgstr ""
+
+#: modules/statistics.views.inc:24
+msgid "Node statistics"
+msgstr ""
+
+#: modules/statistics.views.inc:36
+msgid "Total views"
+msgstr "Переглядів"
+
+#: modules/statistics.views.inc:37
+msgid "The total number of times the node has been viewed."
+msgstr ""
+
+#: modules/statistics.views.inc:53
+msgid "Views today"
+msgstr "Переглядів сьогодні"
+
+#: modules/statistics.views.inc:54
+msgid "The total number of times the node has been viewed today."
+msgstr ""
+
+#: modules/statistics.views.inc:70
+msgid "Most recent view"
+msgstr ""
+
+#: modules/statistics.views.inc:71
+msgid "The most recent time the node has been viewed."
+msgstr ""
+
+#: modules/statistics.views.inc:89;94
+msgid "Access log"
+msgstr ""
+
+#: modules/statistics.views.inc:95
+msgid "Stores site access information."
+msgstr ""
+
+#: modules/statistics.views.inc:109
+msgid "Session ID"
+msgstr ""
+
+#: modules/statistics.views.inc:110
+msgid "Browser session ID of user that visited page."
+msgstr ""
+
+#: modules/statistics.views.inc:129
+msgid "Page title"
+msgstr "Назва сторінки"
+
+#: modules/statistics.views.inc:130
+msgid "Title of page visited."
+msgstr ""
+
+#: modules/statistics.views.inc:150
+msgid "Internal path to page visited (relative to Drupal root.)"
+msgstr "Внутрішній шлях до відвідуваної сторінки (відносно папки, де встановлено Drupal)."
+
+#: modules/statistics.views.inc:169
+msgid "Referrer"
+msgstr "Джерело"
+
+#: modules/statistics.views.inc:170
+msgid "Referrer URI."
+msgstr ""
+
+#: modules/statistics.views.inc:185
+msgid "Hostname"
+msgstr "Ім'я хосту"
+
+#: modules/statistics.views.inc:186
+msgid "Hostname of user that visited the page."
+msgstr ""
+
+#: modules/statistics.views.inc:205
+msgid "The user who visited the site."
+msgstr ""
+
+#: modules/statistics.views.inc:215
+msgid "Timer"
+msgstr ""
+
+#: modules/statistics.views.inc:216
+msgid "Time in milliseconds that the page took to load."
+msgstr ""
+
+#: modules/statistics.views.inc:232
+msgid "Timestamp of when the page was visited."
+msgstr ""
+
+#: modules/system.views.inc:25;30
+msgid "File"
+msgstr "Файл"
+
+#: modules/system.views.inc:31
+msgid "Files maintained by Drupal and various modules."
+msgstr ""
+
+#: modules/system.views.inc:49
+msgid "File ID"
+msgstr ""
+
+#: modules/system.views.inc:50
+msgid "The ID of the file."
+msgstr ""
+
+#: modules/system.views.inc:70
+msgid "The name of the file."
+msgstr ""
+
+#: modules/system.views.inc:89
+msgid "The path of the file."
+msgstr ""
+
+#: modules/system.views.inc:107
+msgid "Mime type"
+msgstr ""
+
+#: modules/system.views.inc:108
+msgid "The mime type of the file."
+msgstr ""
+
+#: modules/system.views.inc:126
+msgid "Size"
+msgstr "Розмір"
+
+#: modules/system.views.inc:127
+msgid "The size of the file."
+msgstr ""
+
+#: modules/system.views.inc:142
+msgid "Status"
+msgstr "Статус"
+
+#: modules/system.views.inc:143
+msgid "The status of the file."
+msgstr ""
+
+#: modules/system.views.inc:158
+msgid "Upload date"
+msgstr ""
+
+#: modules/system.views.inc:159
+msgid "The date the file was uploaded."
+msgstr ""
+
+#: modules/system.views.inc:204
+msgid "Temporary"
+msgstr "Тимчасово"
+
+#: modules/system.views.inc:205
+msgid "Permanent"
+msgstr "Постійно"
+
+#: modules/taxonomy.views.inc:24;67;156;174;230;270;307;318
+msgid "Taxonomy"
+msgstr "Таксономія"
+
+#: modules/taxonomy.views.inc:48
+msgid "Vocabulary name"
+msgstr "Назва словника"
+
+#: modules/taxonomy.views.inc:50
+msgid "Name of the vocabulary a term is a member of. This will be the vocabulary that whichever term the \"Taxonomy: Term\" field is; and can similarly cause duplicates."
+msgstr ""
+
+#: modules/taxonomy.views.inc:56
+msgid "Vocabulary ID"
+msgstr "ID словника"
+
+#: modules/taxonomy.views.inc:57
+msgid "The taxonomy vocabulary ID"
+msgstr ""
+
+#: modules/taxonomy.views.inc:70;120;217
+msgid "Term"
+msgstr "Термін"
+
+#: modules/taxonomy.views.inc:71
+msgid "Taxonomy terms are attached to nodes."
+msgstr ""
+
+#: modules/taxonomy.views.inc:96;200
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:35
+msgid "Term ID"
+msgstr "ID терміну"
+
+#: modules/taxonomy.views.inc:97;201
+msgid "The taxonomy term ID"
+msgstr ""
+
+#: modules/taxonomy.views.inc:121
+msgid "Taxonomy terms. Note that using this can cause duplicate nodes to appear in views; you must add filters to reduce the result set."
+msgstr ""
+
+#: modules/taxonomy.views.inc:131
+msgid "Taxonomy term name."
+msgstr ""
+
+#: modules/taxonomy.views.inc:140
+msgid "The term weight field"
+msgstr ""
+
+#: modules/taxonomy.views.inc:152
+msgid "Term description"
+msgstr ""
+
+#: modules/taxonomy.views.inc:153
+msgid "The description associated with a taxonomy term."
+msgstr ""
+
+#: modules/taxonomy.views.inc:164
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:39
+msgid "Vocabulary"
+msgstr "Словник"
+
+#: modules/taxonomy.views.inc:165
+msgid "Filter the results of \"Taxonomy: Term\" to a particular vocabulary."
+msgstr ""
+
+#: modules/taxonomy.views.inc:203
+msgid "All terms"
+msgstr "Всі терміни"
+
+#: modules/taxonomy.views.inc:204
+msgid "Display all taxonomy terms associated with a node from specified vocabularies."
+msgstr ""
+
+#: modules/taxonomy.views.inc:258
+msgid "Parent term"
+msgstr "Терм-попередник"
+
+#: modules/taxonomy.views.inc:259
+msgid "The parent term of the term. This can produce duplicate entries if you are using a vocabulary that allows multiple parents."
+msgstr ""
+
+#: modules/taxonomy.views.inc:291
+msgid "Term synonym"
+msgstr ""
+
+#: modules/taxonomy.views.inc:292
+msgid "Term synonyms may be used to find terms by alternate names."
+msgstr ""
+
+#: modules/taxonomy.views.inc:308
+msgid "Term ID (with depth)"
+msgstr ""
+
+#: modules/taxonomy.views.inc:309
+msgid "The depth filter is more complex, so provides fewer options."
+msgstr ""
+
+#: modules/taxonomy.views.inc:319
+msgid "Term ID depth modifier"
+msgstr ""
+
+#: modules/taxonomy.views.inc:320
+msgid "Allows the \"depth\" for Taxonomy: Term ID (with depth) to be modified via an additional argument."
+msgstr ""
+
+#: modules/taxonomy.views.inc:376
+msgid "Taxonomy term"
+msgstr "Термін таксономії"
+
+#: modules/translation.views.inc:31;48;80;97;107;117
+msgid "Node translation"
+msgstr "Переклад матеріалу"
+
+#: modules/translation.views.inc:33
+msgid "The language the content is in."
+msgstr ""
+
+#: modules/translation.views.inc:49
+msgid "Translation set node ID"
+msgstr ""
+
+#: modules/translation.views.inc:50
+msgid "The ID of the translation set the content belongs to."
+msgstr ""
+
+#: modules/translation.views.inc:69;74;98
+msgid "Source translation"
+msgstr "Базовий переклад"
+
+#: modules/translation.views.inc:70
+msgid "The source that this content was translated from."
+msgstr ""
+
+#: modules/translation.views.inc:81;84;91
+msgid "Translations"
+msgstr "Переклади"
+
+#: modules/translation.views.inc:82;85
+msgid "Versions of content in different languages."
+msgstr ""
+
+#: modules/translation.views.inc:99
+msgid "Nodes that are either untranslated or are the original versions of a translation set."
+msgstr ""
+
+#: modules/translation.views.inc:108
+msgid "Child translation"
+msgstr "Дочірній переклад"
+
+#: modules/translation.views.inc:109
+msgid "Nodes that are translations of a source translation."
+msgstr ""
+
+#: modules/translation.views.inc:118
+msgid "Translation status"
+msgstr "Статус перекладу"
+
+#: modules/translation.views.inc:119
+msgid "The translation status of the node--whether or not the translation needs to be updated."
+msgstr ""
+
+#: modules/translation.views.inc:126
+msgid "Outdated"
+msgstr "Просрочений"
+
+#: modules/upload.views.inc:25;113
+msgid "Upload"
+msgstr "Завантажити"
+
+#: modules/upload.views.inc:44
+msgid "The node the uploaded file is attached to"
+msgstr ""
+
+#: modules/upload.views.inc:46
+msgid "upload"
+msgstr "завантажити"
+
+#: modules/upload.views.inc:57
+msgid "The description of the uploaded file."
+msgstr ""
+
+#: modules/upload.views.inc:74
+msgid "Listed"
+msgstr ""
+
+#: modules/upload.views.inc:75
+msgid "Whether or not the file is marked to be listed."
+msgstr ""
+
+#: modules/upload.views.inc:92
+msgid "The weight, used for sorting."
+msgstr ""
+
+#: modules/upload.views.inc:114;127
+msgid "Attached files"
+msgstr "Вкладені файли"
+
+#: modules/upload.views.inc:115
+msgid "All files attached to a node with upload.module."
+msgstr ""
+
+#: modules/upload.views.inc:122
+#: modules/upload/views_handler_filter_upload_fid.inc:10
+msgid "Has attached files"
+msgstr "Присутні вкладені файли"
+
+#: modules/upload.views.inc:124
+msgid "Only display items with attached files. This can cause duplicates if there are multiple attached files."
+msgstr ""
+
+#: modules/upload.views.inc:128
+msgid "Add a relationship to gain access to more file data for files uploaded by upload.module. Note that this relationship will cause duplicate nodes if there are multiple files attached to the node."
+msgstr ""
+
+#: modules/upload.views.inc:134
+msgid "Files"
+msgstr "Файли"
+
+#: modules/user.views.inc:28
+msgid "Users who have created accounts on your site."
+msgstr ""
+
+#: modules/user.views.inc:48
+msgid "Uid"
+msgstr ""
+
+#: modules/user.views.inc:49
+msgid "The user ID"
+msgstr ""
+
+#: modules/user.views.inc:70
+msgid "Current"
+msgstr "Теперішній"
+
+#: modules/user.views.inc:71
+msgid "Filter the view to the currently logged in user."
+msgstr ""
+
+#: modules/user.views.inc:81
+msgid "The user or author name."
+msgstr ""
+
+#: modules/user.views.inc:97
+msgid "E-mail"
+msgstr "Адреса e-mail"
+
+#: modules/user.views.inc:98
+msgid "Email address for a given user. This field is normally not shown to users, so be cautious when using it."
+msgstr ""
+
+#: modules/user.views.inc:113
+msgid "Picture"
+msgstr "Аватар"
+
+#: modules/user.views.inc:114
+msgid "The user's picture, if allowed."
+msgstr ""
+
+#: modules/user.views.inc:122
+msgid "Has Avatar"
+msgstr "Має Аватар"
+
+#: modules/user.views.inc:130
+msgid "The date the user was created."
+msgstr ""
+
+#: modules/user.views.inc:145
+msgid "Last access"
+msgstr "Останній вхід"
+
+#: modules/user.views.inc:146
+msgid "The user's last access date."
+msgstr ""
+
+#: modules/user.views.inc:161
+msgid "Last login"
+msgstr "Останній вхід"
+
+#: modules/user.views.inc:162
+msgid "The user's last login date."
+msgstr ""
+
+#: modules/user.views.inc:178
+msgid "Whether a user is active or blocked."
+msgstr ""
+
+#: modules/user.views.inc:196
+msgid "Signature"
+msgstr "Підпис"
+
+#: modules/user.views.inc:197
+msgid "The user's signature."
+msgstr "Підпис користувача"
+
+#: modules/user.views.inc:210
+msgid "Provide a simple link to edit the user."
+msgstr ""
+
+#: modules/user.views.inc:218
+msgid "Provide a simple link to delete the user."
+msgstr ""
+
+#: modules/user.views.inc:247
+msgid "Roles"
+msgstr "Ролі"
+
+#: modules/user.views.inc:248
+msgid "Roles that a user belongs to."
+msgstr ""
+
+#: modules/user.views.inc:260
+msgid "No role"
+msgstr ""
+
+#: modules/user.views.inc:303
+msgid "User ID from URL"
+msgstr ""
+
+#: modules/user.views.inc:309
+msgid "User ID from logged in user"
+msgstr ""
+
+#: modules/views.views.inc:18
+msgid "Global"
+msgstr "Глобальне"
+
+#: modules/views.views.inc:24
+msgid "Random"
+msgstr "Випадково"
+
+#: modules/views.views.inc:25
+msgid "Randomize the display order."
+msgstr "Випадковість сортування відображення"
+
+#: modules/views.views.inc:32
+msgid "Null"
+msgstr "Зеро"
+
+#: modules/views.views.inc:33
+msgid "Allow an argument to be ignored. The query will not be altered by this argument."
+msgstr ""
+
+#: modules/views.views.inc:40
+msgid "Custom text"
+msgstr "Свій текст"
+
+#: modules/views.views.inc:41
+msgid "Provide custom text or link."
+msgstr "Занзачити свій текст або посилання"
+
+#: modules/aggregator/views_plugin_row_aggregator_rss.inc:25
+#: modules/node/views_plugin_row_node_rss.inc:32
+msgid "Full text"
+msgstr "Повний текст"
+
+#: modules/aggregator/views_plugin_row_aggregator_rss.inc:26
+#: modules/node/views_plugin_row_node_rss.inc:33
+msgid "Title plus teaser"
+msgstr "Назва плюс анонс"
+
+#: modules/aggregator/views_plugin_row_aggregator_rss.inc:27
+#: modules/node/views_plugin_row_node_rss.inc:34
+msgid "Title only"
+msgstr "Тільки назва"
+
+#: modules/aggregator/views_plugin_row_aggregator_rss.inc:28
+#: modules/node/views_plugin_row_node_rss.inc:35
+msgid "Use default RSS settings"
+msgstr ""
+
+#: modules/comment/views_handler_argument_comment_user_uid.inc:11
+#: modules/user/views_handler_argument_user_uid.inc:17
+msgid "Anonymous"
+msgstr "Гість"
+
+#: modules/comment/views_handler_argument_comment_user_uid.inc:17
+msgid "No user"
+msgstr ""
+
+#: modules/comment/views_handler_field_comment.inc:30
+msgid "Link this field to its comment"
+msgstr ""
+
+#: modules/comment/views_handler_field_comment.inc:31
+#: modules/comment/views_handler_field_node_new_comments.inc:26
+#: modules/node/views_handler_field_node.inc:33
+#: modules/system/views_handler_field_file.inc:30
+#: modules/taxonomy/views_handler_field_taxonomy.inc:34
+#: modules/user/views_handler_field_user.inc:31
+msgid "This will override any other link you have set."
+msgstr ""
+
+#: modules/comment/views_handler_field_comment_link.inc:23
+#: modules/locale/views_handler_field_locale_link_edit.inc:25
+#: modules/node/views_handler_field_node_link.inc:24
+#: modules/user/views_handler_field_user_link.inc:22
+msgid "Text to display"
+msgstr "Текст для відображення"
+
+#: modules/comment/views_handler_field_comment_link.inc:34
+#: modules/node/views_handler_field_node_link.inc:35
+#: modules/user/views_handler_field_user_link.inc:38
+msgid "view"
+msgstr "перегляд"
+
+#: modules/comment/views_handler_field_comment_link_delete.inc:12
+#: modules/node/views_handler_field_node_link_delete.inc:26
+#: modules/node/views_handler_field_node_revision_link_delete.inc:35
+#: modules/user/views_handler_field_user_link_delete.inc:13
+msgid "delete"
+msgstr "стерти"
+
+#: modules/comment/views_handler_field_comment_link_edit.inc:21
+#: modules/locale/views_handler_field_locale_link_edit.inc:41
+#: modules/node/views_handler_field_node_link_edit.inc:26
+#: modules/user/views_handler_field_user_link_edit.inc:13
+msgid "edit"
+msgstr "редагувати"
+
+#: modules/comment/views_handler_field_comment_link_reply.inc:13
+msgid "reply"
+msgstr "відповісти"
+
+#: modules/comment/views_handler_field_comment_node_link.inc:36
+msgid "Show teaser-style link"
+msgstr ""
+
+#: modules/comment/views_handler_field_comment_username.inc:25
+msgid "Link this field to its user or an author's homepage"
+msgstr ""
+
+#: modules/comment/views_handler_field_node_comment.inc:12
+#: modules/comment/views_handler_filter_node_comment.inc:10
+msgid "Disabled"
+msgstr "Вимкнено"
+
+#: modules/comment/views_handler_field_node_comment.inc:14
+#: modules/comment/views_handler_filter_node_comment.inc:11
+msgid "Read only"
+msgstr "Тільки для читання"
+
+#: modules/comment/views_handler_field_node_comment.inc:16
+#: modules/comment/views_handler_filter_node_comment.inc:12
+msgid "Read/Write"
+msgstr "Читати/Писати"
+
+#: modules/comment/views_handler_field_node_new_comments.inc:25
+msgid "Link this field to new comments"
+msgstr ""
+
+#: modules/comment/views_handler_field_node_new_comments.inc:31
+msgid "Display nothing if no new comments"
+msgstr ""
+
+#: modules/comment/views_plugin_row_comment_view.inc:21
+#: modules/node/views_plugin_row_node_view.inc:64
+msgid "Display links"
+msgstr "Відображення посилань"
+
+#: modules/locale/views_handler_argument_locale_group.inc:32
+msgid "Unknown group"
+msgstr "Невідома група"
+
+#: modules/locale/views_handler_argument_locale_language.inc:30
+#: modules/node/views_handler_argument_node_language.inc:29
+#: modules/translation/views_handler_argument_node_language.inc:29
+msgid "Unknown language"
+msgstr "Невідома мова"
+
+#: modules/locale/views_handler_filter_locale_language.inc:11
+#: modules/translation/views_handler_filter_node_language.inc:10
+msgid "Current user's language"
+msgstr "Теперішня мова користувача"
+
+#: modules/locale/views_handler_filter_locale_language.inc:11
+#: modules/translation/views_handler_filter_node_language.inc:10
+msgid "Default site language"
+msgstr "Базова мова сайту"
+
+#: modules/locale/views_handler_filter_locale_language.inc:11
+#: modules/translation/views_handler_filter_node_language.inc:10
+msgid "No language"
+msgstr ""
+
+#: modules/locale/views_handler_filter_locale_version.inc:12
+msgid "Current installed version"
+msgstr "Теперішня встановлена версія"
+
+#: modules/node/views_handler_argument_dates_various.inc:167
+msgid "Week @week"
+msgstr "Тиждень @week"
+
+#: modules/node/views_handler_argument_node_type.inc:30
+msgid "Unknown node type"
+msgstr ""
+
+#: modules/node/views_handler_field_history_user_timestamp.inc:32
+msgid "Check for new comments as well"
+msgstr ""
+
+#: modules/node/views_handler_field_node.inc:32
+msgid "Link this field to its node"
+msgstr ""
+
+#: modules/node/views_handler_field_node_revision_link_revert.inc:36
+msgid "revert"
+msgstr "повернути"
+
+#: modules/node/views_handler_filter_node_type.inc:9
+msgid "Node type"
+msgstr "Тип ноди"
+
+#: modules/node/views_plugin_argument_validate_node.inc:29
+msgid "Types"
+msgstr "Типи"
+
+#: modules/node/views_plugin_argument_validate_node.inc:32
+msgid "If you wish to validate for specific node types, check them; if none are checked, all nodes will pass."
+msgstr ""
+
+#: modules/node/views_plugin_argument_validate_node.inc:39
+msgid "Validate user has access to the node"
+msgstr ""
+
+#: modules/node/views_plugin_argument_validate_node.inc:47
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:33
+msgid "Argument type"
+msgstr "Тип аргументу"
+
+#: modules/node/views_plugin_argument_validate_node.inc:49
+msgid "Node ID"
+msgstr "Ідентифікатор ноди"
+
+#: modules/node/views_plugin_argument_validate_node.inc:50
+msgid "Node IDs separated by , or +"
+msgstr ""
+
+#: modules/node/views_plugin_row_node_rss.inc:129
+msgid "read more"
+msgstr "докладніше"
+
+#: modules/node/views_plugin_row_node_view.inc:53
+msgid "Full node"
+msgstr "Повний матеріал"
+
+#: modules/node/views_plugin_row_node_view.inc:59
+msgid "Build mode"
+msgstr ""
+
+#: modules/node/views_plugin_row_node_view.inc:69
+msgid "Display node comments"
+msgstr ""
+
+#: modules/search/views_handler_field_search_score.inc:21
+msgid "No alternate"
+msgstr ""
+
+#: modules/search/views_handler_field_search_score.inc:28
+msgid "Alternative sort"
+msgstr ""
+
+#: modules/search/views_handler_field_search_score.inc:29
+msgid "If no search is performed and this field does not appear, pick an alternative default table sort field."
+msgstr ""
+
+#: modules/search/views_handler_field_search_score.inc:36
+msgid "Alternate sort order"
+msgstr ""
+
+#: modules/search/views_handler_filter_search.inc:23
+msgid "On empty input"
+msgstr ""
+
+#: modules/search/views_handler_filter_search.inc:26
+msgid "Show All"
+msgstr ""
+
+#: modules/search/views_handler_filter_search.inc:27
+msgid "Show None"
+msgstr ""
+
+#: modules/search/views_handler_filter_search.inc:42
+msgid "Enter the terms you wish to search for."
+msgstr "Впишіть слова для пошуку."
+
+#: modules/search/views_handler_filter_search.inc:60
+msgid "You must include at least one positive keyword with @count characters or more."
+msgstr "Вам необхідно вказати хоча б одне ключове слово, що містить не менше @count символів."
+
+#: modules/search/views_handler_filter_search.inc:64
+msgid "Search for either of the two terms with uppercase OR. For example, cats OR dogs."
+msgstr ""
+
+#: modules/search/views_plugin_row_search_view.inc:23
+msgid "Display score"
+msgstr ""
+
+#: modules/system/views_handler_argument_file_fid.inc:13
+msgid "No title"
+msgstr ""
+
+#: modules/system/views_handler_field_file.inc:29
+#: modules/upload/views_handler_field_upload_description.inc:24
+#: modules/upload/views_handler_field_upload_fid.inc:25
+msgid "Link this field to download the file"
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_taxonomy.inc:18
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:125
+msgid "No name"
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_term_node_tid.inc:17
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:38
+msgid "Set the breadcrumb for the term parents"
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_term_node_tid.inc:18
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:39
+msgid "If selected, the breadcrumb trail will include all parent terms, each one linking to this view. Note that this only works if just one term was received."
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:26
+msgid "The depth will match nodes tagged with terms in the hierarchy. For example, if you have the term \"fruit\" and a child term \"apple\", with a depth of 1 (or higher) then filtering for the term \"fruit\" will get nodes that are tagged with \"apple\" as well as \"fruit\". If negative, the reverse is true; searching for \"apple\" will also pick up nodes tagged with \"fruit\" if depth is -1 (or lower)."
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:31
+msgid "Allow multiple terms per argument"
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc:32
+msgid "If selected, users can enter multiple arguments in the form of 1+2+3. Due to the number of JOINs it would require, AND will be treated as OR with this argument."
+msgstr ""
+
+#: modules/taxonomy/views_handler_argument_vocabulary_vid.inc:15
+msgid "No vocabulary"
+msgstr ""
+
+#: modules/taxonomy/views_handler_field_taxonomy.inc:33
+msgid "Link this field to its taxonomy term page"
+msgstr ""
+
+#: modules/taxonomy/views_handler_field_term_node_tid.inc:34
+msgid "Link this field to its term page"
+msgstr ""
+
+#: modules/taxonomy/views_handler_field_term_node_tid.inc:41
+msgid "Limit terms by vocabulary"
+msgstr ""
+
+#: modules/taxonomy/views_handler_field_term_node_tid.inc:55
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:23
+msgid "Vocabularies"
+msgstr "Словники"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:41
+msgid "Select which vocabulary to show terms for in the regular options."
+msgstr ""
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:52
+msgid "Selection type"
+msgstr "Тип вибору"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:53
+msgid "Dropdown"
+msgstr "Випадання"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:53
+msgid "Autocomplete"
+msgstr "Автодоповнення"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:59
+msgid "Show hierarchy in dropdown"
+msgstr ""
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:76
+msgid "An invalid vocabulary is selected. Please change it in the options."
+msgstr ""
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:94;158
+msgid "Select terms from vocabulary @voc"
+msgstr ""
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:94;158
+msgid "Select terms"
+msgstr "Вибір термінів"
+
+#: modules/taxonomy/views_handler_filter_term_node_tid.inc:273
+msgid "Unable to find term: @terms"
+msgid_plural "Unable to find terms: @terms"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:26
+msgid "If you wish to validate for specific vocabularies, check them; if none are checked, all terms will pass."
+msgstr ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:36
+msgid "Term IDs separated by , or +"
+msgstr ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:37
+msgid "Term name or synonym"
+msgstr ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:38
+msgid "Term name/synonym converted to Term ID"
+msgstr ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:41
+msgid "Select the form of this argument; if using term name, it is generally more efficient to convert it to a term ID and use Taxonomy: Term ID rather than Taxonomy: Term Name\" as an argument."
+msgstr ""
+
+#: modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc:48
+msgid "Transform dashes in URL to spaces in term name arguments"
+msgstr ""
+
+#: modules/translation/views_handler_filter_node_tnid.inc:22
+msgid "Include untranslated nodes"
+msgstr ""
+
+#: modules/translation/views_handler_relationship_translation.inc:24
+msgid "Current language"
+msgstr "Теперішня мова"
+
+#: modules/translation/views_handler_relationship_translation.inc:25
+msgid "Default language"
+msgstr "Базова мова"
+
+#: modules/translation/views_handler_relationship_translation.inc:32
+msgid "Translation option"
+msgstr "Параметри перекладу"
+
+#: modules/translation/views_handler_relationship_translation.inc:33
+msgid "The translation options allows you to select which translation or translations in a translation set join on. Select \"Current language\" or \"Default language\" to join on the translation in the current or default language respectively. Select a specific language to join on a translation in that language. If you select \"All\", each translation will create a new row, which may appear to cause duplicates."
+msgstr ""
+
+#: modules/upload/views_handler_field_upload_fid.inc:31
+msgid "Only show \"listed\" file attachments"
+msgstr ""
+
+#: modules/user/views_handler_field_user.inc:30
+msgid "Link this field to its user"
+msgstr ""
+
+#: modules/user/views_handler_field_user_mail.inc:16
+msgid "Link this field"
+msgstr ""
+
+#: modules/user/views_handler_field_user_mail.inc:19
+msgid "No link"
+msgstr "Без посилання"
+
+#: modules/user/views_handler_field_user_mail.inc:20
+msgid "To the user"
+msgstr "До користувача"
+
+#: modules/user/views_handler_field_user_mail.inc:21
+msgid "With a mailto:"
+msgstr ""
+
+#: modules/user/views_handler_field_user_name.inc:30
+msgid "Overwrite the value to display for anonymous users"
+msgstr ""
+
+#: modules/user/views_handler_field_user_name.inc:33
+msgid "If selected, you will see a field to enter the text to use for anonymous users."
+msgstr ""
+
+#: modules/user/views_handler_field_user_name.inc:36
+msgid "Text to display for anonymous users"
+msgstr ""
+
+#: modules/user/views_handler_filter_user_current.inc:10
+msgid "Is the logged in user"
+msgstr ""
+
+#: modules/user/views_handler_filter_user_name.inc:28
+msgid "Usernames"
+msgstr "Імена користувачів"
+
+#: modules/user/views_handler_filter_user_name.inc:29
+msgid "Enter a comma separated list of user names."
+msgstr ""
+
+#: modules/user/views_handler_filter_user_name.inc:112
+msgid "Unable to find user: @users"
+msgid_plural "Unable to find users: @users"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: modules/user/views_plugin_argument_default_user.inc:17
+msgid "Also look for a node and use the node author"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:22
+msgid "Type of user argument to allow"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:24
+msgid "Only allow numeric UIDs"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:25
+msgid "Only allow string usernames"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:26
+msgid "Allow both numeric UIDs and string usernames"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:37
+msgid "Restrict user based on role"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:47
+msgid "Restrict to the selected roles"
+msgstr ""
+
+#: modules/user/views_plugin_argument_validate_user.inc:50
+msgid "If no roles are selected, users from any role will be allowed."
+msgstr ""
+
+#: plugins/views_plugin_access_none.inc:9
+msgid "Unrestricted"
+msgstr "Необмежено"
+
+#: plugins/views_plugin_access_perm.inc:37
+msgid "Only users with the selected permission flag will be able to access this display. Note that users with \"access all views\" can see any view, regardless of other permissions."
+msgstr ""
+
+#: plugins/views_plugin_access_role.inc:21
+msgid "No role(s) selected"
+msgstr ""
+
+#: plugins/views_plugin_access_role.inc:24
+msgid "Multiple roles"
+msgstr "Багато ролей"
+
+#: plugins/views_plugin_access_role.inc:43
+msgid "Only the checked roles will be able to access this display. Note that users with \"access all views\" can see any view, regardless of role."
+msgstr ""
+
+#: plugins/views_plugin_access_role.inc:49
+msgid "You must select at least one role if type is \"by role\""
+msgstr ""
+
+#: plugins/views_plugin_argument_default.inc:32
+msgid "Default argument"
+msgstr "Базовий аргумент"
+
+#: plugins/views_plugin_argument_default.inc:54
+msgid "Note: you do not have permission to modify this. If you change the default argument type, this setting will be lost and you will NOT be able to get it back."
+msgstr ""
+
+#: plugins/views_plugin_argument_default_php.inc:17
+msgid "PHP argument code"
+msgstr ""
+
+#: plugins/views_plugin_argument_default_php.inc:20
+msgid "Enter PHP code that returns a value to use for this argument. Do not use <?php ?>. You must return only a single value for just this argument."
+msgstr ""
+
+#: plugins/views_plugin_argument_validate.inc:43
+msgid "Note: you do not have permission to modify this. If you change the validator, this setting will be lost and you will NOT be able to get it back."
+msgstr ""
+
+#: plugins/views_plugin_argument_validate_php.inc:19
+msgid "PHP validate code"
+msgstr ""
+
+#: plugins/views_plugin_argument_validate_php.inc:21
+msgid "Enter PHP code that returns TRUE or FALSE. No return is the same as FALSE, so be SURE to return something if you do not want to declare the argument invalid. Do not use <?php ?>. The argument to validate will be \"$argument\" and the view will be \"$view\". You may change the argument by setting \"$handler->argument\"."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:558
+msgid "Broken field"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:575
+msgid "Basic settings"
+msgstr "Базові параметри"
+
+#: plugins/views_plugin_display.inc:582
+msgid "Change the name of this display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:594
+msgid "Change the title that this display will use."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:604
+msgid "Style"
+msgstr "Стиль"
+
+#: plugins/views_plugin_display.inc:606
+msgid "Change the style plugin."
+msgstr "Змінити додаток стилю"
+
+#: plugins/views_plugin_display.inc:620
+msgid "Row style"
+msgstr "Рядковий стиль"
+
+#: plugins/views_plugin_display.inc:622
+msgid "Change the row plugin."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:632
+msgid "Use AJAX"
+msgstr "Використовувати AJAX"
+
+#: plugins/views_plugin_display.inc:634
+msgid "Change whether or not this display will use AJAX."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:641
+msgid "Use pager"
+msgstr "Використовувати сторінковість"
+
+#: plugins/views_plugin_display.inc:642
+msgid "Mini"
+msgstr "Міні"
+
+#: plugins/views_plugin_display.inc:643
+msgid "Change this display's pager setting."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:650;822
+msgid "Items per page"
+msgstr "Елементів на сторінку"
+
+#: plugins/views_plugin_display.inc:650;822
+#: plugins/views_plugin_style_summary.inc:43
+msgid "Items to display"
+msgstr "Відображати елементів"
+
+#: plugins/views_plugin_display.inc:651
+msgid "Unlimited"
+msgstr "Необмежений"
+
+#: plugins/views_plugin_display.inc:652
+msgid "Change how many items to display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:658
+msgid "More link"
+msgstr "Посилання \"ще(далі)\""
+
+#: plugins/views_plugin_display.inc:660
+msgid "Specify whether this display will provide a \"more\" link."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:666;849
+msgid "Distinct"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:668;846
+msgid "Display only distinct items, without duplicates."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:681
+msgid "Access"
+msgstr "ДОступ"
+
+#: plugins/views_plugin_display.inc:683
+msgid "Specify access control type for this display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:687
+msgid "Change settings for this access type."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:707
+msgid "Link display"
+msgstr "Відображення посилання"
+
+#: plugins/views_plugin_display.inc:709
+msgid "Specify which display this display will link to."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:716
+msgid "Exposed form in block"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:718
+msgid "Allow the exposed form to appear in a block instead of the view."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:721;897
+msgid "Header"
+msgstr "Заголовок"
+
+#: plugins/views_plugin_display.inc:721;913
+msgid "Footer"
+msgstr "Нижній колонтитул"
+
+#: plugins/views_plugin_display.inc:721;929
+msgid "Empty text"
+msgstr "Пустий текст"
+
+#: plugins/views_plugin_display.inc:737
+msgid "Unknown/missing format"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:745
+msgid "Change this display's !name."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:751
+msgid "Theme"
+msgstr "Тема"
+
+#: plugins/views_plugin_display.inc:752
+msgid "Information"
+msgstr "Інформація"
+
+#: plugins/views_plugin_display.inc:753
+msgid "Get information on how to theme this display"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:779
+msgid "The name of this display"
+msgstr "Ім'я відображення"
+
+#: plugins/views_plugin_display.inc:782
+msgid "This title will appear only in the administrative interface for the View."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:787
+msgid "The title of this view"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:790
+msgid "This title will be displayed with the view, wherever titles are normally displayed; i.e, as the page title, block title, etc."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:795
+msgid "Use AJAX when available to load this view"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:799
+msgid "If set, this view will use an AJAX mechanism for paging, table sorting and exposed filters. This means the entire page will not refresh. It is not recommended that you use this if this view is the main content of the page as it will prevent deep linking to specific pages, but it is very useful for side content."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:808
+msgid "Use a pager for this view"
+msgstr "Використовувати розбиття по сторінках для цього вигляду"
+
+#: plugins/views_plugin_display.inc:811
+msgid "Full pager"
+msgstr "Повний стиль"
+
+#: plugins/views_plugin_display.inc:811
+msgid "Mini pager"
+msgstr "Міні стиль"
+
+#: plugins/views_plugin_display.inc:816
+msgid "Pager element"
+msgstr "Розбиття по сторінках"
+
+#: plugins/views_plugin_display.inc:817
+msgid "Unless you're experiencing problems with pagers related to this view, you should leave this at 0. If using multiple pagers on one page you may need to set this number to a higher value so as not to conflict within the ?page= array. Large values will add a lot of commas to your URLs, so avoid if possible."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:826
+msgid "The number of items to display per page. Enter 0 for no limit."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:831
+msgid "Offset"
+msgstr "Зміщення"
+
+#: plugins/views_plugin_display.inc:832
+msgid "The number of items to skip. For example, if this field is 3, the first 3 items will be skipped and not displayed. Offset can not be used if items to display is 0; instead use a very large number there."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:837
+msgid "Add a more link to the bottom of the display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:840
+msgid "Create more link"
+msgstr "Створити посилання \"далі(ще)\""
+
+#: plugins/views_plugin_display.inc:841
+msgid "This will add a more link to the bottom of this view, which will link to the page view. If you have more than one page view, the link will point to the display specified in 'Link display' above."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:850
+msgid "This will make the view display only distinct items. If there are multiple identical items, each will be displayed only once. You can use this to try and remove duplicates from a view, though it does not always work. Note that this can slow queries down, so use it with caution."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:855
+msgid "Access restrictions"
+msgstr "Обмеження доступу"
+
+#: plugins/views_plugin_display.inc:874;954
+msgid "You may also adjust the !settings for the currently selected style by clicking on the icon."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:874;954;999
+msgid "settings"
+msgstr "налаштування"
+
+#: plugins/views_plugin_display.inc:882
+msgid "Access options"
+msgstr "Параметри доступу"
+
+#: plugins/views_plugin_display.inc:900;916
+msgid "Display even if view has no result"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:907
+msgid "Text to display at the top of the view. May contain an explanation or links or whatever you like. Optional."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:923
+msgid "Text to display beneath the view. May contain an explanation or links or whatever you like. Optional."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:934
+msgid "Text to display if the view has no results. Optional."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:940
+msgid "How should this view be styled"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:946
+msgid "If the style you choose has settings, be sure to click the settings button that will appear next to it in the View summary."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:960
+msgid "Style options"
+msgstr "Параметри стилю"
+
+#: plugins/views_plugin_display.inc:971
+msgid "Row style options"
+msgstr "Параметри стилю рядка"
+
+#: plugins/views_plugin_display.inc:986
+msgid "How should each row in this view be styled"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:999
+msgid "You may also adjust the !settings for the currently selected row style by clicking on the icon."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1005
+msgid "Which display to use for path"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1014
+msgid "Which display to use to get this display's path for things like summary links, rss feed links, more links, etc."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1019
+msgid "Theming information"
+msgstr "Інформація для розробки тем"
+
+#: plugins/views_plugin_display.inc:1027
+msgid "Display output"
+msgstr "Відображення виводу"
+
+#: plugins/views_plugin_display.inc:1031
+msgid "Alternative display output"
+msgstr "Альтернативний стиль відображення"
+
+#: plugins/views_plugin_display.inc:1038
+msgid "Style output"
+msgstr "Стиль виводу"
+
+#: plugins/views_plugin_display.inc:1042
+msgid "Alternative style"
+msgstr "Альтернативний стиль"
+
+#: plugins/views_plugin_display.inc:1049
+msgid "Row style output"
+msgstr "Стиль виводу - в рядок"
+
+#: plugins/views_plugin_display.inc:1053
+msgid "Alternative row style"
+msgstr "Альтернативний стиль рядка"
+
+#: plugins/views_plugin_display.inc:1061
+msgid "Field @field (ID: @id)"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1069
+msgid "This section lists all possible templates for the display plugin and for the style plugins, ordered roughly from the least specific to the most specific. The active template for each plugin -- which is the most specific template found on the system -- is highlighted in bold."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1084
+msgid "Rescan template files"
+msgstr "Перечитати файли шаблона"
+
+#: plugins/views_plugin_display.inc:1090
+msgid "Important! When adding, removing, or renaming template files, it is necessary to make Drupal aware of the changes by making it rescan the files on your system. By clicking this button you clear Drupal's theme registry and thereby trigger this rescanning process. The highlighted templates above will then reflect the new state of your system."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1096
+msgid "Theming information (display)"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1097;1124;1153;1182
+msgid "Back to !info."
+msgstr "Повернутись до !info"
+
+#: plugins/views_plugin_display.inc:1097;1124;1153;1182
+msgid "theming information"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1100
+msgid "This display has no theming information"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1103
+msgid "This is the default theme template used for this display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1109
+msgid "This is an alternative template for this display."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1123
+msgid "Theming information (style)"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1129
+msgid "This display has no style theming information"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1132
+msgid "This is the default theme template used for this style."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1138
+msgid "This is an alternative template for this style."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1152;1181
+msgid "Theming information (row style)"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1158
+msgid "This display has no row style theming information"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1161;1184
+msgid "This is the default theme template used for this row style."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1167
+msgid "This is an alternative template for this row style."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1199
+msgid "Put the exposed form in a block"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1203
+msgid "If set, any exposed widgets will not appear with this view. Instead, a block will be made available to the Drupal block administration system, and the exposed form will appear there. Note that this block must be enabled manually, Views will not enable it for you."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1238
+msgid "File found in folder @template-path"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1242
+msgid "(File not found, in folder @template-path)"
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1399
+msgid "Override"
+msgstr "Переназначити"
+
+#: plugins/views_plugin_display.inc:1404
+msgid "Status: using default values."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1408
+msgid "Update default display"
+msgstr "Оновити базове відображення"
+
+#: plugins/views_plugin_display.inc:1413
+msgid "Use default"
+msgstr "Використовувати базове"
+
+#: plugins/views_plugin_display.inc:1418
+msgid "Status: using overridden values."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1639
+msgid "Display \"@display\" uses fields but there are none defined for it or all are excluded."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1644
+msgid "Display \"@display\" uses a path but the path is undefined."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1650
+msgid "Display \"@display\" has an invalid style plugin."
+msgstr ""
+
+#: plugins/views_plugin_display.inc:1682
+msgid "Exposed form: @view-@display_id"
+msgstr "Відображена форма: @view-@display_id"
+
+#: plugins/views_plugin_display_attachment.inc:35
+msgid "Before"
+msgstr "Перед"
+
+#: plugins/views_plugin_display_attachment.inc:36
+msgid "After"
+msgstr "Після"
+
+#: plugins/views_plugin_display_attachment.inc:37
+msgid "Both"
+msgstr "Все"
+
+#: plugins/views_plugin_display_attachment.inc:57
+msgid "Attachment settings"
+msgstr "Параметри вкладень"
+
+#: plugins/views_plugin_display_attachment.inc:62;109
+msgid "Inherit arguments"
+msgstr "Залежність аргументів"
+
+#: plugins/views_plugin_display_attachment.inc:68;118
+msgid "Inherit exposed filters"
+msgstr "Залежність відображених фільтрів"
+
+#: plugins/views_plugin_display_attachment.inc:74;127
+msgid "Position"
+msgstr "Позиція"
+
+#: plugins/views_plugin_display_attachment.inc:80
+#: plugins/views_plugin_display_feed.inc:98
+msgid "Multiple displays"
+msgstr "Сукупність відображень"
+
+#: plugins/views_plugin_display_attachment.inc:95;136
+#: plugins/views_plugin_display_feed.inc:113;140
+msgid "Attach to"
+msgstr "Приєднати до"
+
+#: plugins/views_plugin_display_attachment.inc:112;121
+msgid "Inherit"
+msgstr "Залежність"
+
+#: plugins/views_plugin_display_attachment.inc:113
+msgid "Should this display inherit its arguments from the parent display to which it is attached?"
+msgstr ""
+
+#: plugins/views_plugin_display_attachment.inc:122
+msgid "Should this display inherit its exposed filter values from the parent display to which it is attached?"
+msgstr ""
+
+#: plugins/views_plugin_display_attachment.inc:130
+msgid "Attach before or after the parent display?"
+msgstr ""
+
+#: plugins/views_plugin_display_attachment.inc:145
+msgid "Select which display or displays this should attach to."
+msgstr ""
+
+#: plugins/views_plugin_display_block.inc:34
+msgid "@view: @display"
+msgstr "@view: @display"
+
+#: plugins/views_plugin_display_block.inc:68
+msgid "Block settings"
+msgstr "Параметри Блоку"
+
+#: plugins/views_plugin_display_block.inc:82
+msgid "Admin"
+msgstr "Адмін"
+
+#: plugins/views_plugin_display_block.inc:106
+msgid "Do not cache"
+msgstr "Не кешувати"
+
+#: plugins/views_plugin_display_block.inc:107
+msgid "Cache once for everything (global)"
+msgstr "Кеш разово для всього (глобально)"
+
+#: plugins/views_plugin_display_block.inc:108
+msgid "Per page"
+msgstr "Для сторінки"
+
+#: plugins/views_plugin_display_block.inc:109
+msgid "Per role"
+msgstr "Для ролі"
+
+#: plugins/views_plugin_display_block.inc:110
+msgid "Per role per page"
+msgstr "Для ролі і для сторінки"
+
+#: plugins/views_plugin_display_block.inc:111
+msgid "Per user"
+msgstr "Для користувача"
+
+#: plugins/views_plugin_display_block.inc:112
+msgid "Per user per page"
+msgstr "Для користувача і для сторінки"
+
+#: plugins/views_plugin_display_block.inc:137
+msgid "Block admin description"
+msgstr ""
+
+#: plugins/views_plugin_display_block.inc:140
+msgid "This will appear as the name of this block in administer >> site building >> blocks."
+msgstr ""
+
+#: plugins/views_plugin_display_block.inc:145
+msgid "Block caching type"
+msgstr ""
+
+#: plugins/views_plugin_display_block.inc:149
+msgid "This sets the default status for Drupal's built-in block caching method; this requires that caching be turned on in block administration, and be careful because you have little control over when this cache is flushed."
+msgstr ""
+
+#: plugins/views_plugin_display_feed.inc:86
+msgid "Feed settings"
+msgstr "Налаштування вибірок"
+
+#: plugins/views_plugin_display_feed.inc:90
+msgid "Using the site name"
+msgstr ""
+
+#: plugins/views_plugin_display_feed.inc:132
+msgid "Use the site name for the title"
+msgstr ""
+
+#: plugins/views_plugin_display_feed.inc:149
+msgid "The feed icon will be available only to the selected displays."
+msgstr ""
+
+#: plugins/views_plugin_display_feed.inc:155
+msgid "This view will be displayed by visiting this path on your site. It is recommended that the path be something like \"path/%/%/feed\" or \"path/%/%/rss.xml\", putting one % in the path for each argument you have defined in the view."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:194
+msgid "Page settings"
+msgstr "Параметри Сторінки"
+
+#: plugins/views_plugin_display_page.inc:219
+msgid "No menu"
+msgstr "Без меню"
+
+#: plugins/views_plugin_display_page.inc:222
+msgid "Normal: @title"
+msgstr "Нормально: @title"
+
+#: plugins/views_plugin_display_page.inc:226
+msgid "Tab: @title"
+msgstr "Закладка: @title"
+
+#: plugins/views_plugin_display_page.inc:236;319
+msgid "Menu"
+msgstr "Меню"
+
+#: plugins/views_plugin_display_page.inc:242
+msgid "Change settings for the parent menu"
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:255
+msgid "The menu path or URL of this view"
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:259
+msgid "This view will be displayed by visiting this path on your site. You may use \"%\" in your URL to represent values that will be used for arguments: For example, \"node/%/feed\"."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:265
+msgid "Menu item entry"
+msgstr "Пункт елемента меню"
+
+#: plugins/views_plugin_display_page.inc:282
+msgid "No menu entry"
+msgstr "Без пункта меню"
+
+#: plugins/views_plugin_display_page.inc:283
+msgid "Normal menu entry"
+msgstr "Нормальний пункт меню"
+
+#: plugins/views_plugin_display_page.inc:284;370
+msgid "Menu tab"
+msgstr "Закладки меню"
+
+#: plugins/views_plugin_display_page.inc:285
+msgid "Default menu tab"
+msgstr "Базові закладки меню"
+
+#: plugins/views_plugin_display_page.inc:294
+msgid "If set to normal or tab, enter the text to use for the menu item."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:302
+msgid "If set to normal or tab, enter the text to use for the menu item's description."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:309
+msgid "Warning: Changing this item's menu will not work reliably in Drupal 6.4 or earlier. Please upgrade your copy of Drupal at !url."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:323
+msgid "Insert item into an available menu."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:334
+msgid "Menu selection requires the activation of menu module."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:342
+msgid "The lower the weight the higher/further left it will appear."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:348
+msgid "Default tab options"
+msgstr "Базові параметри закладки"
+
+#: plugins/views_plugin_display_page.inc:357
+msgid "When providing a menu item as a tab, Drupal needs to know what the parent menu item of that tab will be. Sometimes the parent will already exist, but other times you will need to have one created. The path of a parent item will always be the same path with the last part left off. i.e, if the path to this view is foo/bar/baz, the parent path would be foo/bar."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:368
+msgid "Parent menu item"
+msgstr "Батьківський елемент меню"
+
+#: plugins/views_plugin_display_page.inc:370
+msgid "Already exists"
+msgstr "Вже наявне"
+
+#: plugins/views_plugin_display_page.inc:370
+msgid "Normal menu item"
+msgstr "Нормальний елемент меню"
+
+#: plugins/views_plugin_display_page.inc:378
+msgid "If creating a parent menu item, enter the title of the item."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:386
+msgid "If creating a parent menu item, enter the description of the item."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:392
+msgid "Tab weight"
+msgstr "Вага закладки"
+
+#: plugins/views_plugin_display_page.inc:396
+msgid "If the parent menu item is a tab, enter the weight of the tab. The lower the number, the more to the left it will be."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:410
+msgid "\"$arg\" is no longer supported. Use % instead."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:414
+msgid "\"%\" may not be used for the first segment of a path."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:424
+msgid "Views cannot create normal menu items for paths with a % in them."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:431
+msgid "A display whose path ends with a % cannot be a tab."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:436
+msgid "Title is required for this menu type."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:467
+msgid "Display @display is set to use a menu but the menu title is not set."
+msgstr ""
+
+#: plugins/views_plugin_display_page.inc:473
+msgid "Display @display is set to use a parent menu but the parent menu title is not set."
+msgstr ""
+
+#: plugins/views_plugin_row_fields.inc:40
+msgid "Inline fields"
+msgstr "Поля без розділювачів"
+
+#: plugins/views_plugin_row_fields.inc:43
+msgid "Inline fields will be displayed next to each other rather than one after another."
+msgstr ""
+
+#: plugins/views_plugin_row_fields.inc:51
+msgid "The separator may be placed between inline fields to keep them from squishing up next to each other. You can use HTML in this field."
+msgstr ""
+
+#: plugins/views_plugin_style.inc:91
+msgid "Grouping field"
+msgstr "Групуюче поле"
+
+#: plugins/views_plugin_style.inc:94
+msgid "You may optionally specify a field by which to group the records. Leave blank to not group."
+msgstr ""
+
+#: plugins/views_plugin_style.inc:191
+msgid "Style @style requires a row style but the row plugin is invalid."
+msgstr ""
+
+#: plugins/views_plugin_style_grid.inc:33
+msgid "Number of columns"
+msgstr "Кількість колонок"
+
+#: plugins/views_plugin_style_grid.inc:38
+msgid "Alignment"
+msgstr "Розташування"
+
+#: plugins/views_plugin_style_grid.inc:39
+msgid "Horizontal"
+msgstr "Горизонтально"
+
+#: plugins/views_plugin_style_grid.inc:39
+msgid "Vertical"
+msgstr "Вертикально"
+
+#: plugins/views_plugin_style_grid.inc:41
+msgid "Horizontal alignment will place items starting in the upper left and moving right. Vertical alignment will place items starting in the upper left and moving down."
+msgstr ""
+
+#: plugins/views_plugin_style_list.inc:32
+msgid "List type"
+msgstr "Тип списку"
+
+#: plugins/views_plugin_style_rss.inc:56
+msgid "Use the site mission for the description"
+msgstr ""
+
+#: plugins/views_plugin_style_rss.inc:60
+msgid "RSS description"
+msgstr "Опис RSS"
+
+#: plugins/views_plugin_style_rss.inc:62
+msgid "This will appear in the RSS feed itself."
+msgstr ""
+
+#: plugins/views_plugin_style_summary.inc:34
+msgid "Display record count with link"
+msgstr ""
+
+#: plugins/views_plugin_style_summary.inc:39
+msgid "Override number of items to display"
+msgstr ""
+
+#: plugins/views_plugin_style_summary_unformatted.inc:26
+msgid "Display items inline"
+msgstr "Відображення елементів без розділювачів"
+
+#: plugins/views_plugin_style_table.inc:126
+msgid "You need at least one field before you can configure your table settings"
+msgstr ""
+
+#: plugins/views_plugin_style_table.inc:135
+msgid "Override normal sorting if click sorting is used"
+msgstr ""
+
+#: plugins/views_plugin_style_table.inc:141
+msgid "Enable Drupal style \"sticky\" table headers (Javascript)"
+msgstr ""
+
+#: plugins/views_plugin_style_table.inc:143
+msgid "(Sticky header effects will not be active for preview below, only on live output.)"
+msgstr ""
+
+#: plugins/views_plugin_style_table.inc:148
+msgid "Default sort order"
+msgstr "Базове сортування"
+
+#: plugins/views_plugin_style_table.inc:151
+msgid "If a default sort order is selected, what order should it use by default."
+msgstr ""
+
+#: plugins/views_plugin_style_table.inc:237
+msgid "Place fields into columns; you may combine multiple fields into the same column. If you do, the separator in the column specified will be used to separate the fields. Check the sortable box to make that column click sortable, and check the default sort radio to determine which column will be sorted by default, if any. You may control column order and field labels in the fields section."
+msgstr ""
+
+#: theme/views-more.tpl.php:15
+msgid "more"
+msgstr "докладніше"
+
+#: theme/views-ui-edit-item.tpl.php:32
+msgid "The style selected does not utilize fields."
+msgstr ""
+
+#: theme/views-ui-edit-item.tpl.php:34
+msgid "None defined"
+msgstr "Не зазначено"
+
+#: theme/views-ui-edit-tab.tpl.php:31
+msgid "View settings"
+msgstr "Параметри виглядів"
+
+#: theme/views-ui-edit-view.tpl.php:11
+msgid "This view is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to break this lock."
+msgstr ""
+
+#: theme/views-ui-edit-view.tpl.php:16
+msgid "New view"
+msgstr "Новий вигляд"
+
+#: theme/views-ui-edit-view.tpl.php:18
+msgid "Changed view"
+msgstr "Змінений вигляд"
+
+#: theme/views-ui-edit-view.tpl.php:23
+msgid "View %name, displaying items of type @base."
+msgstr ""
+
+#: theme/views-ui-edit-view.tpl.php:42
+msgid "Live preview"
+msgstr "Швидкий вигляд"
+
+#: theme/views-ui-list-views.tpl.php:17
+msgid "@type @base view: @view"
+msgstr "@type @base view: @view"
+
+#: theme/views-ui-list-views.tpl.php:27
+msgid "Title: @title"
+msgstr "Заголовок: @title"
+
+#: theme/views-ui-list-views.tpl.php:30
+msgid "Path: !path"
+msgstr "Шлях: !path"
+
+#: theme/theme.inc:92
+msgid "Edit this view"
+msgstr "Правити вигляд"
+
+#: theme/theme.inc:323
+msgid "sort by @s"
+msgstr "сортувати за @s"
+
+#: theme/theme.inc:600
+msgid "‹‹"
+msgstr "‹‹"
+
+#: theme/theme.inc:605
+msgid "››"
+msgstr "››"
+
+#: theme/theme.inc:618
+msgid "@current of @max"
+msgstr ""
+
+#: views_export/views_export.module:77
+msgid "There are no views to be exported at this time."
+msgstr "Наразі відсутні Вигляди для експортування"
+
+#: views_export/views_export.module:109
+msgid "Show only these tags"
+msgstr "Показувати лише ці теги"
+
+#: views_export/views_export.module:123
+msgid "Module name"
+msgstr "Ім'я модуля"
+
+#: views_export/views_export.module:124
+msgid "Enter the module name to export code to."
+msgstr ""
+
+#: views_export/views_export.module:205
+msgid "Put this in @module.module in your modules/@module directory"
+msgstr ""
+
+#: views_export/views_export.module:218
+msgid "Put this in @module.views_default.inc in your modules/@module directory or modules/@module/includes directory"
+msgstr ""
+
+#: views_export/views_export.module:44
+msgid "use views exporter"
+msgstr "використання експорту виглядів"
+
+#: views_export/views_export.module:17
+msgid "Bulk export"
+msgstr "Масовий експорт"
+
+#: views_export/views_export.module:0
+msgid "views_export"
+msgstr "views_export"
+
+#: views_export/views_export.info:0
+msgid "Views exporter"
+msgstr "Експорт виглядів"
+
+#: views_export/views_export.info:0
+msgid "Allows exporting multiple views at once."
+msgstr ""
+
Index: sites/all/modules/views/views_ui.info
===================================================================
--- sites/all/modules/views/views_ui.info (.../trunk) (revision 1945)
+++ sites/all/modules/views/views_ui.info (.../branches/drupal6) (revision 1945)
@@ -5,9 +5,9 @@
core = 6.x
dependencies[] = views
-; Information added by d.o-cvs-to-svn export/import script on 2009-04-08
-version = "6.x-2.4"
+; Information added by d.o-cvs-to-svn export/import script on 2009-07-03
+version = "6.x-2.6"
core = "6.x"
project = "views"
-datestamp = "1239214636"
+datestamp = "1246652433"
Index: sites/all/modules/views/views.info
===================================================================
--- sites/all/modules/views/views.info (.../trunk) (revision 1945)
+++ sites/all/modules/views/views.info (.../branches/drupal6) (revision 1945)
@@ -4,9 +4,9 @@
package = Views
core = 6.x
-; Information added by d.o-cvs-to-svn export/import script on 2009-04-08
-version = "6.x-2.4"
+; Information added by d.o-cvs-to-svn export/import script on 2009-07-03
+version = "6.x-2.6"
core = "6.x"
project = "views"
-datestamp = "1239214636"
+datestamp = "1246652433"
Index: sites/all/modules/views/docs/docs.php
===================================================================
--- sites/all/modules/views/docs/docs.php (.../trunk) (revision 1945)
+++ sites/all/modules/views/docs/docs.php (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
2,
+ 'path' => drupal_get_path('module', 'example') . '/includes/views',
+ );
}
/**
@@ -496,6 +506,17 @@
}
/**
+ * This hook is called right before all default views are cached to the
+ * database. It takes a keyed array of views by reference.
+ */
+function hook_views_default_views_alter(&$views) {
+ if (isset($views['taxonomy_term'])) {
+ $views['taxonomy_term']->set_display('default');
+ $views['taxonomy_term']->display_handler->set_option('title', 'Categories');
+ }
+}
+
+/**
* Stub hook documentation
*
* This hook should be placed in MODULENAME.views_convert.inc and it will be auto-loaded.
Index: sites/all/modules/views/help/api-tables.html
===================================================================
--- sites/all/modules/views/help/api-tables.html (.../trunk) (revision 1945)
+++ sites/all/modules/views/help/api-tables.html (.../branches/drupal6) (revision 1945)
@@ -1,4 +1,4 @@
-
+
Tables are described to Views via hook_views_data(), which returns an array of table information, keyed by the name of the table. For example, if your module is describing three tables, 'foo', 'bar' and 'baz', your array will look like this:
A handler definition for the "Sort criteria" section, which will be used to add an ORDER BY clause to the view. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_sort'.
relationship
-
A handler definition for the "Field" section, which is a way to bring in new or alternative base tables in the view. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_relationship'. The basic relationship handler requires 'base' and 'field' to be set; 'base' and 'field' represent the "right" half of the join that will use this field as the left side.
+
A handler definition for the "Field" section, which is a way to bring in new or alternative base tables in the view. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_relationship'. The basic relationship handler requires 'base' and 'base field' to be set; 'base' and 'base field' represent the "right" half of the join that will use this field as the left side.
argument
A handler definition for the "Field" section, which is method of accepting user input from the URL or some other source. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_argument'.
In this example you will create a context-sensitive block that shows the titles of recent blog entries by an author when viewing one of their posts. This will demonstrate using Views arguments to dynamically filter a view's contents at display time.
+
+
Before working through this example, enable the Blog module and populate some entries from a few different users.
+
+
Creating the View
+
The first step is creating a view for our recent blog entries block. Because the block will show the titles of blog entries, this view is considered a "Node" type. Go to add new view, enter the following properties, and click Next:
+
+
+
View name
+
recent_blog_entries
+
View description
+
List of recent blog entries for a given author.
+
View tag
+
blog
+
View type
+
Node
+
+
+
Generating a list of blog entries
+
It will be much easier to see the view progress if we can see it doing something. In this section, we will create a basic view displaying blog entry titles.
+
+
+
In the third column, locate the Fields area. Generally speaking, fields are the pieces of information that you want to display in the view (in this case, node title). Click the + icon to add a field.
+
Scroll down to Defaults: Add fields, below the settings table. A large selection of fields will be available.
+
In the Groups drop-down menu, select Node. This will limit the list to only the default fields exposed by Node module.
+
Scroll down the list, select the Node: Title field, and click Add.
+
You will now be presented with settings for the Node: Title field. Delete the label from the Label field, so that each individual node title is not prefixed with the word "Title." Additionally, check the Link this field to its node box so that visitors who see an interesting title can click directly on it to read the blog entry to which it belongs.
+
When finished, click Update. If you scroll down to the Live Preview section, you should now see a list of several node titles; however both blog entries and other node types will be in the list. Let's fix that.
+
In the fourth column, locate the Filters area. Filters limit the results displayed in the view, and we can use this to our advantage here by showing node titles only from blog entries and not every type of node. Click the + icon to add a filter.
+
As before, scroll down to the Defaults: Add filters section, select Node from the Groups select box to limit the list of options to only those exposed by Node module.
+
Scroll down and select the Node: Type field and click Add. In the settings page that appears, leave Operator as Is one of and select Blog entry under Node type. Click Update when finished.
+
Now, by scrolling down to Live preview, you'll see that the list only shows blog entries.
+
+
+
Adding context with arguments
+
While filters are very useful for limiting the results of a view when the condition is always consistent (for example, a view of blog entry nodes should always be filtered by the blog entry type), something filters can't do is smart decision-making based on the page context. In our case, we want the view to display a different list of blog entries when looking at a post by user 'admin' than we do when looking at a post by user 'member', and filters won't be able to help.
+
+
Luckily, there's another way to filter a view's content: arguments. Through arguments, Views are able to obtain additional context (typically via dynamic URLs with IDs in them) and can take this context into consideration when displaying the view.
+
+
Let's walk through adding and configuring an argument to our view so that we can change its contents based on post author.
+
+
+
In the third column, locate the Arguments area. Click the + icon to add an argument.
+
Because we are basing the view around content authors, this time under Groups select User. Check User: Uid and click Add.
+
The Defaults: Configure Argument User: Uid settings page has a lot going on, but only a few things that need our attention.
+
The Title field here, unlike the Title field under Basic Settings, can be based upon the context that the view is being displayed in. Change the title to 'Recent entries by %1.' %1 will later be expanded to the user's name (based on the User: Uid argument) when the view is displayed.
+
Under Action to take if argument is not present, there are a variety of options, ranging from displaying a 404 or a 403 page to simply displaying all values in the view. In our case, if an argument isn't specified (which it won't be, since this view will be displayed in a sidebar block, not as a page with its own URL), we want to give it a default one to act on. Select Provide default argument.
+
Assuming JavaScript is enabled in your browser, you should now get another selection for Default argument type. Select User ID from URL, which will then provide a new option, Also look for a node and use the node author. Select it. This will cause Views to first see if it can figure out a user ID from the current URL (for example, user/1). If it can't, it will instead check to see if the current page is a node page (such as node/42) and, if so, take the user ID from the node's author field instead.
+
Validator options provide a useful way to control what kind of arguments your view will accept. Select User as the Validator. By default, changing this setting will check the incoming argument and ensure it's a valid user ID; if not, the view will be hidden from the page.
+
Once you have changed the argument's title, default argument, and validator options, click Update to save your changes.
+
You'll notice that now the Live preview no longer shows anything. Did we just break the view? Fortunately, no. It's merely abiding by our wishes to hide itself if there is no valid user ID given to it. Try entering a '1' in the Arguments box and clicking Preview. You should now see a list of only user 1's blog entries.
+
+
+
Creating the block
+
So the live preview is now showing basically what we want. There's just one problem: we have no way to stick what we've done so far into a sidebar block! Let's fix that by adding a new Display.
+
+
+
In the first column, under Defaults, there is a select box containing entries such as Page, Feed, and, yes, Block! Select Block and click Add display.
+
There's not much else to do here as far as Views is concerned. Under Block settings, click the None link next to Admin and fill in a description for the block in the administrative interface, such as: 'Recent blog entries by author.' and click Update.
+
Save your work by clicking the Save button at the bottom of the Views interface. You should receive a message that the view has been saved.
+
Next, navigate to the blocks interface and drag the 'Recent blog entries by author' block to the right sidebar region (or similar) and click Save blocks.
+
You'll notice this appeared to do nothing. No block shows in the sidebar. But remember, we are looking at an adminitrative page; we are not looking at a page that would provide a user ID context. Navigate to the main blog listing and click on an entry there. You should now see a sidebar block, titled something like "Recent entries by admin," with a list of blog entries beneath it.
+
+
+
Finishing touches
+
There are still a few remaining things to do before our view is complete. For example, we said that the block was to show recent blog entries, but instead it's showing them in the order they were entered, with oldest on top. Additionally, even unpublished entries are showing in the list currently.
';
}
}
Index: sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc
===================================================================
--- sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
value;
}
+ // If we're configuring an exposed filter, add an option.
+ $form['value']['#options'] += array('All' => check_plain(t('')));
}
}
+ function value_validate(&$form, &$form_state) {
+ if ($form_state['values']['options']['value'] == 'All' && empty($form_state['values']['options']['expose']['optional'])) {
+ form_set_error('value', t('You must select a value unless this is an optional exposed filter.'));
+ }
+ }
+
function admin_summary() {
if (!empty($this->options['exposed'])) {
return t('exposed');
Index: sites/all/modules/views/handlers/views_handler_relationship.inc
===================================================================
--- sites/all/modules/views/handlers/views_handler_relationship.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/handlers/views_handler_relationship.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
'all');
$options['wildcard_substitution'] = array('default' => t('All'), 'translatable' => TRUE);
$options['title'] = array('default' => '', 'translatable' => TRUE);
+ $options['breadcrumb'] = array('default' => '', 'translatable' => TRUE);
$options['default_argument_type'] = array('default' => 'fixed');
$options['default_argument'] = array('default' => '');
$options['validate_type'] = array('default' => 'none');
@@ -120,6 +121,15 @@
'#default_value' => $this->options['title'],
'#description' => t('The title to use when this argument is present. It will override the title of the view and titles from previous arguments. You can use percent substitution here to replace with argument titles. Use "%1" for the first argument, "%2" for the second, etc.'),
);
+
+ $form['breadcrumb'] = array(
+ '#prefix' => '
',
+ '#suffix' => '
',
+ '#type' => 'textfield',
+ '#title' => t('Breadcrumb'),
+ '#default_value' => $this->options['breadcrumb'],
+ '#description' => t('The Breadcrumb title to use when this argument is present. If no breadcrumb is setted here, default Title values will be used, see "Title" for percent substitutions.'),
+ );
$form['clear_start'] = array(
'#value' => '
',
Index: sites/all/modules/views/handlers/views_handler_filter_in_operator.inc
===================================================================
--- sites/all/modules/views/handlers/views_handler_filter_in_operator.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/handlers/views_handler_filter_in_operator.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
value_options = array(t('Yes'), t('No'));
+ if (isset($this->value_options)) {
+ return;
+ }
+
+ if (isset($this->definition['options callback']) && is_callable($this->definition['options callback'])) {
+ $this->value_options = call_user_func($this->definition['options callback']);
+ }
+ else {
+ $this->value_options = array(t('Yes'), t('No'));
+ }
}
function expose_options() {
@@ -50,23 +62,93 @@
}
/**
- * Provide inclusive/exclusive matching
+ * This kind of construct makes it relatively easy for a child class
+ * to add or remove functionality by overriding this function and
+ * adding/removing items from this array.
*/
- function operator_options() {
- return array(
- 'in' => t('Is one of'),
- 'not in' => t('Is not one of'),
+ function operators() {
+ $operators = array(
+ 'in' => array(
+ 'title' => t('Is one of'),
+ 'short' => t('in'),
+ 'short_single' => t('='),
+ 'method' => 'op_simple',
+ 'values' => 1,
+ ),
+ 'not in' => array(
+ 'title' => t('Is not one of'),
+ 'short' => t('not in'),
+ 'short_single' => t('<>'),
+ 'method' => 'op_simple',
+ 'values' => 1,
+ ),
);
+ // if the definition allows for the empty operator, add it.
+ if (!empty($this->definition['allow empty'])) {
+ $operators += array(
+ 'empty' => array(
+ 'title' => t('Is empty (NULL)'),
+ 'method' => 'op_empty',
+ 'short' => t('empty'),
+ 'values' => 0,
+ ),
+ 'not empty' => array(
+ 'title' => t('Is not empty (NULL)'),
+ 'method' => 'op_empty',
+ 'short' => t('not empty'),
+ 'values' => 0,
+ ),
+ );
+ }
+
+ return $operators;
}
+ /**
+ * Build strings from the operators() for 'select' options
+ */
+ function operator_options($which = 'title') {
+ $options = array();
+ foreach ($this->operators() as $id => $info) {
+ $options[$id] = $info[$which];
+ }
+
+ return $options;
+ }
+
+ function operator_values($values = 1) {
+ $options = array();
+ foreach ($this->operators() as $id => $info) {
+ if (isset($info['values']) && $info['values'] == $values) {
+ $options[] = $id;
+ }
+ }
+
+ return $options;
+ }
+
function value_form(&$form, &$form_state) {
+ $form['value'] = array();
+
$this->get_value_options();
$options = $this->value_options;
$default_value = (array) $this->value;
+ $which = 'all';
+ if (!empty($form['operator'])) {
+ $source = ($form['operator']['#type'] == 'radios') ? 'radio:options[operator]' : 'edit-options-operator';
+ }
if (!empty($form_state['exposed'])) {
$identifier = $this->options['expose']['identifier'];
+ if (empty($this->options['expose']['use_operator']) || empty($this->options['expose']['operator'])) {
+ // exposed and locked.
+ $which = in_array($this->operator, $this->operator_values(1)) ? 'value' : 'none';
+ }
+ else {
+ $source = 'edit-' . form_clean_id($this->options['expose']['operator']);
+ }
+
if (!empty($this->options['expose']['reduce'])) {
$options = $this->reduce_value_options();
@@ -90,20 +172,39 @@
}
}
- $form['value'] = array(
- '#type' => $this->value_form_type,
- '#title' => $this->value_title,
- '#options' => $options,
- '#default_value' => $default_value,
- // These are only valid for 'select' type, but do no harm to checkboxes.
- '#multiple' => TRUE,
- '#size' => count($options) > 8 ? 8 : count($options),
- );
+ if ($which == 'all' || $which == 'value') {
+ if ($this->value_form_type == 'checkboxes') {
+ foreach ($options as $key => $option) {
+ $options[$key] = check_plain($option);
+ }
+ }
+ $form['value'] = array(
+ '#type' => $this->value_form_type,
+ '#title' => $this->value_title,
+ '#options' => $options,
+ '#default_value' => $default_value,
+ // These are only valid for 'select' type, but do no harm to checkboxes.
+ '#multiple' => TRUE,
+ '#size' => count($options) > 8 ? 8 : count($options),
+ );
+ if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier])) {
+ $form_state['input'][$identifier] = $default_value;
+ }
- if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier])) {
- $form_state['input'][$identifier] = $default_value;
+ if ($which == 'all') {
+ $process = array();
+ if ($this->value_form_type == 'checkboxes' || $this->value_form_type == 'radios') {
+ $process[] = "expand_$this->value_form_type";
+ $form['value']['#prefix'] = '
+
Index: sites/all/modules/views/theme/theme.inc
===================================================================
--- sites/all/modules/views/theme/theme.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/theme/theme.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
name . '__' . $display->id;
$themes[] = $hook . '__' . $display->id;
+ $themes[] = $hook . '__' . preg_replace('/[^a-z0-9]/', '-', strtolower($view->tag));
if ($display->id != $display->display_plugin) {
$themes[] = $hook . '__' . $view->name . '__' . $display->display_plugin;
$themes[] = $hook . '__' . $display->display_plugin;
@@ -106,7 +107,7 @@
),
);
- drupal_alter('views_admin_links', $vars['admin_links_raw']);
+ drupal_alter('views_admin_links', $vars['admin_links_raw'], $view);
$vars['admin_links'] = theme('links', $vars['admin_links_raw']);
views_add_css('views');
}
@@ -139,7 +140,8 @@
'view_args' => implode('/', $view->args),
'view_path' => $_GET['q'],
// Pass through URL to ensure we get e.g. language prefixes.
- 'view_base_path' => isset($view->display['page']) ? substr(url($view->display['page']->display_options['path']), strlen($base_path)) : '',
+// 'view_base_path' => isset($view->display['page']) ? substr(url($view->display['page']->display_options['path']), strlen($base_path)) : '',
+ 'view_base_path' => $view->get_path(),
'view_dom_id' => $vars['dom_id'],
// To fit multiple views on a page, the programmer may have
// overridden the display's pager_element.
@@ -346,12 +348,12 @@
$field_output = $renders[$num][$field];
// Don't bother with separators and stuff if the field does not show up.
- if (!isset($field_output) && isset($vars['rows'][$num][$column])) {
+ if (empty($field_output) && !empty($vars['rows'][$num][$column])) {
continue;
}
// Place the field into the column, along with an optional separator.
- if (isset($vars['rows'][$num][$column])) {
+ if (!empty($vars['rows'][$num][$column])) {
if (!empty($options['info'][$column]['separator'])) {
$vars['rows'][$num][$column] .= filter_xss_admin($options['info'][$column]['separator']);
}
@@ -436,7 +438,8 @@
$vars['classes'] = array();
// Set up striping values.
foreach ($rows as $id => $row) {
- $vars['classes'][$id] = 'views-row-' . ($id + 1);
+ $vars['classes'][$id] = 'views-row';
+ $vars['classes'][$id] .= ' views-row-' . ($id + 1);
$vars['classes'][$id] .= ' views-row-' . ($id % 2 ? 'even' : 'odd');
if ($id == 0) {
$vars['classes'][$id] .= ' views-row-first';
Index: sites/all/modules/views/views.install
===================================================================
--- sites/all/modules/views/views.install (.../trunk) (revision 1945)
+++ sites/all/modules/views/views.install (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
array(
'type' => 'varchar',
- 'length' => '32',
+ 'length' => '64',
'default' => '',
'not null' => TRUE,
'description' => 'What table this view is based on, such as node, user, comment, or term.',
@@ -126,7 +126,12 @@
);
$schema['cache_views'] = drupal_get_schema_unprocessed('system', 'cache');
+
+ $schema['cache_views_data'] = drupal_get_schema_unprocessed('system', 'cache');
+ $schema['cache_views_data']['description'] = 'Cache table for views to store pre-rendered queries, results, and display output.';
+ $schema['cache_views_data']['fields']['serialized']['default'] = 1;
+
$schema['views_object_cache'] = array(
'description' => 'A special cache used to store objects that are being edited; it serves to save state in an ordinarily stateless environment.',
'fields' => array(
@@ -202,6 +207,7 @@
$new = strtr($block->delta, '$', '-');
$ret[] = update_sql("UPDATE {blocks} SET delta = '" . db_escape_string($new) . "' WHERE module = 'views' AND delta = '" . db_escape_string($block->delta) . "'");
}
+ $ret[] = update_sql("UPDATE {blocks} SET delta = CONCAT(delta, '-block_1') WHERE module = 'views'");
return $ret;
}
@@ -239,3 +245,35 @@
return $ret;
}
+
+/**
+ * Enlarge the base_table column
+ */
+function views_update_6005() {
+ $ret = array();
+
+ $new_field = array(
+ 'type' => 'varchar',
+ 'length' => '64',
+ 'default' => '',
+ 'not null' => TRUE,
+ 'description' => 'What table this view is based on, such as node, user, comment, or term.',
+ );
+ db_change_field($ret, 'views_view', 'base_table', 'base_table', $new_field);
+ return $ret;
+}
+
+/**
+ * Add the cache_views_data table to support standard caching.
+ */
+function views_update_6006() {
+ $ret = array();
+
+ $table = drupal_get_schema_unprocessed('system', 'cache');
+ $table['description'] = 'Cache table for views to store pre-rendered queries, results, and display output.';
+ $table['fields']['serialized']['default'] = 1;
+
+ db_create_table($ret, 'cache_views_data', $table);
+
+ return $ret;
+}
Index: sites/all/modules/views/CHANGELOG.txt
===================================================================
--- sites/all/modules/views/CHANGELOG.txt (.../trunk) (revision 1945)
+++ sites/all/modules/views/CHANGELOG.txt (.../branches/drupal6) (revision 1945)
@@ -1,4 +1,76 @@
CHANGELOG for Views 2 for Drupal 6
+
+Views 2.6
+ Bugs fixed:
+ o #419226 by kelvincool: Respect admin theme during views ajax operations.
+ o #419270 by voxpelli: set_where_group() could fail if no previous groups.
+ o #422054 by yhahn: Protect exports from impropertly indenting multiline strings.
+ o #437070 by mikeryan: Base table formerly limited to 32 characters.
+ o #317271 by quicksketch: ensure_my_table() limited to one relationship per table.
+ o #441520 by jonathan1055: Allow the "time ago" date format to work on future dates as well.
+ o #445398 by casey: reduce_value_options() using wrong value array.
+ o #451370 by skwashd: base.js had some DOS line endings.
+ o #454754 by dww: Fix PGSQL related errors with comment author filtering.
+ o #384286 by dww: Make it possible to expose the filter for "Node: Has new content"
+ o #463634 by alienbrain: "Empty field name" incorrectly specified.
+ o #463580 by ximo: AJAX summary links broken in some displays.
+ o #468336 by psynaptic: Fix broken hook_views_admin_links_alter
+ o #422868 by mattman: Breadcrumbs not properly substuting % replacements.
+ o #440676 by dereine and Razorraser: View import form crashed on empty view input.
+ o #461842 by dereine: Use gmtime() instead of format_date() to prevent localization of dates in RSS feeds.
+ o #316556 by darrenoh and JirkaRybka: More 1.x upgrade fixes.
+ o #382398 by elcuco: Force LTR in the views admin.
+ o #461144: Fix trimming to correctly remove tags when they are trimmed in half.
+ o #330956: Theme: Information only scanned information from the default theme.
+ o SA-CONTRIB-2009-037: Filter checkboxes could be displayed unfiltered allowing XSS attacks.
+
+ Other changes:
+ o #298616: Add argument for node updated time similar to node created time.
+ o #325607 by bangpound: Automatically sort exports from bulk export.
+ o #323049 by yched: Allow Empty/Not Empty on select many to one.
+ o #340701 by swentel: Restore allowing Views to set block caching mode.
+ o #347892 by dww: Allow option in Boolean filters.
+ o #358314 by brmassa: Catch the exposed filter form so it doesn't process twice on a single view.
+ o #154865 by Zack Rosen, josh_k and KarenS: Allow user contact form as a field.
+ o #411880 by fgm: Add "options callback" to items using in_operator handler.
+ o #360657 by yhahn: new hook_views_default_views_alter().
+ o #430068 by dereine: New global counter field for displaying row number.
+ o #420340 by derine: Translate node type filter.
+ o #325796 by yang_yi_cn: Translate node type argument.
+ o #446726 by yhahn: Improved performance for js dependencies.
+ o #437760 by leeneman: Remove duplicate terms from taxonomy term argument title.
+ o #354270 by dereine: Allow "tag" to be added to the theme template suggestions.
+ o #408180 by joachim: Allow taxonomy term parent argument.
+ o #469456 by dereine: Automatically give .info file during views bulk export.
+ o #424460 by thePanz: Customizable breadcrumb title for arguments.
+ o #436398 by Pasqualle: Support for aggregator category table.
+ o #424648 by quicksketch and dereine: Allow format selection on filesize field.
+ o #478312 by yhahn: Provide specific node access filter.
+ o #479878 by dereine: User language field.
+ o #468824 by eaton: Pluggable caching mechanism which can cache both the query result and rendered result.
+ o #399534 by clemens.tolboom and drewish: Add fragment and query string as options when making fields into links.
+ o #315915 by dixon_: Add another base row class to rows.
+ o #353403 by agentrickard: Field to provide "more" text.
+ o #377896 by dereine: When ticked "link to node" show node title as a href title attribute.
+ o #386098 by dereine: Add "watchdog" as a debug logging options.
+ o #409428 by gpk: Missing field: node input format.
+ o #271833 by grugnog, agentrickard and others: Taxonomy depth in filter.
+
+Views 2.5
+ Bugs fixed:
+ o #363817 by thePanz: Empty fields in table could still trigger separators.
+ o #388952 by nikita@protsenko.com: Ensure taxonomy term validator sets the validated title when available.
+ o #392176: Trim on word boundary would stop at newlines.
+ o #415706 by dww: Fix broken relationship in search that caused SQL error.
+ o #428742 by fralenuvol: Fix broken relationship causing sql error with multiple taxonomy term arguments.
+ o #428102 with help from deviantintegral: Broken option_definition() causes warnings.
+
+ Other changes:
+ o #379382 by neochief: Add option to strip tags during advanced rendering.
+ o #400914 by joachim: Add a link field to get to comments for a node that works just like the normal links.
+ o #402650 by drewish: Bulk export views alphabetically by view name.
+ o #349157 by yched: Support CCK build modes in node style.
+
Views 2.4
Bugs fixed:
o #371466 by dereine: Fix incorrect link to comments.
Index: sites/all/modules/views/includes/admin.inc
===================================================================
--- sites/all/modules/views/includes/admin.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/includes/admin.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
'textarea',
'#title' => t('Paste view code here'),
+ '#required' => TRUE,
);
$form['submit'] = array(
@@ -760,13 +761,14 @@
* Validate handler to import a view
*/
function views_ui_import_validate($form, &$form_state) {
+ $view = '';
views_include('view');
ob_start();
eval($form_state['values']['view']);
ob_end_clean();
if (!is_object($view)) {
- form_error($form['view'], t('Unable to interpret view code.'));
+ return form_error($form['view'], t('Unable to interpret view code.'));
}
if (empty($view->api_version) || $view->api_version < 2) {
@@ -1020,7 +1022,7 @@
$path = $display->handler->get_path();
if (strpos($path, '%') === FALSE && !isset($paths[$path])) {
$vars['quick_links_raw'][] = array(
- 'title' => t('View "!display"', array('!display' => $display->display_title)),
+ 'title' => t('View "@display"', array('@display' => $display->display_title)),
'alt' => t("Go to the real page for this display"),
'href' => $path,
);
@@ -1314,7 +1316,7 @@
foreach ($displays as $id) {
list($title, $body) = views_ui_display_tab($view, $view->display[$id]);
$object->replace['#views-tab-' . $id] = $body;
- $object->replace['#views-tab-title-' . $id] = $title;
+ $object->replace['#views-tab-title-' . $id] = check_plain($title);
}
if (!empty($view->changed)) {
@@ -2171,18 +2173,28 @@
'#default_value' => 'all',
);
+ // Group options first to simplify the DOM objects that Views
+ // dependent JS will act upon.
+ $grouped_options = array();
foreach ($options as $key => $option) {
$group = preg_replace('/[^a-z0-9]/', '-', strtolower($option['group']));
$groups[$group] = $option['group'];
- $form['name'][$key] = array(
- '#prefix' => '
');
+ }
+
$form['group']['#options'] = $groups;
}
else {
@@ -2730,6 +2742,7 @@
);
$regions = system_region_list(variable_get('theme_default', 'garland'));
+ $regions['watchdog'] = t('Watchdog');
$form['views_devel_region'] = array(
'#type' => 'select',
@@ -2761,8 +2774,6 @@
* a templates rescan).
*/
function views_ui_config_item_form_rescan($form, &$form_state) {
- // Clear *all* theme registry entries:
- cache_clear_all('theme_registry:', 'cache', TRUE);
drupal_rebuild_theme_registry();
// The 'Theme: Information' page is about to be shown again. That page
@@ -2779,6 +2790,18 @@
}
/**
+ * Override handler for views_ui_edit_display_form
+ */
+function views_ui_edit_display_form_change_theme($form, &$form_state) {
+ // This is just a temporary variable.
+ $form_state['view']->theme = $form_state['values']['theme'];
+
+ views_ui_cache_set($form_state['view']);
+ $form_state['rerender'] = TRUE;
+ $form_state['rebuild'] = TRUE;
+}
+
+/**
* Page callback for views tag autocomplete
*/
function views_ui_autocomplete_tag($string = '') {
Index: sites/all/modules/views/includes/view.inc
===================================================================
--- sites/all/modules/views/includes/view.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/includes/view.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
FALSE,
@@ -467,12 +470,16 @@
$argument->query();
}
+ // Add this argument's substitution
+ $substitutions['%' . ($position + 1)] = $arg_title;
+
// Since we're really generating the breadcrumb for the item above us,
// check the default action of this argument.
if ($this->display_handler->uses_breadcrumb() && $argument->uses_breadcrumb()) {
$path = $this->get_url($breadcrumb_args);
if (strpos($path, '%') === FALSE) {
- $this->build_info['breadcrumb'][$path] = str_replace(array_keys($substitutions), $substitutions, $title);
+ $breadcrumb = !empty($argument->options['breadcrumb'])? $argument->options['breadcrumb'] : $title;
+ $this->build_info['breadcrumb'][$path] = str_replace(array_keys($substitutions), $substitutions, $breadcrumb);
}
}
@@ -484,9 +491,6 @@
$title = $argument->options['title'];
}
- // Add this argument's substitution
- $substitutions['%' . ($position + 1)] = $arg_title;
-
$breadcrumb_args[] = $arg;
}
else {
@@ -549,7 +553,11 @@
$start = views_microtime();
// If that fails, let's build!
- $this->build_info = array();
+ $this->build_info = array(
+ 'query' => '',
+ 'count_query' => '',
+ 'query_args' => array(),
+ );
$this->init_query();
@@ -566,6 +574,10 @@
if ($this->display_handler->uses_exposed()) {
$this->exposed_widgets = $this->render_exposed_form();
+ if (form_set_error() || !empty($this->build_info['abort'])) {
+ $this->built = TRUE;
+ return empty($this->build_info['fail']);
+ }
}
// Build all the relationships first thing.
@@ -677,73 +689,90 @@
vpr($query);
- $items = array();
- if ($query) {
- $replacements = module_invoke_all('views_query_substitutions', $this);
- $query = str_replace(array_keys($replacements), $replacements, $query);
- $count_query = 'SELECT COUNT(*) FROM (' . str_replace(array_keys($replacements), $replacements, $count_query) . ') count_alias';
- if (is_array($args)) {
- foreach ($args as $id => $arg) {
- $args[$id] = str_replace(array_keys($replacements), $replacements, $arg);
+ // Check for already-cached results.
+ if (!empty($this->live_preview)) {
+ $cache = FALSE;
+ }
+ else {
+ $cache = $this->display_handler->get_cache_plugin();
+ }
+ if ($cache && $cache->cache_get('results')) {
+ vpr('Used cached results');
+ }
+ else {
+ $items = array();
+ if ($query) {
+ $replacements = module_invoke_all('views_query_substitutions', $this);
+ $query = str_replace(array_keys($replacements), $replacements, $query);
+ $count_query = 'SELECT COUNT(*) FROM (' . str_replace(array_keys($replacements), $replacements, $count_query) . ') count_alias';
+
+ if (is_array($args)) {
+ foreach ($args as $id => $arg) {
+ $args[$id] = str_replace(array_keys($replacements), $replacements, $arg);
+ }
}
- }
- // Allow for a view to query an external database.
- if (isset($this->base_database)) {
- db_set_active($this->base_database);
- $external = TRUE;
- }
-
- $start = views_microtime();
- if (!empty($this->pager['items_per_page'])) {
- // We no longer use pager_query() here because pager_query() does not
- // support an offset. This is fine as we don't actually need pager
- // query; we've already been doing most of what it does, and we
- // just need to do a little more playing with globals.
- if (!empty($this->pager['use_pager']) || !empty($this->get_total_rows)) {
- $this->total_rows = db_result(db_query($count_query, $args)) - $this->pager['offset'];
+ // Allow for a view to query an external database.
+ if (isset($this->base_database)) {
+ db_set_active($this->base_database);
+ $external = TRUE;
}
- if (!empty($this->pager['use_pager'])) {
- // dump information about what we already know into the globals
- global $pager_page_array, $pager_total, $pager_total_items;
- // total rows in query
- $pager_total_items[$this->pager['element']] = $this->total_rows;
- // total pages
- $pager_total[$this->pager['element']] = ceil($pager_total_items[$this->pager['element']] / $this->pager['items_per_page']);
+ $start = views_microtime();
+ if (!empty($this->pager['items_per_page'])) {
+ // We no longer use pager_query() here because pager_query() does not
+ // support an offset. This is fine as we don't actually need pager
+ // query; we've already been doing most of what it does, and we
+ // just need to do a little more playing with globals.
+ if (!empty($this->pager['use_pager']) || !empty($this->get_total_rows)) {
+ $this->total_rows = db_result(db_query($count_query, $args)) - $this->pager['offset'];
+ }
- // What page was requested:
- $pager_page_array = isset($_GET['page']) ? explode(',', $_GET['page']) : array();
+ if (!empty($this->pager['use_pager'])) {
+ // dump information about what we already know into the globals
+ global $pager_page_array, $pager_total, $pager_total_items;
+ // total rows in query
+ $pager_total_items[$this->pager['element']] = $this->total_rows;
+ // total pages
+ $pager_total[$this->pager['element']] = ceil($pager_total_items[$this->pager['element']] / $this->pager['items_per_page']);
- // If the requested page was within range. $this->pager['current_page']
- // defaults to 0 so we don't need to set it in an out-of-range condition.
- if (!empty($pager_page_array[$this->pager['element']])) {
- $page = intval($pager_page_array[$this->pager['element']]);
- if ($page > 0 && $page < $pager_total[$this->pager['element']]) {
- $this->pager['current_page'] = $page;
+ // What page was requested:
+ $pager_page_array = isset($_GET['page']) ? explode(',', $_GET['page']) : array();
+
+ // If the requested page was within range. $this->pager['current_page']
+ // defaults to 0 so we don't need to set it in an out-of-range condition.
+ if (!empty($pager_page_array[$this->pager['element']])) {
+ $page = intval($pager_page_array[$this->pager['element']]);
+ if ($page > 0 && $page < $pager_total[$this->pager['element']]) {
+ $this->pager['current_page'] = $page;
+ }
}
+ $pager_page_array[$this->pager['element']] = $this->pager['current_page'];
}
- $pager_page_array[$this->pager['element']] = $this->pager['current_page'];
- }
- $offset = $this->pager['current_page'] * $this->pager['items_per_page'] + $this->pager['offset'];
- $result = db_query_range($query, $args, $offset, $this->pager['items_per_page']);
+ $offset = $this->pager['current_page'] * $this->pager['items_per_page'] + $this->pager['offset'];
+ $result = db_query_range($query, $args, $offset, $this->pager['items_per_page']);
- }
- else {
- $result = db_query($query, $args);
- }
+ }
+ else {
+ $result = db_query($query, $args);
+ }
- $this->result = array();
- while ($item = db_fetch_object($result)) {
- $this->result[] = $item;
+ $this->result = array();
+ while ($item = db_fetch_object($result)) {
+ $this->result[] = $item;
+ }
+ if (!empty($external)) {
+ db_set_active();
+ }
+ $this->execute_time = views_microtime() - $start;
}
- if (!empty($external)) {
- db_set_active();
+ if ($cache) {
+ $cache->cache_set('results');
}
}
- $this->execute_time = views_microtime() - $start;
+
$this->executed = TRUE;
}
@@ -751,13 +780,10 @@
* Render this view for display.
*/
function render($display_id = NULL) {
- // Check for cached output.
- // @todo: Implement this
-
$this->execute($display_id);
// Check to see if the build failed.
- if (!isset($this->result)) {
+ if (!empty($this->build_info['fail'])) {
return;
}
@@ -766,33 +792,53 @@
$this->start_query_capture();
}
- // Initialize the style plugin.
- $this->init_style();
+ // Check for already-cached output.
+ if (!empty($this->live_preview)) {
+ $cache = FALSE;
+ }
+ else {
+ $cache = $this->display_handler->get_cache_plugin();
+ }
+ if ($cache && $cache->cache_get('output')) {
+ vpr('Used cached output');
+ }
+ else {
+ if ($cache) {
+ $cache->cache_start();
+ }
- $this->style_plugin->pre_render($this->result);
+ // Initialize the style plugin.
+ $this->init_style();
- // Let modules modify the view just prior to executing it.
- foreach (module_implements('views_pre_render') as $module) {
- $function = $module . '_views_pre_render';
- $function($this);
- }
+ $this->style_plugin->pre_render($this->result);
- // Give field handlers the opportunity to perform additional queries
- // using the entire resultset prior to rendering.
- if ($this->style_plugin->uses_fields()) {
- foreach ($this->field as $id => $handler) {
- if (!empty($this->field[$id])) {
- $this->field[$id]->pre_render($this->result);
+ // Let modules modify the view just prior to executing it.
+ foreach (module_implements('views_pre_render') as $module) {
+ $function = $module . '_views_pre_render';
+ $function($this);
+ }
+
+ // Give field handlers the opportunity to perform additional queries
+ // using the entire resultset prior to rendering.
+ if ($this->style_plugin->uses_fields()) {
+ foreach ($this->field as $id => $handler) {
+ if (!empty($this->field[$id])) {
+ $this->field[$id]->pre_render($this->result);
+ }
}
}
+ $this->display_handler->output = $this->display_handler->render();
+ if ($cache) {
+ $cache->cache_set('output');
+ }
}
- $output = $this->display_handler->render();
if (!empty($this->live_preview) && variable_get('views_show_additional_queries', FALSE)) {
$this->end_query_capture();
}
$this->render_time = views_microtime() - $start;
- return $output;
+
+ return $this->display_handler->output;
}
/**
@@ -1425,7 +1471,7 @@
function clone_view() {
$clone = version_compare(phpversion(), '5.0') < 0 ? $this : clone($this);
- $keys = array('current_display', 'display_handler', 'build_info', 'built', 'executed', 'attachment_before', 'attachment_after', 'field', 'argument', 'filter', 'sort', 'relationship', 'query', 'result', 'inited', 'style_plugin', 'plugin_name', 'exposed_data', 'exposed_input', 'many_to_one_tables');
+ $keys = array('current_display', 'display_handler', 'build_info', 'built', 'executed', 'attachment_before', 'attachment_after', 'field', 'argument', 'filter', 'sort', 'relationship', 'query', 'inited', 'style_plugin', 'plugin_name', 'exposed_data', 'exposed_input', 'many_to_one_tables');
foreach ($keys as $key) {
if (isset($clone->$key)) {
unset($clone->$key);
@@ -1435,6 +1481,7 @@
$clone->build_info = array();
$clone->attachment_before = '';
$clone->attachment_after = '';
+ $clone->result = array();
// shallow cloning means that all the display objects
// *were not cloned*. We must clone them ourselves.
Index: sites/all/modules/views/includes/convert.inc
===================================================================
--- sites/all/modules/views/includes/convert.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/includes/convert.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
name = $imported->name;
$view->description = $imported->description;
- if (!empty($imported->page)) {
+ if (!empty($imported->page) && !empty($imported->url)) {
$page_display = $view->add_display('page');
}
if (!empty($imported->block)) {
@@ -159,7 +159,7 @@
}
$handler->set_option('access', $access);
- if (!empty($imported->page)) {
+ if (!empty($imported->page) && !empty($imported->url)) {
$handler = &$view->display[$page_display]->handler;
$url = str_replace('$arg', '%', $imported->url);
$handler->set_option('path', $url);
@@ -171,7 +171,7 @@
if ($imported->menu_tab_default) {
$menu['type'] = 'default tab';
}
- $menu['title'] = $imported->menu_title;
+ $menu['title'] = $imported->menu_title ? $imported->menu_title : $imported->page_title;
$handler->set_option('menu', $menu);
if ($menu['type'] == 'default tab') {
@@ -187,14 +187,14 @@
$tab_options['weight'] = $imported->menu_parent_tab_weight;
$handler->set_option('tab_options', $tab_options);
}
-
- views1_convert_style($view, $handler, $imported->page_type);
}
+ views1_convert_style($view, $handler, $imported->page_type);
+
if (!empty($imported->block)) {
$handler = &$view->display[$block_display]->handler;
- if ($imported->block_title) {
+ if (!empty($imported->block_title)) {
if (!empty($imported->page)) {
$handler->set_override('title');
}
@@ -207,9 +207,6 @@
$handler->set_option('use_pager', FALSE);
if ($imported->nodes_per_block != $imported->nodes_per_page) {
- if (!empty($imported->page)) {
- $handler->set_override('items_per_page');
- }
$handler->set_option('items_per_page', $imported->nodes_per_block);
$handler->set_option('offset', 0);
}
@@ -218,25 +215,31 @@
if (!empty($imported->page)) {
$handler->set_override('header');
}
- $handler->set_option('header', $imported->block_header);
- $handler->set_option('header_format', $imported->block_header_format);
+ if (!empty($imported->block_header)) {
+ $handler->set_option('header', $imported->block_header);
+ $handler->set_option('header_format', $imported->block_header_format);
+ }
}
if (empty($imported->block_use_page_footer)) {
if (!empty($imported->page)) {
$handler->set_override('footer');
}
- $handler->set_option('footer', $imported->block_footer);
- $handler->set_option('footer_format', $imported->block_footer_format);
+ if (!empty($imported->block_footer)) {
+ $handler->set_option('footer', $imported->block_footer);
+ $handler->set_option('footer_format', $imported->block_footer_format);
+ }
}
if (empty($imported->block_use_page_empty)) {
if (!empty($imported->page)) {
$handler->set_override('empty');
}
- $handler->set_option('empty', $imported->block_empty);
- $handler->set_option('empty_format', $imported->block_empty_format);
+ if (!empty($imported->block_empty)) {
+ $handler->set_option('empty', $imported->block_empty);
+ $handler->set_option('empty_format', $imported->block_empty_format);
+ }
}
- $handler->set_option('more', $imported->block_more);
+ $handler->set_option('use_more', $imported->block_more);
if (!empty($imported->page)) {
$handler->set_override('style_plugin');
@@ -249,37 +252,50 @@
// then see if any other modules want to adapt it using hook_views_convert().
foreach ($imported->field as $field) {
- $id = $view->add_item('default', 'field', $field['tablename'], $field['field']);
+ $id = $view->add_item('default', 'field', $field['tablename'], $field['field'], array('label' => $field['label']));
if ($view->display_handler->get_option('style_plugin') == 'table') {
$options = $view->display_handler->get_option('style_options');
- if (!empty($field['defaultsort'])) {
- $options['default'] = $id;
- }
if (!empty($field['sortable'])) {
$options['info'][$id]['sortable'] = TRUE;
+ if (!empty($field['defaultsort'])) {
+ $options['default'] = $id;
+ }
}
$view->display_handler->set_option('style_options', $options);
}
-
- if (!empty($field['label'])) {
- $item = $view->get_item('default', 'field', $id);
- $item['label'] = $field['label'];
- $view->set_item('default', 'field', $id, $item);
- }
foreach (module_implements('views_convert') as $module) {
module_invoke($module, 'views_convert', 'default', 'field', $view, $field, $id);
}
}
foreach ($imported->sort as $field) {
- $id = NULL;
- if (views_get_handler($field['tablename'], $field['field'], 'sort')) {
- $id = $view->add_item('default', 'sort', $field['tablename'], $field['field']);
- }
+ $id = $view->add_item('default', 'sort', $field['tablename'], $field['field'], array('order' => $field['sortorder']));
foreach (module_implements('views_convert') as $module) {
module_invoke($module, 'views_convert', 'default', 'sort', $view, $field, $id);
}
}
- foreach ($imported->argument as $field) {
+ $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
+ foreach ($imported->argument as $id => $field) {
+ if (!empty($imported->view_args_php)) {
+ $field['argoptions']['default_action'] = 'default';
+ $field['argoptions']['default_argument_type'] = 'php';
+ $field['argoptions']['default_argument_php'] = '$args = eval(\''. str_replace("'", "\\'", $imported->view_args_php) .'\');'."\n";
+ $field['argoptions']['default_argument_php'] .= 'if (isset($args['. $field['position'] .'])) {'."\n";
+ $field['argoptions']['default_argument_php'] .= ' return $args['. $field['position'] .'];'."\n";
+ $field['argoptions']['default_argument_php'] .= '}';
+ $field['argoptions']['validate_fail'] = $actions[$field['argdefault']];
+ }
+ else {
+ $field['argoptions']['default_action'] = $actions[$field['argdefault']];
+ }
+ if (!empty($field['title'])) {
+ $field['argoptions']['title'] = $field['title'];
+ }
+ if (!empty($field['wildcard'])) {
+ $field['argoptions']['wildcard'] = $field['wildcard'];
+ }
+ if (!empty($field['wildcard_substitution'])) {
+ $field['argoptions']['wildcard_substitution'] = $field['wildcard_substitution'];
+ }
// Arguments didn't used to be identified by table.name so we just have to
// leave that out.
foreach (module_implements('views_convert') as $module) {
@@ -287,10 +303,7 @@
}
}
foreach ($imported->filter as $field) {
- $id = NULL;
- if (views_get_handler($field['tablename'], $field['field'], 'filter')) {
- $id = $view->add_item('default', 'filter', $field['tablename'], $field['field']);
- }
+ $id = $view->add_item('default', 'filter', $field['tablename'], $field['field']);
foreach (module_implements('views_convert') as $module) {
module_invoke($module, 'views_convert', 'default', 'filter', $view, $field, $id);
}
@@ -301,7 +314,7 @@
list(, $id) = explode('.', $field['field'], 2);
$item = $view->get_item('default', 'filter', $id);
if (views_get_handler($item['table'], $item['field'], 'filter')) {
- $item['exposed'] = 1;
+ $item['exposed'] = TRUE;
// Use the count to emulate the old, hardcoded filter naming.
$item['expose']['identifier'] = 'filter' . $count;
@@ -467,8 +480,8 @@
return NULL;
}
-
+
$result = db_query("DELETE FROM {view_sort} WHERE vid = $view->vid");
$result = db_query("DELETE FROM {view_argument} WHERE vid = $view->vid");
$result = db_query("DELETE FROM {view_tablefield} WHERE vid = $view->vid");
Index: sites/all/modules/views/includes/handlers.inc
===================================================================
--- sites/all/modules/views/includes/handlers.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/includes/handlers.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
table != $join->table) {
- $relationship = $this->handler->query->add_relationship(NULL, $r_join, $r_join->table, $this->handler->relationship);
+ $relationship = $this->handler->query->add_relationship($this->handler->table, $r_join, $r_join->table, $this->handler->relationship);
}
// And now add our table, using the new relationship if one was used.
@@ -1065,6 +1065,9 @@
'views_handler_field_custom' => array(
'parent' => 'views_handler_field',
),
+ 'views_handler_field_counter' => array(
+ 'parent' => 'views_handler_field',
+ ),
// filter handlers
'views_handler_filter' => array(
@@ -1214,9 +1217,14 @@
* Build the SQL for the join this object represents.
*/
function join($table, &$query) {
- $left = $query->get_table_info($this->left_table);
- $output = " $this->type JOIN {" . $this->table . "} $table[alias] ON $left[alias].$this->left_field = $table[alias].$this->field";
-
+ if ($this->left_table) {
+ $left = $query->get_table_info($this->left_table);
+ $output = " $this->type JOIN {" . $this->table . "} $table[alias] ON $left[alias].$this->left_field = $table[alias].$this->field";
+ }
+ else {
+ // This can be used if left_field is a formula or something. It should be used only *very* rarely.
+ $output = " $this->type JOIN {" . $this->table . "} $table[alias] ON $this->left_field = $table[alias].$this->field";
+ }
// Tack on the extra.
if (isset($this->extra)) {
if (is_array($this->extra)) {
@@ -1327,6 +1335,8 @@
function locale_views_api() { return views_views_api(); }
+function filter_views_api() { return views_views_api(); }
+
function node_views_api() { return views_views_api(); }
function poll_views_api() { return views_views_api(); }
@@ -1346,3 +1356,5 @@
function upload_views_api() { return views_views_api(); }
function user_views_api() { return views_views_api(); }
+
+function contact_views_api() { return views_views_api(); }
Index: sites/all/modules/views/includes/plugins.inc
===================================================================
--- sites/all/modules/views/includes/plugins.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/includes/plugins.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
'access-perm',
),
),
+ 'cache' => array(
+ 'parent' => array(
+ 'no ui' => TRUE,
+ 'handler' => 'views_plugin_cache',
+ 'parent' => '',
+ ),
+ 'none' => array(
+ 'title' => t('None'),
+ 'help' => t('No caching of Views data.'),
+ 'handler' => 'views_plugin_cache_none',
+ 'help topic' => 'cache-none',
+ ),
+ 'time' => array(
+ 'title' => t('Time-based'),
+ 'help' => t('Simple time-based caching of data.'),
+ 'handler' => 'views_plugin_cache_time',
+ 'uses options' => TRUE,
+ 'help topic' => 'cache-time',
+ ),
+ ),
);
}
@@ -244,7 +264,7 @@
* @return Nested array of plugins, grouped by type.
*/
function views_discover_plugins() {
- $cache = array('display' => array(), 'style' => array(), 'row' => array(), 'argument default' => array(), 'argument validator' => array(), 'access' => array());
+ $cache = array('display' => array(), 'style' => array(), 'row' => array(), 'argument default' => array(), 'argument validator' => array(), 'access' => array(), 'cache' => array());
// Get plugins from all mdoules.
foreach (module_implements('views_plugins') as $module) {
$function = $module . '_views_plugins';
@@ -357,65 +377,3 @@
function validate() { return array(); }
}
-// @todo move all these defgroups into their respective .inc files.
-
-/**
- * @defgroup views_style_plugins Views' style plugins
- * @{
- * Style plugins control how a view is rendered. For example, they
- * can choose to display a collection of fields, node_view() output,
- * table output, or any kind of crazy output they want.
- *
- * Many style plugins can have an optional 'row' plugin, that displays
- * a single record. Not all style plugins can utilize this, so it is
- * up to the plugin to set this up and call through to the row plugin.
- *
- * @see hook_views_plugins
- */
-
-
-/**
- * @}
- */
-
-/**
- * @defgroup views_row_plugins Views' row plugins
- * @{
- *
- * Row plugins control how Views outputs an individual record. They are
- * tightly coupled to style plugins, in that a style plugin is what calls
- * the row plugin.
- *
- * @see hook_views_plugins
- */
-
-/**
- * @}
- */
-
-/**
- * @defgroup views_argument_default_plugins Views' argument default plugins
- * @{
- *
- * Allow specialized methods of filling in arguments when they aren't
- * provided.
- *
- * @see hook_views_plugins
- */
-
-/**
- * @}
- */
-
-/**
- * @defgroup views_argument_validate_plugins Views' argument validate plugins
- * @{
- *
- * Allow specialized methods of validating arguments.
- *
- * @see hook_views_plugins
- */
-
-/**
- * @}
- */
Index: sites/all/modules/views/includes/ajax.inc
===================================================================
--- sites/all/modules/views/includes/ajax.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/includes/ajax.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
status = FALSE;
$object->display = '';
+ $arg = explode('/', $_REQUEST['view_path']);
+
+ if ($arg[0] == 'admin' || (variable_get('node_admin_theme', '0') && $arg[0] == 'node' && ($arg[1] == 'add' || $arg[2] == 'edit'))) {
+ global $custom_theme;
+ $custom_theme = variable_get('admin_theme', '0');
+ drupal_add_css(drupal_get_path('module', 'system') .'/admin.css', 'module');
+ }
// Load the view.
if ($view = views_get_view($name)) {
if ($view->access($display_id)) {
Index: sites/all/modules/views/includes/cache.inc
===================================================================
--- sites/all/modules/views/includes/cache.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/includes/cache.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
$base,
);
return $alias;
-
- return $alias;
-/*
- if ($alias = $this->add_table($join->table, $link_point, $join, $alias)) {
- }
-*/
}
/**
@@ -293,7 +287,12 @@
}
if (!$alias && $join && $relationship && !empty($join->adjusted) && $table != $join->table) {
- $alias = $table;
+ if ($relationship == $this->base_table) {
+ $alias = $table;
+ }
+ else {
+ $alias = $relationship . '_' . $table;
+ }
}
// Check this again to make sure we don't blow up existing aliases for already
@@ -670,7 +669,7 @@
$groups = &$this->$where;
if (!isset($group)) {
- $group = max(array_keys($groups)) + 1;
+ $group = empty($groups) ? 1 : max(array_keys($groups)) + 1;
}
// Create an empty group
Index: sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc
===================================================================
--- sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,21 @@
+value), '%d'));
+
+ $result = db_query("SELECT c.title FROM {aggregator_category} c WHERE c.cid IN ($placeholders)", $this->value);
+ while ($term = db_fetch_object($result)) {
+ $titles[] = check_plain($term->title);
+ }
+ return $titles;
+ }
+}
Index: sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_category.inc
===================================================================
--- sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_category.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_category.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,53 @@
+additional_fields['cid'] = 'cid';
+ }
+
+ function option_definition() {
+ $options = parent::option_definition();
+ $options['link_to_category'] = array('default' => FALSE);
+ return $options;
+ }
+
+ /**
+ * Provide link to category option
+ */
+ function options_form(&$form, &$form_state) {
+ parent::options_form($form, $form_state);
+ $form['link_to_category'] = array(
+ '#title' => t('Link this field to its aggregator category page'),
+ '#description' => t('This will override any other link you have set.'),
+ '#type' => 'checkbox',
+ '#default_value' => !empty($this->options['link_to_category']),
+ );
+ }
+
+ /**
+ * Render whatever the data is as a link to the category.
+ *
+ * Data should be made XSS safe prior to calling this function.
+ */
+ function render_link($data, $values) {
+ if (!empty($this->options['link_to_category']) && !empty($values->{$this->aliases['cid']}) && $data !== NULL && $data !== '') {
+ $cid = $values->{$this->aliases['cid']};
+ $this->options['alter']['make_link'] = TRUE;
+ $this->options['alter']['path'] = "aggregator/category/$cid";
+ }
+ return $data;
+ }
+
+ function render($values) {
+ return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+ }
+}
Index: sites/all/modules/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc
===================================================================
--- sites/all/modules/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,20 @@
+value_options)) {
+ return;
+ }
+
+ $this->value_options = array();
+
+ $result = db_query('SELECT * FROM {aggregator_category} ORDER BY title');
+ while ($category = db_fetch_object($result)) {
+ $this->value_options[$category->cid] = $category->title;
+ }
+ }
+}
Index: sites/all/modules/views/modules/taxonomy.views_convert.inc
===================================================================
--- sites/all/modules/views/modules/taxonomy.views_convert.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/taxonomy.views_convert.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
get_item($display, 'field', $id);
- $item['table'] = 'term_node';
- $item['field'] = 'tid';
if ($field['options'] != 'nolink') {
$item['link_to_taxonomy'] = TRUE;
}
@@ -33,79 +31,65 @@
break;
}
}
+ elseif ($field['tablename'] == 'term_data') {
+ switch ($field['field']) {
+ case 'name':
+ if ($field['field'] == 'views_handler_field_tid_link') {
+ $view->set_item_option($display, 'field', $id, 'link_to_taxonomy', TRUE);
+ }
+ break;
+ }
+ }
break;
case 'filter':
if ($field['tablename'] == 'term_node' || !strncmp($field['tablename'], 'term_node_', 10)) {
switch ($field['field']) {
case 'tid':
+ $operators = array('AND' => 'and', 'OR' => 'or', 'NOR' => 'not');
$item = $view->get_item($display, 'filter', $id);
- $item['table'] = 'term_node';
- $item['field'] = 'tid';
if ($vid = (integer) substr($field['tablename'], 10)) {
+ $item['table'] = 'term_node';
$item['vid'] = $vid;
}
else {
$item['limit'] = FALSE;
}
- $item['operator'] = strtolower($field['operator']);
+ $item['operator'] = $operators[$field['operator']];
$item['type'] = 'select';
$item['value'] = $field['value'];
$view->set_item($display, 'filter', $id, $item);
break;
}
}
+ elseif ($field['tablename'] == 'term_data') {
+ switch ($field['field']) {
+ case 'vid':
+ $operators = array('AND' => 'in', 'OR' => 'in', 'NOR' => 'not in');
+ $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
+ $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ break;
+ }
+ }
break;
case 'argument':
+ $options = $field['argoptions'];
switch ($field['type']) {
case 'taxid':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
if (!empty($field['options'])) {
$options['depth'] = $field['options'];
}
$options['break_phrase'] = TRUE;
- $view->add_item($display, 'argument', 'node', 'term_node_tid_depth', $options, $id);
+ $view->add_item($display, 'argument', 'node', 'term_node_tid_depth', $options, $field['id']);
break;
case 'taxletter':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
if (!empty($field['options'])) {
$options['glossary'] = TRUE;
$options['limit'] = $field['options'];
}
- $view->add_item($display, 'argument', 'term_data', 'name', $options, $id);
+ $view->add_item($display, 'argument', 'term_data', 'name', $options, $field['id']);
break;
case 'vocid':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
- $view->add_item($display, 'argument', 'vocabulary', 'vid', $options, $id);
+ $view->add_item($display, 'argument', 'vocabulary', 'vid', $options, $field['id']);
break;
}
break;
Index: sites/all/modules/views/modules/user.views.inc
===================================================================
--- sites/all/modules/views/modules/user.views.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/user.views.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
t('Language'), // The item it appears as on the UI,
+ 'help' => t('Language of the user'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_user_language',
+ 'click sortable' => TRUE,
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_string',
+ ),
+ );
+
// picture
$data['users']['picture'] = array(
'title' => t('Picture'),
@@ -353,6 +369,9 @@
'views_handler_field_user_mail' => array(
'parent' => 'views_handler_field_user',
),
+ 'views_handler_field_user_language' => array(
+ 'parent' => 'views_handler_field_user',
+ ),
'views_handler_field_user_picture' => array(
'parent' => 'views_handler_field',
),
Index: sites/all/modules/views/modules/aggregator.views.inc
===================================================================
--- sites/all/modules/views/modules/aggregator.views.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/aggregator.views.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
array(
+ 'left_field' => 'fid',
+ 'field' => 'fid',
+ ),
+ );
+
+ // ----------------------------------------------------------------------
+ // Aggregator category table
+
+ $data['aggregator_category']['table']['group'] = t('Aggregator category');
+
+ $data['aggregator_category']['table']['join'] = array(
+ 'aggregator_item' => array(
+ 'left_table' => 'aggregator_category_feed',
+ 'left_field' => 'cid',
+ 'field' => 'cid',
+ ),
+ );
+
+ // cid
+ $data['aggregator_category']['cid'] = array(
+ 'title' => t('Category ID'),
+ 'help' => t('The unique ID of the aggregator category.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_numeric',
+ 'click sortable' => TRUE,
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_aggregator_category_cid',
+ 'name field' => 'title',
+ 'numeric' => TRUE,
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_aggregator_category_cid',
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ );
+
+ // title
+ $data['aggregator_category']['title'] = array(
+ 'title' => t('Category'),
+ 'help' => t('The title of the aggregator category.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_aggregator_category',
+ 'click sortable' => TRUE,
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_string',
+ ),
+ );
+
return $data;
}
@@ -274,15 +334,26 @@
'path' => drupal_get_path('module', 'views') . '/modules/aggregator',
),
'handlers' => array(
- // field handler
+ // field handlers
'views_handler_field_aggregator_title_link' => array(
'parent' => 'views_handler_field',
),
+ 'views_handler_field_aggregator_category' => array(
+ 'parent' => 'views_handler_field',
+ ),
// argument handlers
'views_handler_argument_aggregator_fid' => array(
'parent' => 'views_handler_argument_numeric',
),
+ 'views_handler_argument_aggregator_category_cid' => array(
+ 'parent' => 'views_handler_argument_numeric',
+ ),
+
+ // filter handlers
+ 'views_handler_filter_aggregator_category_cid' => array(
+ 'parent' => 'views_handler_filter_in_operator',
+ ),
),
);
}
Index: sites/all/modules/views/modules/node.views_convert.inc
===================================================================
--- sites/all/modules/views/modules/node.views_convert.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/node.views_convert.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
set_item_option($display, 'field', $id, 'link_to_node', TRUE);
}
break;
+ case 'created':
+ case 'changed':
+ $handlers = array(
+ 'views_handler_field_date_small' => 'small',
+ 'views_handler_field_date' => 'medium',
+ 'views_handler_field_date_large' => 'large',
+ 'views_handler_field_date_custom' => 'custom',
+ 'views_handler_field_since' => 'time ago',
+ );
+ $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]);
+ if (!empty($field['options'])) {
+ $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']);
+ }
+ break;
case 'body':
- $item = $view->get_item($display, 'field', $id);
- $item['table'] = 'node_revisions';
- $item['field'] = $field['handler'] == 'views_handler_field_teaser' ? 'teaser' : $item['field'];
- $view->set_item($display, 'field', $id, $item);
+ $field['field'] = $field['handler'] == 'views_handler_field_teaser' ? 'teaser' : $field['field'];
+ $view->set_item_option($display, 'field', $id, 'field', $field['field']);
+ $view->set_item_option($display, 'field', $id, 'table', 'node_revisions');
break;
case 'link':
- $field['field'] = 'view';
case 'edit':
case 'delete':
case 'view':
- $view->set_item_option($display, 'field', $id, 'field', "$field[field]_node");
+ $field['field'] = $field['field'] == 'link' ? 'view_node' : "$field[field]_node";
+ $view->set_item_option($display, 'field', $id, 'field', $field['field']);
if (!empty($field['options'])) {
$view->set_item_option($display, 'field', $id, 'text', $field['options']);
}
@@ -48,7 +61,49 @@
switch ($field['tablename']) {
case 'node':
switch ($field['field']) {
+ case 'status':
+ case 'promote':
+ case 'sticky':
+ case 'moderate':
+ $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ break;
+ case 'type':
+ $operators = array('OR' => 'in', 'NOR' => 'not in');
+ $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
+ $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ break;
+ case 'anon':
+ $item = $view->get_item($display, 'filter', $id);
+ $item['value'] = array(0);
+ $item['table'] = 'users';
+ $item['field'] = 'uid';
+ $view->set_item($display, 'filter', $id, $item);
+ break;
+ case 'currentuid':
+ $operators = array('=' => TRUE, '!=' => FALSE);
+ $item = $view->get_item($display, 'filter', $id);
+ $item['value'] = $operators[$field['operator']];
+ $item['table'] = 'users';
+ $item['field'] = 'uid_current';
+ $view->set_item($display, 'filter', $id, $item);
+ break;
+ case 'currentuidtouched':
+ $view->set_item_option($display, 'filter', $id, 'value', '=');
+ $view->set_item_option($display, 'filter', $id, 'field', 'uid_touch');
+ break;
+ case 'distinct':
+ $view->display_handler->set_option('distinct', $field['operator'] == '=' && $field['value'] == 'distinct');
+ $view->set_item($display, 'filter', $id, NULL);
+ break;
+ case 'title':
+ $item = $view->get_item($display, 'filter', $id);
+ $item['operator'] = $field['operator'];
+ $item['value'] = $field['value'];
+ $item['case'] = FALSE;
+ $view->set_item($display, 'filter', $id, $item);
+ break;
case 'created':
+ case 'changed':
$item = $view->get_item($display, 'filter', $id);
$item['operator'] = $field['operator'];
$item['value']['type'] = $field['value'] == 'now' ? 'offset' : 'date';
@@ -58,151 +113,75 @@
}
$view->set_item($display, 'filter', $id, $item);
break;
- case 'type':
- switch ($field['operator']) {
- case 'AND':
- case 'OR':
- $view->set_item_option($display, 'filter', $id, 'operator', 'in');
- break;
- case 'NOR':
- $view->set_item_option($display, 'filter', $id, 'operator', 'not in');
- break;
- }
- $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ case 'body':
+ $item = $view->get_item($display, 'filter', $id);
+ $item['operator'] = $field['operator'];
+ $item['value'] = $field['value'];
+ $item['case'] = FALSE;
+ $item['table'] = 'node_revisions';
+ $view->set_item($display, 'filter', $id, $item);
break;
- case 'status':
- case 'promote':
- case 'sticky':
- $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ }
+ break;
+ case 'history':
+ switch ($field['field']) {
+ case 'timestamp':
+ $view->set_item_option($display, 'filter', $id, 'table', 'history_user');
break;
- case 'distinct':
- $view->display_handler->set_option('distinct', $field['operator'] == '=' && $field['value'] == 'distinct');
- $view->set_item($display, 'filter', $id, NULL);
+ }
+ break;
+ }
+ break;
+ case 'sort':
+ switch ($field['tablename']) {
+ case 'node':
+ switch ($field['field']) {
+ case 'created':
+ case 'changed':
+ $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options'];
+ $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']);
break;
+ case 'random':
+ $view->set_item_option($display, 'sort', $id, 'table', 'views');
+ break;
}
break;
}
break;
case 'argument':
+ $options = $field['argoptions'];
switch ($field['type']) {
case 'nodetype':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
- $view->add_item($display, 'argument', 'node', 'type', array(), $id);
+ $view->add_item($display, 'argument', 'node', 'type', $options, $field['id']);
break;
case 'nodeletter':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
if (!empty($field['options'])) {
$options['glossary'] = TRUE;
$options['limit'] = $field['options'];
}
- $view->add_item($display, 'argument', 'node', 'title', array(), $id);
+ $options['case'] = 'upper';
+ $view->add_item($display, 'argument', 'node', 'title', $options, $field['id']);
break;
case 'year':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
- $view->add_item($display, 'argument', 'node', 'created_year', array(), $id);
+ $view->add_item($display, 'argument', 'node', 'created_year', $options, $field['id']);
break;
case 'month':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
- $view->add_item($display, 'argument', 'node', 'created_month', array(), $id);
+ $view->add_item($display, 'argument', 'node', 'created_month', $options, $field['id']);
break;
case 'week':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
- $view->add_item($display, 'argument', 'node', 'created_week', array(), $id);
+ $view->add_item($display, 'argument', 'node', 'created_week', $options, $field['id']);
break;
case 'monthyear':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
- $view->add_item($display, 'argument', 'node', 'created_year_month', array(), $id);
+ $view->add_item($display, 'argument', 'node', 'created_year_month', $options, $field['id']);
break;
case 'fulldate':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
- $view->add_item($display, 'argument', 'node', 'created_fulldate', array(), $id);
+ $view->add_item($display, 'argument', 'node', 'created_fulldate', $options, $field['id']);
break;
case 'nid':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
if (!empty($field['options'])) {
$options['not'] = TRUE;
}
- $view->add_item($display, 'argument', 'node', 'nid', array(), $id);
+ $view->add_item($display, 'argument', 'node', 'nid', $options, $field['id']);
break;
}
break;
Index: sites/all/modules/views/modules/profile.views_convert.inc
===================================================================
--- sites/all/modules/views/modules/profile.views_convert.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/profile.views_convert.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,43 @@
+add_item() won't produce
+ * the right results, usually needed to set field options or values.
+ */
+function profile_views_convert($display, $type, &$view, $field, $id = NULL) {
+ static $profile_fields;
+ if (!isset($profile_fields)) {
+ $profile_fields = array();
+ foreach (profile_views_get_fields() as $profile_field) {
+ $profile_fields['profile_values_'. $profile_field->name] = $profile_field;
+ }
+ }
+ switch ($type) {
+ case 'filter':
+ if (isset($tables[$field['tablename']])) {
+ switch ($profile_fields[$field['tablename']]->type) {
+ case 'vocabulary':
+ case 'selection':
+ $operators = array('AND' => 'in', 'OR' => 'in', 'NOR' => 'not in');
+ $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
+ case 'checkbox':
+ $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ break;
+ default:
+ $view->set_item_option($display, 'filter', $id, 'operator', $field['operator']);
+ $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ break;
+ }
+ }
+ break;
+ }
+}
\ No newline at end of file
Index: sites/all/modules/views/modules/search/views_handler_filter_search.inc
===================================================================
--- sites/all/modules/views/modules/search/views_handler_filter_search.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/search/views_handler_filter_search.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
construct('search_total', $search_index, 'word', 'word');
- $search_total = $this->query->add_relationship(NULL, $join, $search_index);
+ $search_total = $this->query->add_relationship('search_total', $join, $search_index);
$this->search_score = $this->query->add_field('', "SUM($search_index.score * $search_total.count)", 'score', array('aggregate' => TRUE));
Index: sites/all/modules/views/modules/comment.views_convert.inc
===================================================================
--- sites/all/modules/views/modules/comment.views_convert.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/comment.views_convert.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
set_item_option($display, 'field', $id, 'link_to_comment', FALSE);
+ }
+ break;
+ case 'cid':
+ $view->set_item_option($display, 'field', $id, 'link_to_comment', FALSE);
+ break;
+ case 'timestamp':
+ $handlers = array(
+ 'views_handler_field_date_small' => 'small',
+ 'views_handler_field_date' => 'medium',
+ 'views_handler_field_date_large' => 'large',
+ 'views_handler_field_date_custom' => 'custom',
+ 'views_handler_field_since' => 'time ago',
+ );
+ $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]);
+ if (!empty($field['options'])) {
+ $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']);
+ }
+ break;
case 'add':
$view->set_item_option($display, 'field', $id, 'field', 'replyto_comment');
break;
@@ -26,34 +47,92 @@
break;
case 'node_comment_statistics':
switch ($field['field']) {
+ case 'last_comment_timestamp':
+ $handlers = array(
+ 'views_handler_field_date_small' => 'small',
+ 'views_handler_field_date' => 'medium',
+ 'views_handler_field_date_large' => 'large',
+ 'views_handler_field_date_custom' => 'custom',
+ 'views_handler_field_since' => 'time ago',
+ );
+ $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]);
+ if (!empty($field['options'])) {
+ $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']);
+ }
+ break;
case 'last_changed':
+ $handlers = array(
+ 'views_handler_field_date_small' => 'small',
+ 'views_handler_field_date' => 'medium',
+ 'views_handler_field_date_large' => 'large',
+ 'views_handler_field_date_custom' => 'custom',
+ 'views_handler_field_since' => 'time ago',
+ );
$item = $view->get_item($display, 'field', $id);
- $item['field'] = 'last_updated';
+ $item['date_format'] = $handlers[$field['handler']];
if (!empty($field['options'])) {
$item['custom_date_format'] = $field['options'];
}
- switch ($field['handler']) {
- case 'views_handler_field_date_small':
- $item['date_format'] = 'small';
- break;
- case 'views_handler_field_date':
- $item['date_format'] = 'medium';
- break;
- case 'views_handler_field_date_large':
- $item['date_format'] = 'large';
- break;
- case 'views_handler_field_date_custom':
- $item['date_format'] = 'custom';
- break;
- case 'views_handler_field_since':
- $item['date_format'] = 'time ago';
- break;
- }
+ $item['field'] = 'last_updated';
$view->set_item($display, 'field', $id, $item);
break;
}
break;
}
break;
+ case 'filter':
+ switch ($field['tablename']) {
+ case 'comments':
+ switch ($field['field']) {
+ case 'status':
+ $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ break;
+ }
+ break;
+ case 'node_comment_statistics':
+ switch ($field['field']) {
+ case 'comment_count':
+ $view->set_item_option($display, 'filter', $id, 'operator', $field['operator']);
+ $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ break;
+ case 'last_changed':
+ $field['field'] = 'last_updated';
+ case 'last_comment_timestamp':
+ $item = $view->get_item($display, 'filter', $id);
+ $item['operator'] = $field['operator'];
+ $item['value']['type'] = $field['value'] == 'now' ? 'offset' : 'date';
+ $item['value']['value'] = $field['value'];
+ if (!empty($field['options'])) {
+ $item['value']['value'] = intval($field['options']) .' seconds';
+ }
+ $item['field'] = $field['field'];
+ $view->set_item($display, 'filter', $id, $item);
+ break;
+ }
+ break;
+ }
+ break;
+ case 'sort':
+ switch ($field['tablename']) {
+ case 'comments':
+ switch ($field['field']) {
+ case 'timestamp':
+ $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options'];
+ $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']);
+ break;
+ }
+ break;
+ case 'node_comment_statistics':
+ switch ($field['field']) {
+ case 'last_changed':
+ $view->set_item_option($display, 'sort', $id, 'field', 'last_updated');
+ case 'last_comment_timestamp':
+ $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options'];
+ $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']);
+ break;
+ }
+ break;
+ }
+ break;
}
}
Index: sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc
===================================================================
--- sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
value_options = array();
$vocabularies = taxonomy_get_vocabularies();
foreach ($vocabularies as $voc) {
- $this->value_options[$voc->vid] = check_plain($voc->name);
+ $this->value_options[$voc->vid] = $voc->name;
}
}
}
Index: sites/all/modules/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc
===================================================================
--- sites/all/modules/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
tid]);
}
+ // Remove duplicate titles
+ $titles = array_unique($titles);
+
$this->argument->validated_title = implode($tids->operator == 'or' ? ' + ' : ', ', $titles);
// If this is not empty, we did not find a tid.
return empty($test);
@@ -111,6 +114,7 @@
if ($type == 'convert') {
$this->argument->argument = $result->tid;
+ $this->argument->validated_title = check_plain($result->name);
}
return TRUE;
Index: sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc
===================================================================
--- sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,90 @@
+ t('Is one of'),
+ );
+ }
+
+ function option_definition() {
+ $options = parent::option_definition();
+
+ $options['depth'] = array('default' => 0);
+
+ return $options;
+ }
+
+ function extra_options_form(&$form, &$form_state) {
+ parent::extra_options_form($form, $form_state);
+
+ $form['depth'] = array(
+ '#type' => 'weight',
+ '#title' => t('Depth'),
+ '#default_value' => $this->options['depth'],
+ '#description' => t('The depth will match nodes tagged with terms in the hierarchy. For example, if you have the term "fruit" and a child term "apple", with a depth of 1 (or higher) then filtering for the term "fruit" will get nodes that are tagged with "apple" as well as "fruit". If negative, the reverse is true; searching for "apple" will also pick up nodes tagged with "fruit" if depth is -1 (or lower).'),
+ );
+ }
+
+ function query() {
+ // If no filter values are present, then do nothing.
+ if (count($this->value) == 0) {
+ return;
+ }
+ else if (count($this->value) == 1) {
+ $placeholder = " = %d";
+ }
+ else {
+ $placeholder = " IN (" . implode(', ', array_fill(0, sizeof($this->value), '%d')) . ")";
+ }
+
+ // The normal use of ensure_my_table() here breaks Views.
+ // So instead we trick the filter into using the alias of the base table.
+ // See http://drupal.org/node/271833
+ // If a relationship is set, we must use the alias it provides.
+ if (!empty($this->relationship)) {
+ $this->table_alias = $this->relationship;
+ }
+ // If no relationship, then use the alias of the base table.
+ else if (isset($this->query->table_queue[$this->query->base_table]['alias'])) {
+ $this->table_alias = $this->query->table_queue[$this->query->base_table]['alias'];
+ }
+ // This should never happen, but if it does, we fail quietly.
+ else {
+ return;
+ }
+
+ // Now build the subqueries.
+ $subquery = "\n SELECT tn.vid FROM {term_node} tn\n";
+ $where = " WHERE tn.tid $placeholder\n";
+ $args = $this->value;
+ $last = "tn";
+
+ if ($this->options['depth'] > 0) {
+ $subquery .= " LEFT JOIN {term_hierarchy} th ON th.tid = tn.tid\n";
+ $last = "th";
+ foreach (range(1, abs($this->options['depth'])) as $count) {
+ $subquery .= " LEFT JOIN {term_hierarchy} th$count ON $last.parent = th$count.tid\n";
+ $where .= " OR th$count.tid $placeholder\n";
+ $args = array_merge($args, $this->value);
+ $last = "th$count";
+ }
+ }
+ else if ($this->options['depth'] < 0) {
+ foreach (range(1, abs($this->options['depth'])) as $count) {
+ $subquery .= " LEFT JOIN {term_hierarchy} th$count ON $last.tid = th$count.parent\n";
+ $where .= " OR th$count.tid $placeholder\n";
+ $args = array_merge($args, $this->value);
+ $last = "th$count";
+ }
+ }
+
+ $this->query->add_where(0, "$this->table_alias.$this->real_field IN ($subquery$where )", $args);
+ }
+}
Index: sites/all/modules/views/modules/user.views_convert.inc
===================================================================
--- sites/all/modules/views/modules/user.views_convert.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/user.views_convert.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
set_item_option($display, 'field', $id, 'field', 'picture');
+ break;
+ }
+ break;
+ }
+ break;
+ case 'filter':
+ if ($field['tablename'] == 'users' || !strncmp($field['tablename'], 'users_role_', 11)) {
+ switch ($field['field']) {
+ case 'uid':
+ $operators = array('OR' => 'in', 'NOR' => 'not in');
+ $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
+ $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ if ($rid = (integer) substr($field['tablename'], 11)) {
+ $view->add_item($display, 'filter', 'users_roles', 'rid', array('value' => $rid));
+ }
+ break;
+ }
+ }
+ elseif ($field['tablename'] == 'users_roles') {
+ switch ($field['field']) {
+ case 'rid':
+ $operators = array('AND' => 'and', 'OR' => 'or', 'NOR' => 'not');
+ $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
+ $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ break;
+ }
+ }
+ break;
case 'argument':
+ $options = $field['argoptions'];
switch ($field['type']) {
case 'uid':
+ $view->add_item($display, 'argument', 'users', 'uid', $options, $field['id']);
+ break;
case 'uidtouch':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
- $views->add_item($display, 'argument', 'users', 'uid');
+ $view->add_item($display, 'argument', 'node', 'uid_touch', $options, $field['id']);
break;
case 'username':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
- $views->add_item($display, 'argument', 'users', 'name');
+ $view->add_item($display, 'argument', 'users', 'name', $options, $field['id']);
break;
}
break;
Index: sites/all/modules/views/modules/taxonomy.views.inc
===================================================================
--- sites/all/modules/views/modules/taxonomy.views.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/taxonomy.views.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
'views_handler_argument_string',
'help' => t('Taxonomy term name.'),
'many to one' => TRUE,
- 'empty name field' => t('Uncategorized'),
+ 'empty field name' => t('Uncategorized'),
),
);
@@ -209,7 +209,7 @@
'handler' => 'views_handler_argument_term_node_tid',
'name table' => 'term_data',
'name field' => 'name',
- 'empty name field' => t('Uncategorized'),
+ 'empty field name' => t('Uncategorized'),
'numeric' => TRUE,
'skip base' => 'term_data',
),
@@ -219,6 +219,7 @@
'hierarchy table' => 'term_hierarchy',
'numeric' => TRUE,
'skip base' => 'term_data',
+ 'allow empty' => TRUE,
),
);
@@ -262,6 +263,10 @@
'field' => 'parent',
'label' => t('Parent'),
),
+ 'argument' => array(
+ 'help' => t('The parent term of the term.'),
+ 'handler' => 'views_handler_argument_numeric',
+ ),
);
// ----------------------------------------------------------------------
@@ -293,7 +298,7 @@
'argument' => array(
'handler' => 'views_handler_argument_string',
'many to one' => TRUE,
- 'empty name field' => t('Uncategorized'),
+ 'empty field name' => t('Uncategorized'),
),
);
return $data;
@@ -312,6 +317,9 @@
'handler' => 'views_handler_argument_term_node_tid_depth',
'accept depth modifier' => TRUE,
),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_term_node_tid_depth',
+ ),
);
$data['node']['term_node_tid_depth_modifier'] = array(
@@ -361,6 +369,9 @@
'views_handler_filter_term_node_tid' => array(
'parent' => 'views_handler_filter_many_to_one',
),
+ 'views_handler_filter_term_node_tid_depth' => array(
+ 'parent' => 'views_handler_filter_term_node_tid',
+ ),
),
);
}
Index: sites/all/modules/views/modules/node/views_handler_filter_node_status.inc
===================================================================
--- sites/all/modules/views/modules/node/views_handler_filter_node_status.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/node/views_handler_filter_node_status.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
ensure_my_table();
- $this->query->add_where($this->options['group'], "$table.status <> 0 OR $table.uid = ***CURRENT_USER*** or ***ADMINISTER_NODES*** = 1");
+ $this->query->add_where($this->options['group'], "$table.status <> 0 OR ($table.uid = ***CURRENT_USER*** AND ***CURRENT_USER*** <> 0) OR ***ADMINISTER_NODES*** = 1");
}
}
Index: sites/all/modules/views/modules/node/views_handler_filter_node_access.inc
===================================================================
--- sites/all/modules/views/modules/node/views_handler_filter_node_access.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/node/views_handler_filter_node_access.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,33 @@
+ensure_my_table();
+ $grants = array();
+ foreach (node_access_grants($op, $account) as $realm => $gids) {
+ foreach ($gids as $gid) {
+ $grants[] = "($table.gid = $gid AND $table.realm = '$realm')";
+ }
+ }
+ $grants_sql = '';
+ if (count($grants)) {
+ $grants_sql = implode(' OR ', $grants);
+ }
+ $this->query->add_where('AND', $grants_sql);
+ $this->query->add_where('AND', "$table.grant_view >= 1");
+ }
+ }
+}
Index: sites/all/modules/views/modules/node/views_plugin_argument_validate_node.inc
===================================================================
--- sites/all/modules/views/modules/node/views_plugin_argument_validate_node.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/node/views_plugin_argument_validate_node.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
$info) {
- $options[$type] = $info->name;
+ $options[$type] = check_plain(t($info->name));
}
$arg = $this->get_argument();
Index: sites/all/modules/views/modules/node/views_plugin_row_node_rss.inc
===================================================================
--- sites/all/modules/views/modules/node/views_plugin_row_node_rss.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/node/views_plugin_row_node_rss.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
elements = array_merge($extra,
array(
- array('key' => 'pubDate', 'value' => format_date($node->created, 'custom', 'r', variable_get('date_default_timezone', 0))),
+ array('key' => 'pubDate', 'value' => gmdate('r', $node->created)),
array(
'key' => 'dc:creator',
'value' => $node->name,
Index: sites/all/modules/views/modules/node/views_plugin_row_node_view.inc
===================================================================
--- sites/all/modules/views/modules/node/views_plugin_row_node_view.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/node/views_plugin_row_node_view.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
options['teaser'])) {
+ $this->options['build_mode'] = $this->options['teaser'] ? 'teaser' : 'full';
+ }
+ }
+
function option_definition() {
$options = parent::option_definition();
- $options['teaser'] = array('default' => TRUE);
+ $options['build_mode'] = array('default' => 'teaser');
$options['links'] = array('default' => TRUE);
$options['comments'] = array('default' => FALSE);
@@ -28,11 +36,29 @@
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
- $form['teaser'] = array(
- '#type' => 'checkbox',
- '#title' => t('Display only teaser'),
- '#default_value' => $this->options['teaser'],
- );
+ // CCK holds the registry of available build modes, but can hardly
+ // push them as options for the node row style, so we break the normal
+ // rule of not directly relying on non-core modules.
+ if ($modes = module_invoke('content', 'build_modes')) {
+ $options = array();
+ foreach ($modes as $key => $value) {
+ if (isset($value['views style']) && $value['views style']) {
+ $options[$key] = $value['title'];
+ }
+ }
+ }
+ else {
+ $options = array(
+ 'teaser' => t('Teaser'),
+ 'full' => t('Full node')
+ );
+ }
+ $form['build_mode'] = array(
+ '#type' => 'select',
+ '#options' => $options,
+ '#title' => t('Build mode'),
+ '#default_value' => $this->options['build_mode'],
+ );
$form['links'] = array(
'#type' => 'checkbox',
'#title' => t('Display links'),
Index: sites/all/modules/views/modules/node/views_handler_filter_history_user_timestamp.inc
===================================================================
--- sites/all/modules/views/modules/node/views_handler_filter_history_user_timestamp.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/node/views_handler_filter_history_user_timestamp.inc (.../branches/drupal6) (revision 1945)
@@ -1,10 +1,35 @@
options['expose']['label'])) {
+ $label = $this->options['expose']['label'];
+ }
+ else {
+ $label = t('Has new content');
+ }
+ $form['value'] = array(
+ '#type' => 'checkbox',
+ '#title' => $label,
+ '#default_value' => $this->value,
+ );
+ }
+ }
+
function query() {
global $user;
// This can only work if we're logged in.
@@ -12,6 +37,11 @@
return;
}
+ // Don't filter if we're exposed and the checkbox isn't selected.
+ if (empty($this->value)) {
+ return;
+ }
+
// Hey, Drupal kills old history, so nodes that haven't been updated
// since NODE_NEW_LIMIT are bzzzzzzzt outta here!
@@ -33,9 +63,10 @@
$this->query->add_where($this->options['group'], "($field IS NULL AND ($node.changed > (***CURRENT_TIME*** - $limit) $clause)) OR $field < $node.changed $clause2");
}
- /**
- * Blank this, because there is nothing to say about this one.
- */
- function admin_summary() { }
+ function admin_summary() {
+ if (!empty($this->options['exposed'])) {
+ return t('exposed');
+ }
+ }
}
Index: sites/all/modules/views/modules/node/views_handler_field_node.inc
===================================================================
--- sites/all/modules/views/modules/node/views_handler_field_node.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/node/views_handler_field_node.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
options['link_to_node']) && $data !== NULL && $data !== '') {
$this->options['alter']['make_link'] = TRUE;
$this->options['alter']['path'] = "node/" . $values->{$this->aliases['nid']};
+ $this->options['alter']['alt'] = check_plain($data);
}
return $data;
}
Index: sites/all/modules/views/modules/node/views_handler_argument_node_type.inc
===================================================================
--- sites/all/modules/views/modules/node/views_handler_argument_node_type.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/node/views_handler_argument_node_type.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
{$this->field_alias});
- return $this->render_link(check_plain($value), $values);
+ return $this->render_link(t(check_plain($value)), $values);
}
}
Index: sites/all/modules/views/modules/node/views_handler_filter_node_type.inc
===================================================================
--- sites/all/modules/views/modules/node/views_handler_filter_node_type.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/node/views_handler_filter_node_type.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
value_title = t('Node type');
$types = node_get_types();
foreach ($types as $type => $info) {
- $options[$type] = $info->name;
+ $options[$type] = t($info->name);
}
$this->value_options = $options;
}
}
-}
\ No newline at end of file
+}
Index: sites/all/modules/views/modules/filter/views_handler_field_filter_format_name.inc
===================================================================
--- sites/all/modules/views/modules/filter/views_handler_field_filter_format_name.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/filter/views_handler_field_filter_format_name.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,29 @@
+additional_fields['name'] = array('table' => 'filter_formats', 'field' => 'name');
+ }
+
+ function query() {
+ $this->ensure_my_table();
+ $this->add_additional_fields();
+ }
+
+ function render($values) {
+ $format_name = $values->{$this->aliases['name']};
+ if (!$format_name) {
+ // Default or invalid input format.
+ // filter_formats() will reliably return the default format even if the
+ // current user is unprivileged.
+ $format = filter_formats(variable_get('filter_default_format', 1));
+ return check_plain($format->name);
+ }
+ return check_plain($format_name);
+ }
+}
Index: sites/all/modules/views/modules/upload.views_convert.inc
===================================================================
--- sites/all/modules/views/modules/upload.views_convert.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/upload.views_convert.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
add_item($display, 'relationship', 'node', 'upload_fid', array(), 'node_upload_fid');
+ $view->set_item_option($display, 'field', $id, 'relationship', $relationship);
+ $view->set_item_option($display, 'field', $id, 'table', 'files');
+ break;
+ }
+ break;
case 'files':
- switch($field['field']) {
+ switch ($field['field']) {
case 'all_files':
$item = $view->get_item($display, 'field', $id);
switch ($field['options']) {
@@ -35,12 +44,72 @@
if ($field['handler'] == 'views_handler_file_listed_files') {
$item['only_listed'] = TRUE;
}
- $view->set_item($display, 'field', $id, NULL);
- $view->add_item($display, 'field', 'node', 'upload_fid', $item, $id);
+ $item['table'] = 'node';
+ $item['field'] = 'upload_fid';
+ $view->set_item($display, 'field', $id, $item);
break;
+ case 'filename':
+ if ($field['handler'] == 'views_handler_file_filename_download') {
+ $view->set_item_option($display, 'field', $id, 'link_to_file', TRUE);
+ }
+ $relationship = $view->add_item($display, 'relationship', 'node', 'upload_fid', array(), 'node_upload_fid');
+ $view->set_item_option($display, 'field', $id, 'relationship', $relationship);
+ break;
}
break;
}
break;
+ case 'filter':
+ switch ($field['tablename']) {
+ case 'file_revisions':
+ switch ($field['field']) {
+ case 'fid':
+ $item = $view->get_item($display, 'filter', $id);
+ $item['value'] = $field['value'];
+ $item['table'] = 'node';
+ $item['field'] = 'upload_fid';
+ $view->set_item($display, 'filter', $id, $item);
+ break;
+ case 'list':
+ $view->set_item_option($display, 'filter', $id, 'value', $field['value']);
+ $view->set_item_option($display, 'filter', $id, 'table', 'upload');
+ break;
+ }
+ break;
+ case 'files':
+ switch ($field['field']) {
+ case 'filename':
+ case 'filemime':
+ $item = $view->get_item($display, 'filter', $id);
+ $item['operator'] = $field['operator'];
+ $item['value'] = $field['value'];
+ $item['case'] = FALSE;
+ $item['relationship'] = $view->add_item($display, 'relationship', 'node', 'upload_fid', array(), 'node_upload_fid');
+ $view->set_item($display, 'filter', $id, $item);
+ break;
+ case 'filesize':
+ $item = $view->get_item($display, 'filter', $id);
+ $item['operator'] = $field['operator'];
+ $item['value'] = $field['value'];
+ $item['relationship'] = $view->add_item($display, 'relationship', 'node', 'upload_fid', array(), 'node_upload_fid');
+ $view->set_item($display, 'filter', $id, $item);
+ break;
+ }
+ break;
+ }
+ break;
+ case 'sorts':
+ switch ($field['tablename']) {
+ case 'file_revisions':
+ switch ($field['field']) {
+ case 'fid':
+ $relationship = $view->add_item($display, 'relationship', 'node', 'upload_fid', array(), 'node_upload_fid');
+ $view->set_item_option($display, 'field', $id, 'relationship', $relationship);
+ $view->set_item_option($display, 'field', $id, 'table', 'files');
+ break;
+ }
+ break;
+ }
+ break;
}
}
Index: sites/all/modules/views/modules/node.views.inc
===================================================================
--- sites/all/modules/views/modules/node.views.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/node.views.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
t('Updated date'),
+ 'help' => t('In the form of CCYYMMDD.'),
+ 'argument' => array(
+ 'field' => 'changed',
+ 'handler' => 'views_handler_argument_node_created_fulldate',
+ ),
+ );
+
+ $data['node']['changed_year_month'] = array(
+ 'title' => t('Updated year + month'),
+ 'help' => t('In the form of YYYYMM.'),
+ 'argument' => array(
+ 'field' => 'changed',
+ 'handler' => 'views_handler_argument_node_created_year_month',
+ ),
+ );
+
+ $data['node']['changed_year'] = array(
+ 'title' => t('Updated year'),
+ 'help' => t('In the form of YYYY.'),
+ 'argument' => array(
+ 'field' => 'changed',
+ 'handler' => 'views_handler_argument_node_created_year',
+ ),
+ );
+
+ $data['node']['changed_month'] = array(
+ 'title' => t('Updated month'),
+ 'help' => t('In the form of MM (01 - 12).'),
+ 'argument' => array(
+ 'field' => 'changed',
+ 'handler' => 'views_handler_argument_node_created_month',
+ ),
+ );
+
+ $data['node']['changed_day'] = array(
+ 'title' => t('Updated day'),
+ 'help' => t('In the form of DD (01 - 31).'),
+ 'argument' => array(
+ 'field' => 'changed',
+ 'handler' => 'views_handler_argument_node_created_day',
+ ),
+ );
+
+ $data['node']['changed_week'] = array(
+ 'title' => t('Updated week'),
+ 'help' => t('In the form of WW (01 - 53).'),
+ 'argument' => array(
+ 'field' => 'changed',
+ 'handler' => 'views_handler_argument_node_created_week',
+ ),
+ );
+
// ----------------------------------------------------------------------
// Node revisions table
@@ -463,6 +517,39 @@
),
);
+ // input format id
+ $data['node_revisions']['format'] = array(
+ 'title' => t('Input format id'), // The item it appears as on the UI,
+ 'help' => t('The numeric input format of the node revision. !default means the default input format.', array('!default' => FILTER_FORMAT_DEFAULT)), // The help that appears on the UI,
+ // Information for displaying an input format as a field
+ 'field' => array(
+ 'handler' => 'views_handler_field_numeric',
+ 'click sortable' => TRUE,
+ ),
+ // Information for sorting on input format
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ // Information for accepting input format as a filter
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_numeric',
+ ),
+ );
+
+ // input format name
+ // A (numeric) format of 0 means the default; Drupal also applies the default
+ // if the format specifed for a node revision has been deleted.
+ // This complexity makes sorting and filtering by format name tricky,
+ // hence these are not yet supported.
+ $data['node_revisions']['format_name'] = array(
+ 'title' => t('Input format'), // The item it appears as on the UI,
+ 'help' => t('The name of the input format of the node revision.'), // The help that appears on the UI,
+ // Information for displaying an input format as a field
+ 'field' => array(
+ 'handler' => 'views_handler_field_filter_format_name',
+ ),
+ );
+
$data['node_revisions']['revert_revision'] = array(
'field' => array(
'title' => t('Revert link'),
@@ -480,6 +567,31 @@
);
// ----------------------------------------------------------------------
+ // Node access table
+
+ // Define the base group of this table. Fields that don't
+ // have a group defined will go into this field by default.
+ $data['node_access']['table']['group'] = t('Node access');
+
+ // For other base tables, explain how we join
+ $data['node_access']['table']['join'] = array(
+ // Directly links to node table.
+ 'node' => array(
+ 'left_field' => 'nid',
+ 'field' => 'nid',
+ ),
+ );
+ // nid field
+ $data['node_access']['nid'] = array(
+ 'title' => t('Access'),
+ 'help' => t('Filter by access.'),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_node_access',
+ 'help' => t('Filter for nodes by view access. Not necessary if you are using node as your base table.'),
+ ),
+ );
+
+ // ----------------------------------------------------------------------
// History table
// We're actually defining a specific instance of the table, so let's
@@ -604,7 +716,9 @@
'views_handler_filter_node_status' => array(
'parent' => 'views_handler_filter',
),
-
+ 'views_handler_filter_node_access' => array(
+ 'parent' => 'views_handler_filter',
+ ),
),
);
}
@@ -673,13 +787,15 @@
}
$node = node_load($nid);
- $node->view = $vars['view'];
if (empty($node)) {
return;
}
- $vars['node'] = node_view($node, $options['teaser'], FALSE, $options['links']);
+ $node->view = $vars['view'];
+ $node->build_mode = ($options['build_mode'] == 'teaser' || $options['build_mode'] == 'full') ? NODE_BUILD_NORMAL : $options['build_mode'];
+ $vars['node'] = node_view($node, $options['build_mode'] == 'teaser', FALSE, $options['links']);
+
if (!empty($options['comments']) && function_exists('comment_render')) {
$vars['comments'] = comment_render($node);
}
Index: sites/all/modules/views/modules/filter.views.inc
===================================================================
--- sites/all/modules/views/modules/filter.views.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/filter.views.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,55 @@
+ array(
+ 'left_field' => 'format',
+ 'field' => 'format',
+ ),
+ 'node' => array(
+ 'left_table' => 'node_revisions',
+ 'left_field' => 'format',
+ 'field' => 'format',
+ ),
+ );
+
+ return $data;
+}
+
+function filter_views_handlers() {
+ return array(
+ 'info' => array(
+ 'path' => drupal_get_path('module', 'views') . '/modules/filter',
+ ),
+ 'handlers' => array(
+ // field handlers
+ 'views_handler_field_filter_format_name' => array(
+ 'parent' => 'views_handler_field',
+ ),
+ ),
+ );
+}
+
+/**
+ * @}
+ */
Index: sites/all/modules/views/modules/contact/views_handler_field_contact_link.inc
===================================================================
--- sites/all/modules/views/modules/contact/views_handler_field_contact_link.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/contact/views_handler_field_contact_link.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,50 @@
+ 'link', 'translatable' => FALSE);
+ return $options;
+ }
+
+ function options_form(&$form, &$form_state) {
+ parent::options_form($form, $form_state);
+ $form['link_display'] = array(
+ '#title' => t('Type of link'),
+ '#default_value' => $this->options['link_display'],
+ '#type' => 'select',
+ '#options' => array(
+ 'link' => t('Link'),
+ 'icon' => t('Icon'),
+ ),
+ );
+ $form['text']['#title'] = t('Link label');
+ $form['text']['#required'] = TRUE;
+ $form['text']['#default_value'] = empty($this->options['text']) ? t('contact') : $this->options['text'];
+ }
+
+ function render($values) {
+ global $user;
+ $uid = $values->{$this->aliases['uid']};
+ $account = user_load(array('uid' => $uid));
+
+ // Check access when we pull up the user account so we know
+ // if the user has made the contact page available.
+ if (! _contact_user_tab_access($account)) {
+ return;
+ }
+ if ($account !== FALSE && $account->contact && $user->uid > 0) {
+ if ($this->options['link_display'] == 'icon') {
+ return l(theme('image', 'misc/forum-new.png'), 'user/'. $account->uid .'/contact', array('html' => TRUE, 'attributes' => array('title' => t('Contact %user', array('%user' => $account->name)))));
+ }
+ else {
+ return l($this->options['text'], 'user/'. $account->uid .'/contact', array('attributes' => array('title' => t('Contact %user', array('%user' => $account->name)))));
+ }
+ }
+ }
+}
+
Index: sites/all/modules/views/modules/statistics.views_convert.inc
===================================================================
--- sites/all/modules/views/modules/statistics.views_convert.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/statistics.views_convert.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,52 @@
+add_item() won't produce
+ * the right results, usually needed to set field options or values.
+ */
+function statistics_views_convert($display, $type, &$view, $field, $id = NULL) {
+ switch ($type) {
+ case 'field':
+ switch ($field['tablename']) {
+ case 'node_counter':
+ switch ($field['field']) {
+ case 'timestamp':
+ $handlers = array(
+ 'views_handler_field_date_small' => 'small',
+ 'views_handler_field_date' => 'medium',
+ 'views_handler_field_date_large' => 'large',
+ 'views_handler_field_date_custom' => 'custom',
+ 'views_handler_field_since' => 'time ago',
+ );
+ $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]);
+ if (!empty($field['options'])) {
+ $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']);
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'sort':
+ switch ($field['tablename']) {
+ case 'node_counter':
+ switch ($field['field']) {
+ case 'timestamp':
+ $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options'];
+ $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']);
+ break;
+ }
+ break;
+ }
+ break;
+ }
+}
Index: sites/all/modules/views/modules/book.views_convert.inc
===================================================================
--- sites/all/modules/views/modules/book.views_convert.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/book.views_convert.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
get_item($display, 'field', $id);
+ if ($field['handler'] == 'views_handler_field_book_parent_title') {
+ $item['link_to_node'] = TRUE;
+ }
+ $item['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
+ $item['table'] = 'node';
+ $item['field'] = 'title';
+ $view->set_item($display, 'field', $id, $item);
+ break;
+ }
+ break;
+ }
+ break;
+ case 'filter':
+ switch ($field['tablename']) {
+ case 'book':
+ switch ($field['field']) {
+ case 'parent':
+ $operators = array('AND' => '=', 'OR' => '=', 'NOT' => '!=');
+ $item = $view->get_item($display, 'filter', $id);
+ $item['operator'] = $operators[$field['operator']];
+ $item['value'] = $field['value'];
+ $item['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
+ $item['table'] = 'node';
+ $item['field'] = 'nid';
+ $view->set_item($display, 'filter', $id, $item);
+ break;
+ }
+ break;
+ }
+ break;
+ case 'sort':
+ switch ($field['tablename']) {
+ case 'book':
+ switch ($field['field']) {
+ case 'weight':
+ $view->set_item_option($display, 'sort', $id, 'table', 'book_menu_links');
+ break;
+ }
+ break;
+ case 'book_parent_node':
+ switch ($field['field']) {
+ case 'title':
+ $item = $view->get_item($display, 'sort', $id);
+ $item['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
+ $item['table'] = 'node';
+ $item['field'] = 'title';
+ $view->set_item($display, 'sort', $id, $item);
+ break;
+ }
+ break;
+ }
+ break;
case 'argument':
+ $options = $field['argoptions'];
switch ($field['type']) {
case 'book_parent':
- $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
- $options['default_action'] = $actions[$field['argdefault']];
- if (!empty($field['title'])) {
- $options['title'] = $field['title'];
- }
- if (!empty($field['wildcard'])) {
- $options['wildcard'] = $field['wildcard'];
- }
- if (!empty($field['wildcard_substitution'])) {
- $options['wildcard_substitution'] = $field['wildcard_substitution'];
- }
$options['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
- $view->add_item($display, 'argument', 'node', 'nid', $options, $id);
+ $view->add_item($display, 'argument', 'node', 'nid', $options, $field['id']);
break;
}
break;
Index: sites/all/modules/views/modules/contact.views.inc
===================================================================
--- sites/all/modules/views/modules/contact.views.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/contact.views.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,33 @@
+ array(
+ 'title' => t('Link to contact page'),
+ 'help' => t('Provide a simple link to the user contact page.'),
+ 'handler' => 'views_handler_field_contact_link',
+ ),
+ );
+ return $data;
+}
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function contact_views_handlers() {
+ return array(
+ 'info' => array(
+ 'path' => drupal_get_path('module', 'views') . '/modules/contact',
+ ),
+ 'handlers' => array(
+ 'views_handler_field_contact_link' => array(
+ 'parent' => 'views_handler_field_user_link',
+ ),
+ ),
+ );
+}
Index: sites/all/modules/views/modules/views.views.inc
===================================================================
--- sites/all/modules/views/modules/views.views.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/views.views.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
'views_handler_field_custom',
),
);
+
+ $data['views']['counter'] = array(
+ 'title' => t('View result counter'),
+ 'help' => t('Displays the actual position of the view result'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_counter',
+ ),
+ );
return $data;
}
Index: sites/all/modules/views/modules/comment/views_handler_argument_comment_user_uid.inc
===================================================================
--- sites/all/modules/views/modules/comment/views_handler_argument_comment_user_uid.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/comment/views_handler_argument_comment_user_uid.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
ensure_my_table();
- $this->query->add_where(0, "$this->table_alias.uid = %d OR (SELECT COUNT(*) FROM {comments} c WHERE c.uid = %d AND c.nid = $this->table_alias.nid)", $this->argument, $this->argument);
+ $this->query->add_where(0, "$this->table_alias.uid = %d OR ((SELECT COUNT(*) FROM {comments} c WHERE c.uid = %d AND c.nid = $this->table_alias.nid) > 0)", $this->argument, $this->argument);
}
}
Index: sites/all/modules/views/modules/comment/views_handler_filter_comment_user_uid.inc
===================================================================
--- sites/all/modules/views/modules/comment/views_handler_filter_comment_user_uid.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/comment/views_handler_filter_comment_user_uid.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
query->add_where($this->options['group'], "$this->table_alias.uid " . $condition . " OR
- (SELECT COUNT(*) FROM {comments} c WHERE c.uid " . $condition . " AND c.nid = $this->table_alias.nid)",
+ ((SELECT COUNT(*) FROM {comments} c WHERE c.uid " . $condition . " AND c.nid = $this->table_alias.nid) > 0)",
$args);
}
}
Index: sites/all/modules/views/modules/comment/views_handler_field_comment_node_link.inc
===================================================================
--- sites/all/modules/views/modules/comment/views_handler_field_comment_node_link.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/comment/views_handler_field_comment_node_link.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,63 @@
+additional_fields['nid'] = array(
+ 'table' => 'node',
+ 'field' => 'nid',
+ );
+ $this->additional_fields['type'] = array(
+ 'table' => 'node',
+ 'field' => 'type',
+ );
+ $this->additional_fields['comment'] = array(
+ 'table' => 'node',
+ 'field' => 'comment',
+ );
+ }
+
+ function option_definition() {
+ $options = parent::option_definition();
+ $options['teaser'] = array('default' => 0);
+ return $options;
+ }
+
+ function options_form(&$form, &$form_state) {
+ parent::options_form($form, $form_state);
+
+ $form['teaser'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Show teaser-style link'),
+ '#default_value' => $this->options['teaser'],
+ '#description' => 'Show the comment link in the form used on standard node teasers, rather than the full node form.',
+ );
+
+ }
+
+ function query() {
+ $this->ensure_my_table();
+ $this->add_additional_fields();
+ }
+
+ function render($values) {
+ // Build fake $node.
+ $node = new stdClass();
+ $node->nid = $values->{$this->aliases['nid']};
+ $node->type = $values->{$this->aliases['type']};
+ $node->comment = $values->{$this->aliases['comment']};
+
+ // Call comment.module's hook_link: comment_link($type, $node = NULL, $teaser = FALSE)
+ $links = comment_link('node', $node, $this->options['teaser']);
+ // question: should we run these through: drupal_alter('link', $links, $node);
+ // might this have unexpected consequences if these hooks expect items in $node that we don't have?
+
+ return !empty($links) ? theme('links', $links, array('class' => 'links inline')) : '';
+ }
+}
+
Index: sites/all/modules/views/modules/comment.views.inc
===================================================================
--- sites/all/modules/views/modules/comment.views.inc (.../trunk) (revision 1945)
+++ sites/all/modules/views/modules/comment.views.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
array(
+ 'title' => t('Node link'),
+ 'help' => t('Display the standard comment link used on regular nodes.'),
+ 'handler' => 'views_handler_field_comment_node_link',
+ ),
+ );
+
$data['comments']['thread'] = array(
'field' => array(
'title' => t('Depth'),
@@ -444,6 +452,9 @@
'views_handler_field_comment_link_reply' => array(
'parent' => 'views_handler_field_comment_link',
),
+ 'views_handler_field_comment_node_link' => array(
+ 'parent' => 'views_handler_field',
+ ),
'views_handler_field_ncs_last_comment_name' => array(
'parent' => 'views_handler_field',
),
Index: sites/all/modules/views/modules/user/views_handler_field_user_language.inc
===================================================================
--- sites/all/modules/views/modules/user/views_handler_field_user_language.inc (.../trunk) (revision 0)
+++ sites/all/modules/views/modules/user/views_handler_field_user_language.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,29 @@
+options['link_to_user']) && user_access('access user profiles') && $values->{$this->aliases['uid']}) {
+ $this->options['alter']['make_link'] = TRUE;
+ $this->options['alter']['path'] = 'user/' . $values->{$this->aliases['uid']};
+ }
+ if (empty($data)) {
+ $lang = language_default();
+ }
+ else {
+ $lang = language_list();
+ $lang = $lang[$data];
+ }
+
+ return check_plain($lang->name);
+ }
+
+ function render($values) {
+ return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+ }
+}
Index: sites/all/modules/views/js/dependent.js
===================================================================
--- sites/all/modules/views/js/dependent.js (.../trunk) (revision 1945)
+++ sites/all/modules/views/js/dependent.js (.../branches/drupal6) (revision 1945)
@@ -1,4 +1,4 @@
-// $Id: dependent.js,v 1.7 2009/04/07 23:10:00 merlinofchaos Exp $
+// $Id: dependent.js,v 1.8 2009/06/02 17:12:13 merlinofchaos Exp $
/**
* @file dependent.js
*
@@ -28,11 +28,11 @@
Drupal.Views.dependent.inArray = function(array, search_term) {
var i = array.length;
if (i > 0) {
- do {
- if (array[i] == search_term) {
- return true;
- }
- } while (i--);
+ do {
+ if (array[i] == search_term) {
+ return true;
+ }
+ } while (i--);
}
return false;
}
@@ -105,7 +105,7 @@
for (i in Drupal.Views.dependent.bindings[bind_id]) {
var id = Drupal.Views.dependent.bindings[bind_id][i];
-
+
// Fix numerous errors
if (typeof id != 'string') {
continue;
Index: sites/all/modules/views/js/tabs.js
===================================================================
--- sites/all/modules/views/js/tabs.js (.../trunk) (revision 1945)
+++ sites/all/modules/views/js/tabs.js (.../branches/drupal6) (revision 1945)
@@ -1,4 +1,4 @@
-// $Id: tabs.js,v 1.3 2008/03/30 15:58:26 merlinofchaos Exp $
+// $Id: tabs.js,v 1.4 2009/06/02 17:12:13 merlinofchaos Exp $
/**
* @file tabs.js
@@ -7,25 +7,25 @@
* This is nothing more than the pure jquery UI tabs implementation.
*/
(function($) {
-
+
// if the UI scope is not availalable, add it
$.ui = $.ui || {};
-
+
$.fn.tabs = function(initial, options) {
if (initial && initial.constructor == Object) { // shift arguments
options = initial;
initial = null;
}
options = options || {};
-
+
// first get initial tab from options
initial = initial && initial.constructor == Number && --initial || 0;
-
+
return this.each(function() {
new $.ui.tabs(this, $.extend(options, { initial: initial }));
});
};
-
+
// chainable tabs methods
$.each(['add', 'remove', 'enable', 'disable', 'click', 'load'], function(i, method) {
$.fn[method + 'Tab'] = function() {
@@ -39,19 +39,19 @@
$.fn.selectedTab = function(returnElement) {
var selected;
if (returnElement) {
-
+
} else {
-
+
}
return selected;
};
$.ui.tabs = function(el, options) {
-
+
this.source = el;
-
+
this.options = $.extend({
-
+
// basic setup
initial: 0,
event: 'click',
@@ -59,12 +59,12 @@
// TODO bookmarkable: $.ajaxHistory ? true : false,
unselected: false,
toggle: options.unselected ? true : false,
-
+
// Ajax
spinner: 'Loading…',
cache: false,
hashPrefix: 'tab-',
-
+
// animations
/*fxFade: null,
fxSlide: null,
@@ -73,7 +73,7 @@
fxSpeed: 'normal',
/*fxShowSpeed: null,
fxHideSpeed: null,*/
-
+
// callbacks
add: function() {},
remove: function() {},
@@ -83,7 +83,7 @@
hide: function() {},
show: function() {},
load: function() {},
-
+
// CSS classes
navClass: 'ui-tabs-nav',
selectedClass: 'ui-tabs-selected',
@@ -91,31 +91,31 @@
containerClass: 'ui-tabs-container',
hideClass: 'ui-tabs-hide',
loadingClass: 'ui-tabs-loading'
-
+
}, options);
-
+
this.tabify(true);
-
+
// save instance for later
var uuid = 'instance-' + $.ui.tabs.prototype.count++;
$.ui.tabs.instances[uuid] = this;
this.source['UI_TABS_UUID'] = uuid;
-
+
};
-
+
// static
$.ui.tabs.instances = {};
-
+
$.extend($.ui.tabs.prototype, {
animating: false,
count: 0,
tabify: function(init) {
-
+
this.$tabs = $('a:first-child', this.source);
this.$containers = $([]);
-
+
var self = this, o = this.options;
-
+
this.$tabs.each(function(i, a) {
// inline tab
if (a.hash && a.hash.replace('#', '')) { // safari 2 reports '#' for an empty hash
@@ -132,9 +132,9 @@
);
}
});
-
+
if (init) {
-
+
// Try to retrieve initial tab from fragment identifier in url if present,
// otherwise try to find selected class attribute on
.
this.$tabs.each(function(i, a) {
@@ -158,14 +158,14 @@
return false; // break
}
});
-
+
// attach necessary classes for styling if not present
$(this.source).is('.' + o.navClass) || $(this.source).addClass(o.navClass);
this.$containers.each(function() {
var $this = $(this);
$this.is('.' + o.containerClass) || $this.addClass(o.containerClass);
});
-
+
// highlight tab accordingly
var $lis = $('li', this.source);
this.$containers.addClass(o.hideClass);
@@ -174,7 +174,7 @@
this.$containers.slice(o.initial, o.initial + 1).show();
$lis.slice(o.initial, o.initial + 1).addClass(o.selectedClass);
}
-
+
// trigger load of initial tab is remote tab
if (this.$tabs[o.initial].url) {
this.load(o.initial + 1, this.$tabs[o.initial].url);
@@ -182,14 +182,14 @@
this.$tabs[o.initial].url = null; // if loaded once do not load them again
}
}
-
+
// disabled tabs
for (var i = 0, position; position = o.disabled[i]; i++) {
this.disable(position);
}
-
+
}
-
+
// setup animations
var showAnim = {}, hideAnim = {}, showSpeed = o.fxShowSpeed || o.fxSpeed,
hideSpeed = o.fxHideSpeed || o.fxSpeed;
@@ -216,10 +216,10 @@
hideSpeed = 1; // as little as 1 is sufficient
}
}
-
+
// callbacks
var click = o.click, hide = o.hide, show = o.show;
-
+
// reset some styles to maintain print style sheets etc.
var resetCSS = { display: '', overflow: '', height: '' };
if (!$.browser.msie) { // not in IE to prevent ClearType font issue
@@ -236,7 +236,7 @@
}
});
}
-
+
// show a tab, animation prevents browser scrolling to fragment
function showTab(clicked, $hide, $show) {
// show next tab
@@ -252,9 +252,9 @@
show(clicked, $show[0], $hide[0]);
self.animating = false;
});
-
+
}
-
+
// switch a tab
function switchTab(clicked, $hide, $show) {
/*if (o.bookmarkable && trueClick) { // add to history only if true click occured, not a triggered click
@@ -264,13 +264,13 @@
.siblings().removeClass(o.selectedClass);
hideTab(clicked, $hide, $show);
}
-
+
// tab click handler
function tabClick(e) {
//var trueClick = e.clientX; // add to history only if true click occured, not a triggered click
var $li = $(this).parents('li:eq(0)'), $hide = self.$containers.filter(':visible'), $show = $(this.hash);
-
+
// if tab may be closed
if (o.toggle && !$li.is('.' + o.disabledClass) && !self.animating) {
if ($li.is('.' + o.selectedClass)) {
@@ -285,7 +285,7 @@
return false;
}
}
-
+
// If tab is already selected or disabled, animation is still running or click callback
// returns false stop here.
// Check if click handler returns false last so that it is not executed for a disabled tab!
@@ -308,7 +308,7 @@
$show.attr('id', showId); // restore id
}, 0);
}*/
-
+
if (this.url) { // remote tab
var a = this;
self.load(self.$tabs.index(this) + 1, this.url, function() {
@@ -336,12 +336,12 @@
//return o.bookmarkable && !!trueClick; // convert trueClick == undefined to Boolean required in IE
return false;
-
+
}
-
+
// attach click event, avoid duplicates from former tabifying
this.$tabs.unbind(o.event, tabClick).bind(o.event, tabClick);
-
+
},
add: function(url, text, position) {
if (url && text) {
@@ -365,7 +365,7 @@
o.add(this.$tabs[position - 1], this.$containers[position - 1]); // callback
} else {
throw Drupal.t('jQuery UI Tabs: Not enough arguments to add tab.');
- }
+ }
},
remove: function(position) {
if (position && position.constructor == Number) {
@@ -404,17 +404,17 @@
$a = this.$tabs.slice(position - 1, position).addClass(o.loadingClass),
$span = $('span', $a),
text = $span.html();
-
+
// shift arguments
if (url && url.constructor == Function) {
callback = url;
}
-
+
// set new URL
if (url) {
$a[0].url = url;
}
-
+
// load
if (o.spinner) {
$span.html('' + o.spinner + '');
@@ -432,7 +432,7 @@
}
o.load(self.$tabs[position - 1], self.$containers[position - 1]); // callback
});
- }, 0);
+ }, 0);
}
});
})(jQuery);
Index: sites/all/modules/views/js/base.js
===================================================================
--- sites/all/modules/views/js/base.js (.../trunk) (revision 1945)
+++ sites/all/modules/views/js/base.js (.../branches/drupal6) (revision 1945)
@@ -1,4 +1,4 @@
-// $Id: base.js,v 1.10 2009/01/27 22:11:26 merlinofchaos Exp $
+// $Id: base.js,v 1.11 2009/06/02 18:45:38 merlinofchaos Exp $
/**
* @file base.js
*
@@ -90,36 +90,34 @@
return returnObj;
};
-/**
- * Strip off the protocol plus domain from an href.
- */
-Drupal.Views.pathPortion = function (href) {
- // Remove e.g. http://example.com if present.
- var protocol = window.location.protocol;
- if (href.substring(0, protocol.length) == protocol) {
- // 2 is the length of the '//' that normally follows the protocol
- href = href.substring(href.indexOf('/', protocol.length + 2));
+/**
+ * Strip off the protocol plus domain from an href.
+ */
+Drupal.Views.pathPortion = function (href) {
+ // Remove e.g. http://example.com if present.
+ var protocol = window.location.protocol;
+ if (href.substring(0, protocol.length) == protocol) {
+ // 2 is the length of the '//' that normally follows the protocol
+ href = href.substring(href.indexOf('/', protocol.length + 2));
}
- return href;
+ return href;
};
-/**
- * Return the Drupal path portion of an href.
- */
-Drupal.Views.getPath = function (href) {
- href = Drupal.Views.pathPortion(href);
+/**
+ * Return the Drupal path portion of an href.
+ */
+Drupal.Views.getPath = function (href) {
+ href = Drupal.Views.pathPortion(href);
href = href.substring(Drupal.settings.basePath.length, href.length);
// 3 is the length of the '?q=' added to the url without clean urls.
if (href.substring(0, 3) == '?q=') {
href = href.substring(3, href.length);
}
- var chars = ['#', '?', '&'];
- for (i in chars) {
- if (href.indexOf(chars[i]) > -1) {
- href = href.substr(0, href.indexOf(chars[i]));
- }
- }
- return href;
+ var chars = ['#', '?', '&'];
+ for (i in chars) {
+ if (href.indexOf(chars[i]) > -1) {
+ href = href.substr(0, href.indexOf(chars[i]));
+ }
+ }
+ return href;
};
-
-
Index: sites/all/modules/views/js/ajax_view.js
===================================================================
--- sites/all/modules/views/js/ajax_view.js (.../trunk) (revision 1945)
+++ sites/all/modules/views/js/ajax_view.js (.../branches/drupal6) (revision 1945)
@@ -1,4 +1,4 @@
-// $Id: ajax_view.js,v 1.17 2009/03/25 00:11:25 merlinofchaos Exp $
+// $Id: ajax_view.js,v 1.18 2009/06/02 19:30:44 merlinofchaos Exp $
/**
* @file ajaxView.js
@@ -107,8 +107,8 @@
var target = this;
$(this)
.addClass('views-processed')
- // Process pager, tablesort, and summary links.
- .find('ul.pager > li > a, th.views-field a, .views-summary a')
+ // Process pager, tablesort, and attachment summary links.
+ .find('ul.pager > li > a, th.views-field a, .attachment .views-summary a')
.each(function () {
var viewData = {};
// Construct an object using the settings defaults and then overriding
Property changes on: sites/all/modules/views
___________________________________________________________________
Modified: svn:mergeinfo
Merged /vendor/drupal/current-patched/sites/all/modules/views:r1782-1817,1932
Merged /vendor/views/current:r1151,1206,1396-1439
Modified: svnmerge-integrated
- /vendor/views/current:1-295,333,408,741,858,877,1151
+ /vendor/views/current:1-1440
Index: sites/all/modules/cvslog/cvs.module
===================================================================
--- sites/all/modules/cvslog/cvs.module (.../trunk) (revision 1945)
+++ sites/all/modules/cvslog/cvs.module (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
array(1),
'type' => MENU_CALLBACK,
);
+ $items['node/%project_node/committers'] = array(
+ 'title' => 'Committers',
+ 'page callback' => 'cvs_project_committers_page',
+ 'page arguments' => array(1),
+ 'type' => MENU_CALLBACK,
+ 'access callback' => 'node_access',
+ 'access arguments' => array('view', 1),
+ );
+ // Redirect from the legacy URL to prevent link rot.
+ $items['project/developers/%project_node'] = array(
+ 'title' => 'Developers',
+ 'page callback' => 'cvs_project_developers_redirect',
+ 'page arguments' => array(2),
+ 'type' => MENU_CALLBACK,
+ 'access callback' => 'node_access',
+ 'access arguments' => array('view', 2),
+ );
return $items;
}
@@ -327,6 +344,9 @@
'cvs_project_access_form' => array(
'arguments' => array('form'),
),
+ 'cvs_project_maintainer_list' => array(
+ 'arguments' => array('node', 'maintainers'),
+ ),
);
}
@@ -522,7 +542,7 @@
db_query("UPDATE {cvs_files} SET nid = %d WHERE rid = %d AND file LIKE '%s%%'", $node->nid, $node->cvs['repository'], $node->cvs['directory']);
break;
case 'validate':
- if ($node->title) {
+ if (strlen($node->title) > 0) {
$admin = user_access('administer projects');
$project = !empty($node->nid) ? node_load($node->nid) : NULL;
if (!empty($node->cvs['repository']) && !db_result(db_query('SELECT rid FROM {cvs_repositories} WHERE rid = %d', $node->cvs['repository']))) {
@@ -1096,9 +1116,7 @@
if (!user_access('administer projects')) {
// A non-admin editing a HEAD node. Search for another tag (if
// any) that matches the current version info for this release.
- // TODO: Broken because you can't use a $release as a $version after
- // $node namespace...
- $tag = cvs_get_tag_from_version($release, $project);
+ $tag = cvs_get_tag_from_version((object)$release->project_release, $project);
$head_where = " AND c.tag = '%s'";
$args[] = $tag;
}
@@ -1224,22 +1242,94 @@
}
}
-/** Implementation of hook_block().
- *
+/**
+ * Implementation of hook_block().
*/
-function cvs_block($op = 'list', $delta = 0) {
+function cvs_block($op = 'list', $delta = 0, $edit = array()) {
if ($op == 'list') {
- $blocks[0]['info'] = t('Most active developers');
- $blocks[0]['cache'] = BLOCK_CACHE_GLOBAL;
- $blocks[1]['info'] = t('Most active projects');
- $blocks[1]['cache'] = BLOCK_CACHE_GLOBAL;
- return $blocks;
+ return cvs_block_list();
}
+ else if ($op == 'configure') {
+ return cvs_block_configure($delta);
+ }
+ else if ($op == 'save') {
+ return cvs_block_save($delta, $edit);
+ }
else if ($op == 'view') {
- $interval = 7 * 24 * 60 * 60;
- $length = 15;
+ return cvs_block_view($delta);
+ }
+}
- if ($delta == 0) {
+/**
+ * Implementation of hook_block() for the 'list' operation.
+ */
+function cvs_block_list() {
+ $blocks['cvs_site_active_developers'] = array(
+ 'info' => t('CVS: Most active developers'),
+ 'cache' => BLOCK_CACHE_GLOBAL,
+ );
+ $blocks['cvs_site_active_projects'] = array(
+ 'info' => t('CVS: Most active projects'),
+ 'cache' => BLOCK_CACHE_GLOBAL,
+ );
+ // We roll our own caching for this block, since the existing block cache is
+ // cleared on every comment or node added on the site, which isn't at all
+ // what we need for this. There are expensive queries for this block, and
+ // it only changes when a commit is made to a given project.
+ $blocks['cvs_project_maintainers'] = array(
+ 'info' => t('CVS: Project maintainers'),
+ 'cache' => BLOCK_NO_CACHE,
+ );
+ return $blocks;
+}
+
+/**
+ * Implementation of hook_block() for the 'configure' operation.
+ */
+function cvs_block_configure($delta) {
+ $form = array();
+ switch ($delta) {
+ case 'cvs_project_maintainers':
+ for ($i=1; $i<=10; $i++) {
+ $options[$i] = $i;
+ }
+ $options['all'] = t('All committers');
+ $form['cvs_project_maintainers_block_length'] = array(
+ '#type' => 'select',
+ '#options' => $options,
+ '#title' => t('Number of maintainers to display'),
+ '#default_value' => variable_get('cvs_project_maintainers_block_length', 5),
+ );
+ break;
+ }
+ return $form;
+}
+
+/**
+ * Implementation of hook_block() for the 'save' operation.
+ */
+function cvs_block_save($delta, $edit) {
+ switch ($delta) {
+ case 'cvs_project_maintainers':
+ variable_set('cvs_project_maintainers_block_length', $edit['cvs_project_maintainers_block_length']);
+ // No longer technically necessary, since we cache the array of
+ // maintainer info, not the rendered block itself, but it doesn't hurt
+ // to leave this in here as an easy way to clear the cache from the
+ // admin UI.
+ db_query("DELETE FROM {cvs_cache_block}");
+ break;
+ }
+}
+
+/**
+ * Implementation of hook_block() for the 'view' operation.
+ */
+function cvs_block_view($delta) {
+ $interval = 7 * 24 * 60 * 60;
+ $length = 15;
+ $block = array();
+ switch ($delta) {
+ case 'cvs_site_active_developers':
$result = db_query_range("SELECT COUNT(m.cid) AS count, m.uid, u.name FROM {cvs_messages} m INNER JOIN {users} u ON m.uid = u.uid AND m.uid != 0 AND m.created > %d GROUP BY m.uid ORDER BY count DESC", time() - $interval, 0, $length);
while ($account = db_fetch_object($result)) {
$accounts[] = '
'. theme('username', $account) .'
';
@@ -1247,10 +1337,10 @@
if ($accounts) {
$block['subject'] = t('Most active developers');
$block['content'] = '
'. implode($accounts) .'
';
- return $block;
}
- }
- else if ($delta == 1) {
+ break;
+
+ case 'cvs_site_active_projects':
$result = db_query_range("SELECT COUNT(m.cid) AS count, n.nid, n.title FROM {cvs_files} f INNER JOIN {cvs_messages} m ON f.cid = m.cid INNER JOIN {node} n ON f.nid = n.nid AND n.status = 1 AND m.created > %d GROUP BY n.nid ORDER BY count DESC", time() - $interval, 0, $length);
while ($project = db_fetch_object($result)) {
$projects[] = '
'. l($project->title, 'node/'. $project->nid) .'
';
@@ -1258,10 +1348,49 @@
if ($projects) {
$block['subject'] = t('Most active projects');
$block['content'] = '
';
+ $output .= l('View all committers', 'node/'. $node->nid .'/committers');
+ return $output;
}
function _cvs_date($timestamp) {
@@ -1273,6 +1402,26 @@
}
}
+function _cvs_block_cache_get($cid) {
+ $data = db_result(db_query("SELECT data FROM {cvs_cache_block} WHERE cid = '%s'", $cid));
+ if (!empty($data)) {
+ return unserialize($data);
+ }
+}
+
+function _cvs_block_cache_set($cid, $data) {
+ if (empty($data)) {
+ db_query("DELETE FROM {cvs_cache_block} WHERE cid = '%s'", $cid);
+ }
+ else {
+ $serialized = serialize($data);
+ db_query("UPDATE {cvs_cache_block} SET data = '%s' WHERE cid = '%s'", $serialized, $cid);
+ if (!db_affected_rows()) {
+ db_query("INSERT INTO {cvs_cache_block} (cid, data) VALUES ('%s', '%s')", $cid, $serialized);
+ }
+ }
+}
+
function theme_cvs_commit_message($commit) {
$repositories = cvs_get_repository_info();
$trackerurl = $repositories[$commit->rid]->trackerurl;
@@ -1433,7 +1582,7 @@
$query[] = "$key=$value";
}
- $output .= theme('feed_icon', url('cvs', array('query' => implode('&', $query))), $feed_title);
+ drupal_add_feed(url('cvs', array('query' => implode('&', $query))), $feed_title);
}
}
@@ -1500,27 +1649,89 @@
}
/**
- * Print a list of contributors for the specified project.
+ * Return a list of users who committed to the specified project.
+ *
+ * @param $nid
+ * Project node ID to get committers for.
+ * @param $sort
+ * Optional ORDER BY clause to use for the list of committers. Defaults to
+ * sorting by the most recent commit.
+ * @param $only_maintainers
+ * Optional boolean to indicate if the list should only include users that
+ * currently have CVS access to the project. Defaults to TRUE.
+ *
+ * @return
+ * Array containing objects of committer information, keyed by uid.
*/
-function cvs_get_project_contributors($nid) {
+function cvs_get_project_committers($nid, $order = '', $only_maintainers = TRUE) {
+ if (empty($order)) {
+ $order = ' ORDER BY last_commit DESC';
+ }
+ $result = db_query("SELECT f.uid, u.name, MIN(m.created) AS first_commit, MAX(m.created) AS last_commit, COUNT(f.cid) AS commits FROM {cvs_files} f INNER JOIN {cvs_messages} m ON m.cid = f.cid INNER JOIN {users} u ON f.uid = u.uid WHERE f.uid != %d AND f.nid = %d GROUP BY f.nid, f.uid $order", 0, $nid);
+ $committers = array();
+ while ($committer = db_fetch_object($result)) {
+ $committers[$committer->uid] = $committer;
+ }
+ if ($only_maintainers) {
+ return array_intersect_key($committers, cvs_get_project_maintainers($nid));
+ }
+ return $committers;
+}
- $header = array(
+/**
+ * Return an array of users with CVS access to the given project.
+ *
+ * @param $nid
+ * Node ID of the project to find maintainers for.
+ *
+ * @return
+ * Array of usernames with CVS access to the project, keyed by uids.
+ */
+function cvs_get_project_maintainers($nid) {
+ $maintainers = array();
+ $project = node_load($nid);
+ if (!empty($project->cvs['repository'])) {
+ // The project owner always has commit access.
+ $maintainers = array($project->uid => $project->name);
+ $result = db_query("SELECT cpm.uid, u.name FROM {cvs_project_maintainers} cpm INNER JOIN {users} u ON cpm.uid = u.uid WHERE cpm.nid = %d", $project->nid);
+ while ($row = db_fetch_object($result)) {
+ $maintainers[$row->uid] = $row->name;
+ }
+ }
+ return $maintainers;
+}
+
+/**
+ * Page callback to redirect to the committers page to avoid link rot.
+ */
+function cvs_project_developers_redirect($project) {
+ drupal_goto('node/'. $project->nid .'/committers');
+}
+
+/**
+ * Page callback to display all committers for a given project.
+ */
+function cvs_project_committers_page($project) {
+ drupal_set_title(t('Committers for %name', array('%name' => $project->title)));
+ project_project_set_breadcrumb($project, TRUE);
+ $header = array(
array('data' => t('User'), 'field' => 'u.name'),
array('data' => t('Last commit'), 'field' => 'last_commit', 'sort' => 'desc'),
array('data' => t('First commit'), 'field' => 'first_commit'),
- array('data' => t('Commits'), 'field' => 'commits'));
-
- $result = db_query("SELECT f.uid, u.name, MIN(m.created) AS first_commit, MAX(m.created) AS last_commit, COUNT(f.cid) AS commits FROM {cvs_files} f INNER JOIN {cvs_messages} m ON m.cid = f.cid INNER JOIN {users} u ON f.uid = u.uid WHERE f.uid != %d AND f.nid = %d GROUP BY f.nid, f.uid". tablesort_sql($header), 0, $nid);
+ array('data' => t('Commits'), 'field' => 'commits'),
+ );
+ // Use FALSE for the 3rd argument to get all committers, not just the users
+ // that currently have commit access.
+ $committers = cvs_get_project_committers($project->nid, tablesort_sql($header), FALSE);
$rows = array();
- while ($contributor = db_fetch_object($result)) {
+ foreach ($committers as $committer) {
$rows[] = array(
- theme('username', $contributor),
- t('!time ago', array('!time' => format_interval(time() - $contributor->last_commit, 1))),
- t('!time ago', array('!time' => format_interval(time() - $contributor->first_commit, 1))),
- format_plural($contributor->commits, '1 commit', '@count commits')
+ theme('username', $committer),
+ t('!time ago', array('!time' => format_interval(time() - $committer->last_commit, 1))),
+ t('!time ago', array('!time' => format_interval(time() - $committer->first_commit, 1))),
+ format_plural($committer->commits, '1 commit', '@count commits')
);
}
-
return theme('table', $header, $rows);
}
@@ -2698,13 +2909,7 @@
// maintainer of the current project and thus we can skip the next, more
// expensive query.
if (project_use_cvs($project) && db_result(db_query("SELECT COUNT(*) FROM {cvs_accounts} WHERE uid = %d AND status = %d", $user->uid, CVS_APPROVED))) {
- // Make an array with all maintainers of the current project.
- $result = db_query("SELECT cpm.uid, u.name FROM {cvs_project_maintainers} cpm INNER JOIN {users} u ON cpm.uid = u.uid WHERE cpm.nid = %d", $project->nid);
- $maintainers = array($project->uid => $project->name);
- while ($row = db_fetch_object($result)) {
- $maintainers[$row->uid] = $row->name;
- }
-
+ $maintainers = cvs_get_project_maintainers($project->nid);
// Determine if the current user is one of the maintainers of the project.
if (isset($maintainers[$user->uid])) {
// Add any maintainers of this project who are not already in the
@@ -2847,3 +3052,33 @@
return $strings;
}
+
+/**
+ * Return total number of approved CVS accounts.
+ */
+function cvs_get_total_accounts() {
+ return db_result(db_query('SELECT count(*) FROM {cvs_accounts} WHERE status = %d', CVS_APPROVED));
+}
+
+/**
+ * Return total number of CVS commits in a given interval.
+ *
+ * @param $rid
+ * Optional repository identifier.
+ * @param $interval
+ * Optional interval in seconds, defaults to 30 days.
+ *
+ * @return
+ * Total number of commits for the requested repository (or site-wide) in
+ * the specified time interval.
+ *
+ */
+function cvs_get_total_commits($rid = NULL, $interval = -1) {
+ if ($interval < 0) {
+ // Default to 30 days if not specified.
+ $interval = 60 * 60 * 24 * 30;
+ }
+ $where = isset($rid) ? ' AND rid = %d' : '';
+ return db_result(db_query('SELECT count(*) FROM {cvs_messages} WHERE created > %d'. $where, time() - $interval, $rid));
+}
+
Index: sites/all/modules/cvslog/cvs.install
===================================================================
--- sites/all/modules/cvslog/cvs.install (.../trunk) (revision 1945)
+++ sites/all/modules/cvslog/cvs.install (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
t('Cache for CVS-specific blocks that cannot rely on the normal block cache.'),
+ 'fields' => array(
+ 'cid' => array(
+ 'description' => 'Primary Key: Unique cache ID.',
+ 'type' => 'varchar',
+ 'length' => 255,
+ 'not null' => TRUE,
+ 'default' => '',
+ ),
+ 'data' => array(
+ 'description' => 'A collection of data to cache.',
+ 'type' => 'blob',
+ 'not null' => FALSE,
+ 'size' => 'big',
+ ),
+ ),
+ 'primary key' => array('cid'),
+ );
+
return $schema;
}
@@ -385,6 +405,7 @@
'cvs_message_new_release_branch',
'cvs_message_new_release_tag',
'cvs_pager',
+ 'cvs_project_maintainers_block_length',
);
$query = db_query("SELECT name FROM {variable} WHERE name LIKE 'cvs_directory_tid_%'");
while ($var = db_fetch_object($query)) {
@@ -408,3 +429,38 @@
return $ret;
}
+/**
+ * Fix deltas for CVS blocks.
+ */
+function cvs_update_6001() {
+ $ret = array();
+ $ret[] = update_sql("UPDATE {blocks} SET delta = 'cvs_site_active_developers' WHERE delta = '0' AND module = 'cvs'");
+ $ret[] = update_sql("UPDATE {blocks} SET delta = 'cvs_site_active_projects' WHERE delta = '1' AND module = 'cvs'");
+ return $ret;
+}
+
+/**
+ * Add the {cvs_cache_block} table for the CVS maintainers block.
+ */
+function cvs_update_6002() {
+ $ret = array();
+ $table = array(
+ 'fields' => array(
+ 'cid' => array(
+ 'type' => 'varchar',
+ 'length' => 255,
+ 'not null' => TRUE,
+ 'default' => '',
+ ),
+ 'data' => array(
+ 'type' => 'blob',
+ 'not null' => FALSE,
+ 'size' => 'big',
+ ),
+ ),
+ 'primary key' => array('cid'),
+ );
+ db_create_table($ret, 'cvs_cache_block', $table);
+ return $ret;
+}
+
Index: sites/all/modules/cvslog/xcvs/xcvs-loginfo.php
===================================================================
--- sites/all/modules/cvslog/xcvs/xcvs-loginfo.php (.../trunk) (revision 1945)
+++ sites/all/modules/cvslog/xcvs/xcvs-loginfo.php (.../branches/drupal6) (revision 1945)
@@ -1,7 +1,7 @@
#!/usr/bin/php
nid != 3060) {
// For contrib, we have to prepend the Drupal core compatibility.
- $vid = _project_release_get_api_vid();
- foreach ($version->taxonomy as $term) {
- if ($term->vid == $vid) {
- $api = preg_replace(array('/\.x/', '/\./'), array('', '-'), $term->name);
- break;
- }
+ if (!empty($version->version_api_tid)) {
+ $term = taxonomy_get_term($version->version_api_tid);
+ $api = preg_replace(array('/\.x/', '/\./'), array('', '-'), $term->name);
+ $tag .= $api;
}
- $tag .= $api;
if ($is_branch && $api < 6 && $version->version_major == 1) {
// Evil special-case, we're done.
return $tag;
Property changes on: sites/all/modules/cvslog
___________________________________________________________________
Modified: svn:mergeinfo
Merged /vendor/cvslog/current:r1306,1343,1568,1798
Modified: svnmerge-integrated
- /vendor/cvslog/current:1-243,271,312,326,422,480,729,850,895,910
+ /vendor/cvslog/current:1-1799
Index: sites/all/modules/drupalorg/project_xmlrpc_legacy/project_xmlrpc_legacy.module
===================================================================
--- sites/all/modules/drupalorg/project_xmlrpc_legacy/project_xmlrpc_legacy.module (.../trunk) (revision 1945)
+++ sites/all/modules/drupalorg/project_xmlrpc_legacy/project_xmlrpc_legacy.module (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
'',
'version_patch' => 3,
'version_extra' => '',
- 'link' => url("http://drupal.org/project/update_status", NULL, NULL, TRUE),
- 'release' => url("http://drupal.org/node/295470", NULL, NULL, TRUE),
+ 'link' => url('http://drupal.org/project/update_status', array('absolute' => TRUE)),
+ 'release' => url('http://drupal.org/node/295470', array('absolute' => TRUE)),
'download' => theme('project_release_download_link', 'files/projects/update_status-5.x-2.3.tar.gz', NULL, 'url'),
'date' => 1218740721,
'md5hash' => '0f9602dad6879af88dc9d86f06ab5149',
Index: sites/all/modules/drupalorg/project_xmlrpc_legacy/project_xmlrpc_legacy.info
===================================================================
--- sites/all/modules/drupalorg/project_xmlrpc_legacy/project_xmlrpc_legacy.info (.../trunk) (revision 1945)
+++ sites/all/modules/drupalorg/project_xmlrpc_legacy/project_xmlrpc_legacy.info (.../branches/drupal6) (revision 1945)
@@ -6,8 +6,9 @@
dependencies[] = project_release
core = 6.x
-; Information added by d.o-cvs-to-svn export/import script on 2009-04-10
-version = "HEAD"
+; Information added by d.o-cvs-to-svn export/import script on 2009-09-23
+version = "6.x-1.x-dev"
+core = "6.x"
project = "drupalorg"
-datestamp = "1239387063"
+datestamp = "1253720098"
Index: sites/all/modules/drupalorg/drupalorg.module
===================================================================
--- sites/all/modules/drupalorg/drupalorg.module (.../trunk) (revision 0)
+++ sites/all/modules/drupalorg/drupalorg.module (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,700 @@
+ 'Aggregator cron run',
+ 'page callback' => 'aggregator_not_cron',
+ 'access callback' => 'drupalorg_is_cli',
+ 'type' => MENU_CALLBACK,
+ );
+
+ // Override this special case to prevent manually creating
+ // project issue nodes for the cvsapplications project.
+ $items['node/add/project-issue/cvsapplications'] = array(
+ 'title' => '',
+ 'page callback' => '_drupalorg_node_add_project_issue_cvsapplications',
+ 'access callback' => 'node_access',
+ 'access arguments' => array('create', 'project_issue'),
+ 'type' => MENU_CALLBACK,
+ );
+
+ return $items;
+}
+
+function drupalorg_is_cli() {
+ return $_SERVER['SERVER_SOFTWARE'] === 'PHP CLI';
+}
+
+/**
+ * Implementation of hook_help().
+ */
+function drupalorg_help($path, $arg) {
+ switch ($path) {
+ case 'project/usage':
+ case 'project/usage/%':
+ return '
'. t('These statistics are incomplete; only Drupal websites using the Update Status module are included in the data. As this module is now included with the download of Drupal since version 6.x, the data is heavily biased toward newer sites. Read more information about how these statistics are calculated.', array('!update_status_url' => url('project/update_status'), '!usage_description_url' => url('node/329620'))) .'
';
+ }
+
+ if ($arg[0] == 'project' && strtolower($arg[1]) == 'modules') {
+ return t('You can also view an alphabetical list of projects that includes all projects but only their names.', array('@list_url' => url('node/206666')));
+ }
+ if ($arg[0] == 'project' && $arg[1] == 'issues-term' && $arg[2] == '346') {
+ return '
'. t('A more detailed overview of the issues can be seen in the Community Initiatives handbook section titled Upgrade Drupal.org from Drupal 5 to 6.') .'
';
+ }
+}
+
+/**
+ * Implementation of hook_cron().
+ */
+function drupalorg_cron() {
+ drupalorg_issue_counts();
+}
+
+// == Issue counter ============================================================
+
+/**
+ * Pulls issue counts for various issue queues on drupal.org.
+ *
+ * Summarize issue counts for different types of issues for ISSUE_RIDS releases.
+ */
+function drupalorg_issue_counts() {
+ $issue_counts['Pending bugs'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND pid = 3060 AND category = 'bug' AND sid = 1 AND priority IN (1,2) AND rid IN (". ISSUE_RIDS .")"));
+ $issue_counts['Critical issues'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND pid = 3060 AND category IN ('bug', 'task') AND sid IN (1,8,13,14) AND priority = 1 AND rid IN (". ISSUE_RIDS .")"));
+ $issue_counts['Patch queue'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND pid = 3060 AND sid IN (8,13,14) AND rid IN (". ISSUE_RIDS .")"));
+ $issue_counts['Patches to review'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND pid = 3060 AND sid IN (8) AND rid IN (". ISSUE_RIDS .")"));
+ variable_set('drupalorg_issue_counts', $issue_counts);
+}
+
+// == Altering of various forms ================================================
+
+/**
+ * Implementation of hook_form_alter().
+ */
+function drupalorg_form_alter(&$form, $form_state, $form_id) {
+ // List of forms to check for overrides, and the corresponding permissions.
+ $override_forms = array(
+ 'book_node_form' => 'revert revisions',
+ 'forum_node_form' => 'administer nodes',
+ 'page_node_form' => 'administer nodes',
+ 'simplenews_node_form' => 'create newsletter',
+ 'story_node_form' => 'administer nodes',
+ );
+ // Override the access for attachments if it's a forbidden form,
+ // and the user does not have sufficient permissions.
+ if (in_array($form_id, array_keys($override_forms)) && !user_access($override_forms[$form_id])) {
+ if (isset($form['attachments']['#access'])) {
+ $form['attachments']['#access'] = FALSE;
+ }
+ }
+
+ // Add a description for the Priority and Status values.
+ if ($form_id == 'project_issue_node_form' || $form_id == 'comment_form' && !empty($form['original_issue']['issue_info'])) {
+ $priority_status_description = array(
+ // The "standard" class adds a clear so the description is positioned
+ // below the floated pull-downs. "fieldset-description" is from
+ // bluebeach to make the font size smaller.
+ '#prefix' => '
',
+ '#value' => t('Descriptions of the Priority and Status values can be found in the Issue queue handbook.', array('!priority_url' => '/node/45111', '!status_url' => '/node/156119', '!issue_queue_url' => '/node/317')),
+ '#suffix' => '
',
+ );
+ }
+
+ // Make the "Issue tags" vocabulary not so prominent on issue nodes.
+ if ($form_id == 'project_issue_node_form' ||
+ ($form_id == 'comment_form' && !empty($form['original_issue']['issue_info']))) {
+ $form['taxonomy']['#type'] = 'fieldset';
+ $form['taxonomy']['#title'] = t('Tags');
+ $form['taxonomy']['#collapsible'] = TRUE;
+ $form['taxonomy']['#collapsed'] = TRUE;
+ // We want this fieldset at the very bottom, just above the buttons, but
+ // we need different weights for that depending on if it's a new issue or
+ // a follow-up comment.
+ if ($form_id == 'project_issue_node_form') {
+ $form['taxonomy']['#weight'] = 35;
+ $form['issue_info']['description'] = $priority_status_description;
+ }
+ else {
+ $form['taxonomy']['#weight'] = 4;
+ $form['original_issue']['issue_info']['description'] = $priority_status_description;
+ }
+
+ // Prefill values from $_GET.
+ if (isset($_GET['version'])) {
+ $form['project_info']['rid']['#default_value'] = $_GET['version'];
+ }
+ if (isset($_GET['component'])) {
+ $form['project_info']['component']['#default_value'] = $_GET['component'];
+ }
+ if (isset($_GET['categories'])) {
+ $form['issue_info']['category']['#default_value'] = $_GET['categories'];
+ }
+ if (isset($_GET['priorities'])) {
+ $form['issue_info']['priority']['#default_value'] = $_GET['priorities'];
+ }
+ if (isset($_GET['assigned'])) {
+ $form['issue_info']['assigned']['#default_value'] = $_GET['assigned'];
+ }
+ if (isset($_GET['status'])) {
+ $form['issue_info']['sid']['#default_value'] = $_GET['status'];
+ }
+ if (isset($_GET['title'])) {
+ $form['issue_details']['title']['#default_value'] = $_GET['title'];
+ }
+ if (isset($_GET['body'])) {
+ $form['issue_details']['body']['#default_value'] = $_GET['body'];
+ }
+ if (isset($_GET['tags'])) {
+ $form['taxonomy']['#collapsed'] = FALSE;
+ $form['taxonomy']['tags'][reset(array_keys($form['taxonomy']['tags']))]['#default_value'] = $_GET['tags'];
+ }
+ }
+
+ // Add security update related checks to release forms.
+ if ($form_id == 'project_release_node_form') {
+ drupalorg_project_release_node_form_alter($form, $form_state);
+ }
+
+ // Add CVS maintainer newsletter signup to users when getting a CVS account.
+ if ($form_id == 'cvs_user_edit_form') {
+ $form['#submit'][] = 'drupalorg_cvs_user_edit_submit';
+ }
+
+ // Deprecate the "license" field, as it must always be GPLv2+ anyway.
+ if ($form_id == 'project_project_node_form') {
+ if (! $form['project']['license']['#default_value']) {
+ $form['project']['license'] = array(
+ '#type' => 'item',
+ '#title' => $form['project']['license']['#title'],
+ '#value' => t('@link_name', array(
+ '@link_url' => CVS_LICENSE_LINK,
+ '@link_name' => CVS_LICENSE,
+ )),
+ );
+ }
+ }
+
+ // Core search index is not used, so clear off wipe option.
+ if ($form_id == 'search_admin_settings') {
+ unset($form['status']['wipe']);
+ }
+
+ // Ensure that wildcard email addresses are not abused.
+ if ($form_id == 'user_register') {
+ $form['#validate'][] = 'drupalorg_register_mail_validate';
+ }
+
+ // Add home page option to user access rule adding and editing.
+ // Make sure if we edit a homepage option, we keep using that as a default.
+ if ($form_id == 'user_admin_access_add_form' || $form_id == 'user_admin_access_edit_form') {
+ if ($form['#parameters'][2]['type'] == 'homepage') {
+ $form['type']['#default_value'] = 'homepage';
+ }
+ $form['type']['#options']['homepage'] = t('Homepage');
+ }
+
+ // Ensure nice Drupal home page addresses
+ if ($form_id == 'user_profile_form') {
+ $form['#validate'][] = 'drupalorg_profile_user_edit_validate';
+ // Hack to make the language list a multiselect field (there is no UI
+ // for this in profile module). We need to hack around that profile only
+ // ever stores select field values as strings, so we need to explode what
+ // was in there for our multiselect form.
+ if (isset($form['Personal information']['profile_languages'])) {
+ $form['Personal information']['profile_languages']['#multiple'] = TRUE;
+ $form['Personal information']['profile_languages']['#default_value'] = explode('; ', $form['Personal information']['profile_languages']['#default_value']);
+ $form['#submit'] = array_merge(array('drupalorg_profile_fix_languages'), $form['#submit']);
+ }
+ }
+
+ // Book node form modifications.
+ if ($form_id == 'book_node_form') {
+ // Force a revision log entry when editing existing book nodes.
+ if (isset($form['revision_information']['log']) && arg(1) != 'add') {
+ $form['revision_information']['log']['#required'] = TRUE;
+ $form['revision_information']['#collapsed'] = FALSE;
+ }
+
+ // Remove the IA vocabs from handbooks other than the Theming Guide.
+ if ($form['#node']->book['bid'] != 338057) {
+ $form['taxonomy'][40]['#access'] = FALSE;
+ $form['taxonomy']['tags'][42]['#access'] = FALSE;
+ }
+ else {
+ // Add a note for the IA stuff.
+ $form['taxonomy']['#description'] = t('The Theming guide has some additional vocabularies not found on other handbook pages,information type and subject matter, which are being used to assist our IA project. For more information on how to properly use these two vocabularies, please refer to the !guidelines.', array('!guidelines' => l('guidelines', 'node/548322')));
+ }
+ }
+
+ // Remove the news vocabulary on forum forms, if the user is not an admin.
+ // Used to mark news forum topics with tags.
+ if ($form_id == 'forum_node_form') {
+ $form['taxonomy'][DRUPALORG_NEWS_VID]['#access'] = user_access('administer nodes');
+ }
+
+ // Add extra choices to the dblog settings selector
+ if ($form_id == 'dblog_admin_settings') {
+ $form['dblog_row_limit']['#options'] = drupal_map_assoc(array(100, 1000, 10000, 100000, 250000, 500000, 1000000));
+ }
+
+ // Hook into the CVS application form submit handler.
+ if ($form_id == 'cvs_application_form') {
+ $form['#submit'] = array_merge(
+ array('drupalorg_cvs_app_submit'),
+ $form['#submit']
+ );
+ }
+}
+
+// == Security release restrictions ============================================
+
+/**
+ * Alter release node forms properly for security updates.
+ *
+ * Ensure that only privileged users can modify a security release tag and when
+ * people add this tag, they get to know about the process.
+ */
+function drupalorg_project_release_node_form_alter(&$form, $form_state) {
+ if (!empty($form['taxonomy'])) {
+ $vid = drupalorg_get_release_type_vid();
+ $security_tid = drupalorg_get_security_update_tid();
+ if (!empty($form['taxonomy'][$vid])) {
+ $form['taxonomy'][$vid]['#weight'] = 10;
+ if (empty($form['nid']['#value'])) {
+ // Adding a new release.
+ if (!empty($form['project_release']['rebuild']['#value'])) {
+ // This is a -dev, don't let anyone mark it a security update.
+ _drupalorg_remove_security_update($form);
+ }
+ else {
+ // Regular release
+ $form['taxonomy'][$vid]['#description'] = t('What is a release type?', array('@handbook_url' => DRUPALORG_RELEASE_TYPE_HANDBOOK_URL));
+ // Add wrapper div for js/drupal.release.node.js
+ $form['taxonomy'][$vid]['#prefix'] = '
';
+ $form['taxonomy'][$vid]['#suffix'] = '
';
+ $form['#validate'][] = 'drupalorg_security_release_form_validate';
+ $confirm_class = 'security-update-confirm';
+ // Hide the confirmation checkbox on page load unless 'Security
+ // update' is already selected.
+ if (empty($form_state['values']['taxonomy'][$vid]) || (array_search($security_tid, $form_state['values']['taxonomy'][$vid]) === FALSE)) {
+ $confirm_class .= ' js-hide';
+ }
+ $form['security_update_confirm'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Are you sure you want to mark this release as a Security update?', array('@security_update_url' => DRUPALORG_SECURITY_UPDATE_HANDBOOK_URL)),
+ '#prefix' => '
',
+ '#suffix' => '
',
+ '#weight' => -2,
+ '#description' => t('If you select %security_update, your release will not be published without the manual intervention of the Drupal Security Team. You should have already contacted the Security Team to coordinate a security advisory (SA) for your release before you committed any security-related patches.', array('%security_update' => t('Security update'), '@security_url' => DRUPALORG_SECURITY_TEAM_URL, '@contact_url' => DRUPALORG_SECURITY_CONTACT_URL)),
+ '#default_value' => !empty($form_state['values']['security_update_confirm']),
+ );
+ $drupalorg_path = drupal_get_path('module', 'drupalorg');
+ drupal_add_js($drupalorg_path .'/js/drupalorg.release_node.js');
+ drupal_add_css($drupalorg_path .'/drupalorg.css');
+ }
+ }
+ else {
+ // Editing an existing release.
+ if (array_search($security_tid, $form['taxonomy'][$vid]['#default_value']) !== FALSE) {
+ // If this release is already marked as a Security update, don't
+ // let regular users change it any futher.
+ if (!user_access('administer projects')) {
+ $form['taxonomy'][$vid]['#disabled'] = TRUE;
+ $form['taxonomy'][$vid]['#value'] = $form['taxonomy'][$vid]['#default_value'];
+ }
+ $form['taxonomy'][$vid]['#description'] = t('What is a release type? Since this release is already marked as a %security_update, you can no longer change the release type. If you believe you need to do so for some reason, you should contact the Drupal Security Team.', array('@handbook_url' => DRUPALORG_RELEASE_TYPE_HANDBOOK_URL, '%security_update' => t('Security update'), '@security_url' => DRUPALORG_SECURITY_TEAM_URL, '@contact_url' => DRUPALORG_SECURITY_CONTACT_URL));
+ }
+ else {
+ // Not a Security update, remove that option entirely if this is
+ // either a -dev snapshot or a non-admin user.
+ if (!empty($form['#node']->rebuild) || !user_access('administer projects')) {
+ _drupalorg_remove_security_update($form);
+ }
+ $form['taxonomy'][$vid]['#description'] = t('What is a release type?', array('@handbook_url' => DRUPALORG_RELEASE_TYPE_HANDBOOK_URL));
+ }
+ }
+ }
+ }
+}
+
+/**
+ * Utility function to remove the security update term on node forms.
+ */
+function _drupalorg_remove_security_update(&$form) {
+ $vid = drupalorg_get_release_type_vid();
+ $security_tid = drupalorg_get_security_update_tid();
+ foreach ($form['taxonomy'][$vid]['#options'] as $i => $option) {
+ if (!empty($option->option)) {
+ $tid = key($option->option);
+ if ($tid == $security_tid) {
+ unset($form['taxonomy'][$vid]['#options'][$i]);
+ return;
+ }
+ }
+ }
+}
+
+/**
+ * Set the project_release_type_vid Drupal variable and return its value.
+ */
+function drupalorg_get_release_type_vid() {
+ static $vid = 0;
+ if (empty($vid)) {
+ $vid = variable_get('project_release_type_vid', 0);
+ if (empty($vid)) {
+ $vid = db_result(db_query("SELECT v.vid FROM {vocabulary} v INNER JOIN {vocabulary_node_types} n ON v.vid = n.vid WHERE n.type = 'project_release' AND v.name = 'Release type'"));
+ variable_set('project_release_type_vid', $vid);
+ }
+ }
+ return $vid;
+}
+
+/**
+ * Set the project_release_type_security_update_tid Drupal variable and return its value.
+ */
+function drupalorg_get_security_update_tid() {
+ static $tid = 0;
+ if (empty($tid)) {
+ $tid = variable_get('project_release_type_security_update_tid', 0);
+ if (empty($tid)) {
+ $tid = db_result(db_query("SELECT tid FROM {term_data} WHERE vid = %d AND name = '%s'", drupalorg_get_release_type_vid(), 'Security update'));
+ variable_set('project_release_type_security_update_tid', $tid);
+ }
+ }
+ return $tid;
+}
+
+/**
+ * Form validation function for security release tag check.
+ */
+function drupalorg_security_release_form_validate($form, &$form_state) {
+ $vid = drupalorg_get_release_type_vid();
+ $security_tid = drupalorg_get_security_update_tid();
+ if (!empty($form_state['values']['taxonomy'][$vid][$security_tid]) && empty($form_state['values']['security_update_confirm'])) {
+ // Ensure the user confirms that this release should be marked security.
+ form_set_error('security_update_confirm', t('You must confirm you want this release to be a Security update', array('@security_update_url' => DRUPALORG_SECURITY_UPDATE_HANDBOOK_URL)));
+ }
+}
+
+// == CVS maintainer housekeeping ==============================================
+
+/**
+ * Add the user to the CVS maintainer role, when she gets an account.
+ */
+function drupalorg_cvs_user_edit_submit($form, &$form_state) {
+ global $language;
+
+ if (isset($form_state['values']['cvs_status'])) {
+ $account = user_load(array('uid' => $form_state['values']['cvs_uid']));
+ switch ($form_state['values']['cvs_status']) {
+ case CVS_APPROVED:
+ db_query('INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)', $form_state['values']['cvs_uid'], DRUPALORG_CVS_USER_ROLE);
+ break;
+ case CVS_DISABLED:
+ db_query('DELETE FROM {users_roles} WHERE uid = %d AND rid = %d', $form_state['values']['cvs_uid'], DRUPALORG_CVS_USER_ROLE);
+ break;
+ }
+ // Clear cache for this user, so that the user will see new functionality.
+ cache_clear_all($form_state['values']['cvs_uid'] .':'. $language->language, 'cache_menu');
+ }
+}
+
+// == User form validations ====================================================
+
+/**
+ * Try to catch wildcard email address signups, such as joe+drupal@gmail.com.
+ */
+function drupalorg_register_mail_validate($form, &$form_state) {
+ $hit = preg_match('/(.*)\+(.*)\@(.*)/', $form_state['values']['mail'], $match);
+ if ($hit) {
+ if (db_result(db_query("SELECT uid FROM {users} WHERE LOWER(mail) LIKE LOWER('%s')", $match[1] .'+%%@'. $match[3])) > 0) {
+ form_set_error('mail', t('An e-mail address similar to %email is already registered. Have you forgotten your password?', array('%email' => $form_state['values']['mail'], '@password' => url('user/password'))));
+ }
+ }
+}
+
+/**
+ * Validate all fields in the user_edit form against the list of bad words.
+ *
+ * @todo Core almost supports it with above form_alter but listings are bad
+ * (when the value is homepage, core does not know about it, so does not print it).
+ * @todo Headers are blocked by some providers so this is not accurate.
+ */
+function drupalorg_profile_user_edit_validate($form, &$form_state) {
+ if (!empty($form_state['values']['homepage']) && is_string($form_state['values']['homepage']) && (strlen($form_state['values']['homepage']) > 7)) {
+ $result = db_query("SELECT mask FROM {access} WHERE type = '%s' AND status = %d", 'homepage', 0);
+ $masks = array();
+ while ($mask = db_fetch_object($result)) {
+ // Build masks array for preg_matching.
+ $masks[] = '@'. strtr($mask->mask, array('.' => '\.', '%' => '.*', '_' => '.')) .'@';
+ }
+ // Check denied homepages.
+ foreach ($masks as $mask) {
+ if (preg_match($mask, $form_state['values']['homepage'])) {
+ form_set_error('homepage', t('Unsuitable Drupal site detected. This address cannot be set as your Drupal site link.'));
+ }
+ }
+ // Did not work due to several hosts rewriting headers.
+ /*if (!user_access('administer users')) {
+ // Check for Drupal-ness of website. Try only once.
+ $response = drupal_http_request($form_state['values']['homepage'], array(), 'GET', NULL, 1);
+ if ($response->headers['Expires'] != 'Sun, 19 Nov 1978 05:00:00 GMT') {
+ form_set_error('homepage', t("Your website does not seem to be a Drupal site. If you think we are wrong, please open an issue in the webmasters' queue."));
+ }
+ }*/
+ }
+}
+
+/**
+ * Submit handler for the user profile form, to serialize languages to a string.
+ */
+function drupalorg_profile_fix_languages(&$form, &$form_state) {
+ if (is_array($form_state['values']['profile_languages'])) {
+ $form_state['values']['profile_languages'] = join('; ', array_keys($form_state['values']['profile_languages']));
+ }
+}
+
+// == Project links ============================================================
+
+/**
+ * Implemenation of hook_project_page_link_alter().
+ */
+function drupalorg_project_page_link_alter(&$links, $node) {
+ // Link to security handbook page.
+ $links['development']['links']['report_security_issue'] = l(t('Report a security issue'), 'security-team');
+}
+
+// == External search block ====================================================
+
+/**
+ * Implementation of hook_block().
+ *
+ * @todo Hopefully remove as part of search migration.
+ */
+function drupalorg_block($op = 'list', $delta = 0, $edit = array()) {
+ if ($op == 'list') {
+ $blocks[0] = array('info' => t('External/Alternate Search Advice (only when search is disabled)'),
+ 'weight' => 0, 'enabled' => 0, 'region' => 'header');
+ return $blocks;
+ }
+ else if ($op == 'view') {
+ switch ($delta) {
+ case 0:
+ $block = array('subject' => t('Search Engine'),
+ 'content' => drupalorg_display_block_external_search());
+ break;
+ }
+ return $block;
+ }
+}
+
+/**
+ * Body for external search block.
+ */
+function drupalorg_display_block_external_search() {
+ if (!user_access('search content')) {
+ $form = '';
+ $message = '
Due to load issues the Drupal.org search occasionally has to be disabled. When this happens, you can use external search engines and a modifier like "site:drupal.org" to refine your results to Drupal. For more information see the infrastructure queue
.';
+ return $form . $message;
+ }
+}
+
+// == IRC nick search ==========================================================
+
+/**
+ * Implementation of hook_search().
+ *
+ * Add support for searching for users based on the fixed IRC nickname field.
+ *
+ * @todo Possibly remove as part of search migration.
+ */
+function drupalorg_search($op = 'search', $keys = NULL) {
+ switch ($op) {
+ case 'name':
+ if (user_access('access user profiles')) {
+ return t('IRC nicks');
+ }
+ case 'search':
+ if (user_access('access user profiles')) {
+ $find = array();
+ // Replace wildcards with MySQL/PostgreSQL wildcards.
+ $keys = preg_replace('!\*+!', '%', $keys);
+ $result = pager_query("SELECT u.name, u.uid FROM {profile_values} pv INNER JOIN {users} u ON pv.uid = u.uid WHERE pv.fid = 35 AND LOWER(pv.value) LIKE LOWER('%%%s%%')", 15, 0, NULL, $keys);
+ while ($account = db_fetch_object($result)) {
+ $find[] = array('title' => $account->name, 'link' => url('user/'. $account->uid, array('html' => TRUE)));
+ }
+ return $find;
+ }
+ }
+}
+
+// == Utility functions ========================================================
+
+/**
+ * Project issue URL generator for Drupal issues.
+ *
+ * @param $query
+ * Array of array of options to pass on in the URL:
+ * - version (array of release node ids)
+ * - status (array of status ids)
+ * - priorities (array of prioristy ids)
+ * - categories (array of category names)
+ * - issue_tags (comma separated issue tags)
+ * @param $absolute
+ * Set to TRUE to get an absolute URL with http://drupal.org/...
+ */
+function drupalorg_drupal_issue_url($query = array(), $absolute = FALSE) {
+ return url('project/issues/search/drupal', array('query' => $query, 'absolute' => $absolute));
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function drupalorg_views_api() {
+ return array(
+ 'api' => 2.0,
+ 'path' => drupal_get_path('module', 'drupalorg'),
+ );
+}
+
+
+/**
+ * FormAPI submit handler
+ *
+ * @param $form
+ * Array, the FormAPI array
+ * @param $form_state
+ * Array, FormAPI state array.
+ *
+ * This submit handler automatically creates a project issue when the user
+ * applies for CVS account.
+ */
+function drupalorg_cvs_app_submit($form, &$form_state) {
+ global $user;
+
+ // Easy to use link to the user's CVS form.
+ $user_cvs_edit_link = l('CVS edit link for '. $user->name, 'user/'. $user->uid .'/edit/cvs');
+
+ // Automagically create a project issue in the Drupal CVS Applications project.
+ $node = new stdClass();
+ $node->type = 'project_issue';
+ $node->uid = $user->uid;
+ $node->comment = 2; // Allow follow-ups.
+ $node->pid = variable_get('drupalorg_cvs_app_project_nid', DRUPALORG_CVS_APP_PROJECT_NID);
+ $node->sid = variable_get('drupalorg_cvs_app_project_sid', 16); // Status is "active (needs more info)".
+ $node->component = variable_get('drupalorg_cvs_app_project_component', 'Miscellaneous');
+ $node->category = variable_get('drupalorg_cvs_app_project_task', 'task');
+ $node->priority = variable_get('drupalorg_cvs_app_project_priority', 2); // Normal.
+ $node->title = $user->name .' ['. $form_state['values']['cvs_user'] .']'; // Set title to username of applicant (helps when ordering the summary).
+ $node->body = $user_cvs_edit_link ."\n\n". $form_state['values']['motivation'];
+
+ // Create the project issue node.
+ node_save($node);
+
+ // Save the issue nid, used during the email generation phase.
+ _drupalorg_cvs_app_issue_nid($node->nid);
+}
+
+/**
+ * Implementation of hook_mail_alter()
+ */
+function drupalorg_mail_alter(&$message) {
+ global $base_url;
+
+ $find = array(
+ 'cvs_cvs_email_submit_applicant',
+ 'cvs_cvs_email_submit_admin',
+ );
+
+ if (in_array($message['id'], $find)) {
+ // Find and replace the project issue of the project issue.
+ $message['body'] = str_replace('%cvs-project-issue', $base_url .'/node/'. _drupalorg_cvs_app_issue_nid(), $message['body']);
+ }
+}
+
+/**
+ * Used to store a variable statically between hook calls.
+ *
+ * @param $nid
+ * Integer, node nid number to save.
+ */
+function _drupalorg_cvs_app_issue_nid($nid = FALSE) {
+ static $stored_nid;
+ if ($nid !== FALSE) {
+ $stored_nid = $nid;
+ }
+ return $stored_nid;
+}
+
+/**
+ * Menu callback handler.
+ * Special case for node/add/project-issue/cvsapplications.
+ */
+function _drupalorg_node_add_project_issue_cvsapplications() {
+ drupal_set_title(t('CVS Applications'));
+ return t('The creation of issues in this project is prohibited.');
+}
Index: sites/all/modules/drupalorg/drupalorg.install
===================================================================
--- sites/all/modules/drupalorg/drupalorg.install (.../trunk) (revision 0)
+++ sites/all/modules/drupalorg/drupalorg.install (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,234 @@
+ array('uid' => 'uid', 'type' => 'type')));
+ variable_set('apachesolr_index_last', array(
+ // Those values come from the test site. They will need to be tweaked to match
+ // the D5 database dump we used to build the index.
+ 'apachesolr_search' => array(
+ 'last_change' => '1233245289',
+ 'last_nid' => '320451',
+ ),
+ ));
+
+ // Enable drupal.org as a site_network server.
+ variable_set('site_network_server', 1);
+
+ // Add permissions to admins and some users.
+ _drupalorg_add_permissions(array(
+ 'administrator' => array(
+ // Contact
+ 'administer site-wide contact form',
+ // Forum
+ 'delete any forum topic', 'delete own forum topics', 'edit any forum topic',
+ // Nodes
+ 'create page content', 'create story content',
+ 'delete any book content', 'delete any page content', 'delete any story content',
+ 'delete own book content', 'delete own page content', 'delete own story content',
+ 'edit any page content', 'edit any story content',
+ 'edit own page content', 'edit own story content',
+ // Project
+ 'browse project listings',
+ // System
+ 'access site reports', 'administer actions', 'administer files',
+ // Admin_menu
+ 'access administration menu', 'display drupal links',
+ // Views UI for development
+ 'administer views'
+ ),
+ 'anonymous' => array(
+ // Project
+ 'browse project listings',
+ ),
+ 'authenticated user' => array(
+ // Project
+ 'browse project listings',
+ )
+ ));
+
+ return array();
+}
+
+/**
+ * Work around that image_update_5200() is insanely broken on Drupal 6.
+ *
+ * image_update_5200() tries to run a database change as if we are on the Drupal 5
+ * database. We are not. So that query fails, but we need to run the good one here
+ * to have the proper data.
+ */
+function drupalorg_update_6001() {
+ $ret = array();
+ // Copy image files records into the new table.
+ $args = array_map('db_escape_string', array_keys(image_get_sizes()));
+ $cond = " IN ('". implode("', '", $args) ."')";
+ $ret[] = update_sql("INSERT INTO {image} SELECT DISTINCT u.nid, f.fid, f.filename FROM {files} f INNER JOIN {upload} u ON f.fid = u.fid INNER JOIN {node} n ON u.nid = n.nid WHERE n.type='image' AND f.filename". $cond);
+ return $ret;
+}
+
+/**
+ * Migrate simplenews news items to forums.
+ */
+function drupalorg_update_6002() {
+ $ret = array();
+ // Fix one buggy newsletter post from the past and move it to the security news.
+ $ret[] = update_sql('UPDATE {simplenews_newsletters} SET tid = 44 WHERE tid = 0');
+ // Bogus existing forum IDs, which break our stuff.
+ $ret[] = update_sql('DELETE FROM {forum} WHERE nid IN (25390, 27678, 29754)');
+ // Add data for all newsletter posts as if they were forum topics all along.
+ // This data already exists in the term_node table, so we don't need to deal with that.
+ $ret[] = update_sql('INSERT INTO {forum} (nid, vid, tid) SELECT s.nid, n.vid, s.tid FROM {simplenews_newsletters} s LEFT JOIN {node} n ON s.nid = n.nid');
+ // Move all newsletters to the forums, except the test newsletter.
+ $ret[] = update_sql('UPDATE {term_data} SET vid = 1 WHERE vid = 4 AND tid != 121');
+ // Install the lists schema.
+ drupal_install_schema('lists');
+ // Add rows to lists_mailman, so it stores info on all things sent, and
+ // not going to resend them. Only do that for mails which we actually sent.
+ // There are old but unsent mails in there, which have s_status != 2.
+ $ret[] = update_sql('INSERT INTO {lists_mailman} (nid, uid, timestamp) SELECT nid, 1, NOW() FROM {simplenews_newsletters} WHERE s_status = 2');
+
+ // Now that we have the forum connections set up, convert existing simplenews
+ // nodes to forum nodes.
+ $ret[] = update_sql("UPDATE {node} SET type = 'forum' WHERE type = 'simplenews'");
+
+ // @todo The container for newsletters will be added manually and these three
+ // newsletters will be added to it via the slick drag and drop UI.
+ return $ret;
+}
+
+/**
+ * Migrate polls to story nodes.
+ */
+function drupalorg_update_6003() {
+ $ret = array();
+
+ // Get node identifiers of all poll nodes for conversion.
+ $list_result = db_query("SELECT nid FROM {node} WHERE type = 'poll'");
+ while ($poll_node = db_fetch_object($list_result)) {
+
+ // We only have one revision per poll (polls were on way before revisions),
+ // so we will update their single node_revisions entry right away. Those only
+ // have the teaser/body set up with asterisks for RSS purposes, as poll
+ // module does by default in core, so we can replace that.
+ $poll_result = db_query("SELECT * from {poll_choices} WHERE nid = %d ORDER by chorder ASC", $poll_node->nid);
+ $poll_body = array();
+ while ($poll_choice = db_fetch_object($poll_result)) {
+ // Drupal.org uses format 1 (filtered HTML) for these nodes. It has
,
+ //
,
, and enabled, and that is all that is needed
+ // for these nodes, so we should be fine with that.
+ $poll_body[] = $poll_choice->chtext .' ('. $poll_choice->chvotes .' votes)';
+ }
+ // Tell people this is an archived poll result node, present choices and votes statically.
+ $poll_body = '
Archived poll results:
'. join('
', $poll_body) .'
';
+ db_query("UPDATE {node_revisions} SET teaser = '%s', body = '%s' WHERE nid = %d", $poll_body, $poll_body .'', $poll_node->nid);
+ }
+
+ // Now that we have the bodies and teasers, convert all poll nodes to story nodes.
+ $ret[] = update_sql("UPDATE {node} SET type = 'story' WHERE type = 'poll'");
+
+ return $ret;
+}
+
+/**
+ * http://drupal.org/node/522906#comment-1844826
+ */
+function drupalorg_update_6004() {
+ variable_set('cvs_received_email',
+ "%account-name,\n".
+ "Your CVS account request has been received.\n\n".
+ "You must now go to %cvs-project-issue and upload your intended contribution.\n\n".
+ "Please remember to upload your module, theme or translation in compressed format such as zip, rar or tarball.\n\n".
+ "Your application cannot be processed until you have made your contribution available for review.\n\n".
+ "Kind regards,\n".
+ "Drupal CVS administrator.");
+
+ variable_set('cvs_new_application_email',
+ "User:\n".
+ " %user-account-url \n\n".
+ "Issue:\n".
+ " %cvs-project-issue \n\n".
+ "Motivation:\n".
+ " %motivation-message \n\n".
+ "Client information:\n".
+ " %client-information \n");
+}
+
+/**
+ * Utility function to add permissions to certain user roles.
+ */
+function _drupalorg_add_permissions($permissions) {
+ foreach ($permissions as $role => $grants) {
+ if (is_string($role)) {
+ $role = db_result(db_query("SELECT rid FROM {role} WHERE name = '%s'", $role));
+ }
+ if ($role) {
+ $authz = db_result(db_query('SELECT perm FROM {permission} WHERE rid = %d', $role));
+ if (empty($authz)) {
+ // No permission record yet.
+ db_query("INSERT INTO {permission} (perm, rid) VALUES ('%s', %d)", join(', ', $grants), $role);
+ }
+ else {
+ // Existing permission record.
+ $authz_changed = FALSE;
+ foreach ($grants as $grant) {
+ if (strpos($authz, $grant) === FALSE) {
+ $authz .= ', '. $grant;
+ $authz_changed = TRUE;
+ }
+ }
+ if ($authz_changed) {
+ db_query("UPDATE {permission} SET perm = '%s' WHERE rid = %d", $authz, $role);
+ }
+ }
+ }
+ }
+}
Index: sites/all/modules/drupalorg/drupalorg.css
===================================================================
--- sites/all/modules/drupalorg/drupalorg.css (.../trunk) (revision 0)
+++ sites/all/modules/drupalorg/drupalorg.css (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,6 @@
+/* $Id: drupalorg.css,v 1.1 2008/12/14 02:41:37 dww Exp $ */
+
+html.js div.js-hide {
+ display: none;
+}
+
Index: sites/all/modules/drupalorg/blocks_and_nodes/advert.info
===================================================================
--- sites/all/modules/drupalorg/blocks_and_nodes/advert.info (.../trunk) (revision 1945)
+++ sites/all/modules/drupalorg/blocks_and_nodes/advert.info (.../branches/drupal6) (revision 1945)
@@ -5,8 +5,9 @@
dependencies[] = forum
core=6.x
-; Information added by d.o-cvs-to-svn export/import script on 2009-04-10
-version = "HEAD"
+; Information added by d.o-cvs-to-svn export/import script on 2009-09-23
+version = "6.x-1.x-dev"
+core = "6.x"
project = "drupalorg"
-datestamp = "1239387063"
+datestamp = "1253720098"
Index: sites/all/modules/drupalorg/blocks_and_nodes/branches.info
===================================================================
--- sites/all/modules/drupalorg/blocks_and_nodes/branches.info (.../trunk) (revision 0)
+++ sites/all/modules/drupalorg/blocks_and_nodes/branches.info (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,13 @@
+; $Id: branches.info,v 1.3 2009/01/29 00:51:45 goba Exp $
+name = Branches
+description = Lists core and contrib branches
+package = Drupal.org
+dependencies[] = cvs
+core=6.x
+
+; Information added by d.o-cvs-to-svn export/import script on 2009-09-23
+version = "6.x-1.x-dev"
+core = "6.x"
+project = "drupalorg"
+datestamp = "1253720098"
+
Index: sites/all/modules/drupalorg/blocks_and_nodes/handbook.info
===================================================================
--- sites/all/modules/drupalorg/blocks_and_nodes/handbook.info (.../trunk) (revision 0)
+++ sites/all/modules/drupalorg/blocks_and_nodes/handbook.info (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,13 @@
+; $Id: handbook.info,v 1.3 2009/01/29 00:46:00 goba Exp $
+name = Handbook
+description = Special handbook pages
+dependencies[] = lists
+package = Drupal.org
+core=6.x
+
+; Information added by d.o-cvs-to-svn export/import script on 2009-09-23
+version = "6.x-1.x-dev"
+core = "6.x"
+project = "drupalorg"
+datestamp = "1253720098"
+
Index: sites/all/modules/drupalorg/blocks_and_nodes/bingo.module
===================================================================
--- sites/all/modules/drupalorg/blocks_and_nodes/bingo.module (.../trunk) (revision 0)
+++ sites/all/modules/drupalorg/blocks_and_nodes/bingo.module (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,212 @@
+ 'Bug bingo',
+ 'page callback' => 'bingo_jump',
+ 'page arguments' => array('bug-core'),
+ 'access arguments' => array('access content'),
+ 'type' => MENU_SUGGESTED_ITEM,
+ );
+ $items['contrib-bug-bingo'] = array(
+ 'title' => 'Contrib bug bingo',
+ 'page callback' => 'bingo_jump',
+ 'page arguments' => array('bug-contrib'),
+ 'access arguments' => array('access content'),
+ 'type' => MENU_SUGGESTED_ITEM,
+ );
+ $items['patch-bingo'] = array(
+ 'title' => 'Patch bingo',
+ 'page callback' => 'bingo_jump',
+ 'page arguments' => array('patch-core'),
+ 'access arguments' => array('access content'),
+ 'type' => MENU_SUGGESTED_ITEM,
+ );
+ $items['contrib-patch-bingo'] = array(
+ 'title' => 'Contrib patch bingo',
+ 'page callback' => 'bingo_jump',
+ 'page arguments' => array('patch-contrib'),
+ 'access arguments' => array('access content'),
+ 'type' => MENU_SUGGESTED_ITEM,
+ );
+ return $items;
+}
+
+/**
+ * SQL randomizer for issues.
+ */
+function bingo_jump($type = NULL) {
+ $sql = array(
+ // Bug, core.
+ 'bug-core' => "SELECT nid FROM {project_issues} WHERE sid IN (1) AND category = 'bug' AND pid = 3060 ORDER BY RAND() LIMIT 1",
+ // Bug, contrib.
+ 'bug-contrib' => "SELECT nid FROM {project_issues} WHERE sid IN (1) AND category = 'bug' AND pid != 3060 ORDER BY RAND() LIMIT 1",
+ // Patch, core.
+ 'patch-core' => "SELECT nid FROM {project_issues} WHERE sid IN (8,13,14) AND pid = 3060 ORDER BY RAND() LIMIT 1",
+ // Patch, contrib.
+ 'patch-contrib' => "SELECT nid FROM {project_issues} WHERE sid IN (8,13,14) AND pid != 3060 ORDER BY RAND() LIMIT 1",
+ );
+ if (!isset($type) || !isset($sql[$type])) {
+ $type = 'bug-core';
+ }
+
+ $nid = db_result(db_query($sql[$type]));
+ if ($_GET['stop'] != 1) {
+ drupal_goto('node/'. $nid);
+ }
+}
+
+/**
+ * Implementation of hook_block().
+ */
+function bingo_block($op = 'list', $delta = 0, $edit = array()) {
+ switch ($op) {
+ case 'list':
+ $blocks[0]['info'] = t('Contributor links');
+ return $blocks;
+
+ case 'view':
+ $block['subject'] = t('Contributor links');
+ $block['content'] = bingo_block_output();
+ return $block;
+ }
+}
+
+/**
+ * Output links with issue counts for different types of issues.
+ */
+function bingo_block_output() {
+ $counts = variable_get('drupalorg_issue_counts', array());
+
+ $counts_pending = $counts['Pending bugs'];
+ $counts_critical = $counts['Critical issues'];
+ $counts_queue = $counts['Patch queue'];
+ $counts_review = $counts['Patches to review'];
+
+ $versions = array_map('trim', explode(',', ISSUE_RIDS));
+ $url_pending = drupalorg_drupal_issue_url(
+ array(
+ 'version' => $versions,
+ 'status' => array(1),
+ 'priorities' => array(1, 2),
+ 'categories' => array('bug'),
+ )
+ );
+ $url_critical = drupalorg_drupal_issue_url(
+ array(
+ 'version' => $versions,
+ 'status' => array(1, 8, 13, 14),
+ 'priorities' => array(1),
+ 'categories' => array('bug', 'task'),
+ )
+ );
+ $url_queue = drupalorg_drupal_issue_url(
+ array(
+ 'version' => $versions,
+ 'status' => array(8, 13, 14),
+ )
+ );
+ $url_review = drupalorg_drupal_issue_url(
+ array(
+ 'version' => $versions,
+ 'status' => array(8, 14),
+ )
+ );
+ $url_performance = drupalorg_drupal_issue_url(
+ array(
+ 'version' => array('7.x'),
+ 'issue_tags' => 'Performance',
+ )
+ );
+ $url_usability = drupalorg_drupal_issue_url(
+ array(
+ 'version' => array('7.x'),
+ 'issue_tags' => 'Usability, d7ux',
+ )
+ );
+ $url_fields = drupalorg_drupal_issue_url(
+ array(
+ 'version' => array('7.x'),
+ 'issue_tags' => 'Fields in Core',
+ )
+ );
+
+ $output = <<
+
If you are interested in helping maintain/update/correct the documentation on Drupal.org, read up on the many ways to get involved.
';
+ $output .= '
Note: Many of our site maintainers also participate on the documentation team and are not listed here. Due to their broader responsibilities on drupal.org, site maintainers are listed separately.
';
+ $output .= '';
+ $result = db_query("SELECT DISTINCT(u.uid), u.name
+ FROM {users} u INNER JOIN {users_roles} r ON u.uid = r.uid
+ WHERE r.rid = 5 OR r.rid = 9
+ ORDER BY u.name "); // 3 = site maintainer, 4 = administrator 5 = document maintainer
+ while ($account = db_fetch_object($result)) {
+ $output .= "
". theme('username', $account) ."
";
+ }
+ $output .= '';
+ return $output;
+}
+
+/**
+ * Count and list contributors to the books.
+ */
+function handbook_book_contributors() {
+ $result = db_query("SELECT u.uid, u.name, COUNT(n.nid) AS pages
+ FROM {node} n INNER JOIN {users} u ON n.uid = u.uid
+ WHERE n.type = 'book' AND n.status = 1 AND n.moderate = 0
+ GROUP BY u.name
+ ORDER BY pages DESC");
+ $output .= "
';
+ $query= db_query("SELECT DISTINCT tag, COUNT(*) AS total
+ FROM {cvs_tags}
+ WHERE nid != 3060 AND nid != 0 AND tag RLIKE 'DRUPAL' AND branch = 1
+ GROUP BY tag ORDER BY tag DESC");
+ while($tag = db_fetch_object($query)) {
+ $output .= '
';
+ return $output;
+}
+
+/**
+ * Show branches ever created in core based on CVS module data.
+ */
+function branches_body_core() {
+ $output = '
';
+ $query= db_query("SELECT tag
+ FROM {cvs_tags}
+ WHERE nid = 3060 AND branch = 1 AND tag != 'DRUPAL-3-00'
+ ORDER BY tag DESC");
+ while($tag = db_fetch_object($query)) {
+ $output .= '
';
+
+ $query= db_query("SELECT tag
+ FROM {cvs_tags}
+ WHERE nid = 3060 AND branch = 0 AND tag RLIKE 'DRUPAL-'
+ ORDER BY tag DESC");
+ while($tag = db_fetch_object($query)) {
+ $output .= '
Warning: This page is a new tool from the documentation sprint to help Drupal.org developers and themers more easily use CVS.
+ The instructions may not be correct for every project. Please review and post issues if you find any problems.
+ The CVS module maintainer handbook continues to be a primary reference.
From within the development copy: ';
+
+ if ($version != 'HEAD') {
+ if (strpos($version, '--') === FALSE) {
+ // For Pre-DRUPAL-6--1 branches
+ $content[] = '
cvs tag ' . check_plain($version) . '--1-[minor version]
';
+ }
+ else {
+ $content[] = '
cvs tag ' . check_plain($version) . '-[minor version]
';
+ }
+ }
+ else {
+ $content[] = '
cvs tag DRUPAL-[core version]--[major version]-[minor version]
';
+ $content[] = 'Note: You may want to branch instead of creating the release directly from HEAD.';
+ }
+ $content[] = '
',
+ );
+ $form['#theme'] = 'views_bulk_operations_form';
+ break;
+
+ case VIEWS_BULK_OPS_STEP_CONFIG:
+ $operation = $plugin->get_operation_info($form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['operation']);
+ $form['operation'] = array('#type' => 'value', '#value' => $operation);
+ $form += _views_bulk_operations_action_form($operation, $plugin->view, array_filter($form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['objects']));
+ $form['execute'] = array(
+ '#type' => 'submit',
+ '#value' => t('Next'),
+ '#weight' => 98,
+ );
+ $query = drupal_query_string_encode($form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['exposed_input']);
+ $form['cancel'] = array(
+ '#type' => 'markup',
+ '#value' => t('Cancel', array('@view' => url($_GET['q'], array('query' => $query)))),
+ '#weight' => 99,
+ );
+ $form['#theme'] = 'views_bulk_operations_form';
+ drupal_set_title(t('Set parameters for \'%action\'', array('%action' => $operation['label'])));
+ _views_bulk_operations_strip_view($plugin->view);
+ break;
+
+ case VIEWS_BULK_OPS_STEP_CONFIRM:
+ $operation = $plugin->get_operation_info($form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['operation']);
+ $query = drupal_query_string_encode($form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['exposed_input']);
+ $objects = $form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['objects'];
+ $form = confirm_form($form,
+ t('Are you sure you want to perform \'%action\' on selected rows?', array('%action' => $operation['label'])),
+ array('path' => $_GET['q'], 'query' => $query),
+ theme('views_bulk_operations_confirmation', $objects, $plugin->view));
+ _views_bulk_operations_strip_view($plugin->view);
+ break;
+ }
+
+ // Use views_bulk_operations_form_submit() for form submit, regardless of form_id.
+ $form['#submit'][] = 'views_bulk_operations_form_submit';
+ $form['#validate'][] = 'views_bulk_operations_form_validate';
+ $form['#cache'] = TRUE;
+ return $form;
+}
+
+function _views_bulk_operations_strip_view(&$view) {
+ $view->pager['use_pager'] = FALSE;
+ $view->exposed_widgets = NULL;
+ $view->display_handler->set_option('header', '');
+ $view->display_handler->set_option('footer', '');
+ $view->attachment_before = '';
+ $view->attachment_after = '';
+ $view->feed_icon = '';
+}
+
+function theme_views_bulk_operations_form($form) {
+ $operation = is_array($form['operation']['#value']) ? $form['operation']['#value'] : $form['plugin']['#value']->get_operation_info($form['operation']['#value']);
+ $function = 'theme_' . $operation['callback'] . '_form';
+ $output = '';
+ if (function_exists($function)) {
+ $output = $function($form);
+ }
+ $output .= drupal_render($form);
+ return $output;
+}
+
+/**
+ * Validate the selected operation.
+ *
+ * @see views_bulk_operations_form()
+ */
+function views_bulk_operations_form_validate($form, &$form_state) {
+ switch ($form_state['values']['step']) {
+ case VIEWS_BULK_OPS_STEP_VIEW:
+ $_SESSION['vbo_values'][$_GET['q']] = $form_state['values'];
+ if (!array_sum($form_state['values']['objects'])) { // If all 0, no row selected
+ form_set_error('objects', t('No row selected. Please select one or more rows.'));
+ }
+ if (!empty($form_state['clicked_button']['#hash'])) {
+ $form_state['values']['operation'] = $form_state['clicked_button']['#hash'];
+ }
+ if (!$form_state['values']['operation']) { // No action selected
+ form_set_error('operation', t('No operation selected. Please select an operation to perform.'));
+ }
+ break;
+
+ case VIEWS_BULK_OPS_STEP_SINGLE:
+ $_SESSION['vbo_values'][$_GET['q']] = $form_state['values'];
+ if (!array_sum($form_state['values']['objects'])) { // If all 0, no row selected
+ form_set_error('objects', t('No row selected. Please select one or more rows.'));
+ }
+ $plugin = $form_state['values']['plugin'];
+ $operation = $plugin->get_operation_info($form_state['values']['operation']);
+ if ($operation['configurable']) {
+ _views_bulk_operations_action_validate($operation, $form, $form_state);
+ }
+ break;
+
+ case VIEWS_BULK_OPS_STEP_CONFIG:
+ $plugin = $form_state['values']['plugin'];
+ $operation = $plugin->get_operation_info($form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['operation']);
+ _views_bulk_operations_action_validate($operation, $form, $form_state);
+ break;
+ }
+}
+
+function _views_bulk_operations_adjust_selection(&$objects, $exposed_input, $plugin) {
+ $objects = array_filter($objects);
+ if (isset($objects['select_all'])) {
+ $objects = array();
+ $view = views_get_view($plugin->view->vid ? $plugin->view->vid : $plugin->view->name);
+ $view->set_items_per_page(0);
+ $view->set_exposed_input($exposed_input);
+ $view->ignore_fields = TRUE; // we don't need the fields here so we tell our style plugin to ignore them
+ $view->execute($plugin->view->current_display);
+ foreach ($view->result as $result) {
+ $objects[$result->{$view->base_field}] = $result->{$view->base_field};
+ }
+ }
+}
+
+/**
+ * Submit handler for the selected operation.
+ *
+ * @see views_bulk_operations_form()
+ */
+function views_bulk_operations_form_submit($form, &$form_state) {
+ $plugin = $form_state['values']['plugin'];
+
+ switch ($form_state['values']['step']) {
+ case VIEWS_BULK_OPS_STEP_VIEW:
+ $form_state['storage']['step'] = $form_state['values']['step'];
+ $form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW] = $form_state['values'];
+ _views_bulk_operations_adjust_selection($form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['objects'], $form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['exposed_input'], $plugin);
+ $operation = $plugin->get_operation_info($form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['operation']);
+ if (!$operation['configurable'] && $plugin->options['skip_confirmation']) {
+ break; // Go directly to execution
+ }
+ return;
+
+ case VIEWS_BULK_OPS_STEP_SINGLE:
+ $form_state['storage']['step'] = $form_state['values']['step'];
+ $form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW] = $form_state['values'];
+ $form_state['storage'][VIEWS_BULK_OPS_STEP_CONFIG] = $form_state['values']; // we're not taking any chances
+ _views_bulk_operations_adjust_selection($form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['objects'], $form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['exposed_input'], $plugin);
+ if ($plugin->options['skip_confirmation']) {
+ break; // Go directly to execution
+ }
+ return;
+
+ case VIEWS_BULK_OPS_STEP_CONFIG:
+ $form_state['storage']['step'] = $form_state['values']['step'];
+ $form_state['storage'][VIEWS_BULK_OPS_STEP_CONFIG] = $form_state['values'];
+ if ($plugin->options['skip_confirmation']) {
+ break; // Go directly to execution
+ }
+ return;
+
+ case VIEWS_BULK_OPS_STEP_CONFIRM:
+ break;
+ }
+
+ // Clean up unneeded SESSION variables.
+ unset($_SESSION['vbo_values'][$_GET['q']]);
+
+ // Execute the VBO.
+ $operation = $plugin->get_operation_info($form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['operation']);
+ $operation_arguments = array();
+ if ($operation['configurable']) {
+ $form_state['values'] += $form_state['storage'][VIEWS_BULK_OPS_STEP_CONFIG];
+ $operation_arguments = _views_bulk_operations_action_submit($operation, $form, $form_state);
+ }
+ _views_bulk_operations_execute(
+ $plugin->view,
+ $form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['exposed_input'],
+ $form_state['storage'][VIEWS_BULK_OPS_STEP_VIEW]['objects'],
+ $operation,
+ $operation_arguments,
+ $plugin->options['execution_type'],
+ $plugin->options['display_result']
+ );
+
+ // Clean up the form.
+ unset($form_state['storage']);
+ $form_state['redirect'] = $_GET['q'];
+}
+
+function _views_bulk_operations_execute($view, $view_exposed_input, $objects, $operation, $operation_arguments, $execution_type, $display_result) {
+ // Add action arguments.
+ $params = array();
+ if ($operation['configurable'] && is_array($operation_arguments)) {
+ $params += $operation_arguments;
+ }
+ // Add static callback arguments. Note that in the case of actions, static arguments
+ // are picked up from the database in actions_do().
+ if (isset($operation['callback arguments'])) {
+ $params += $operation['callback arguments'];
+ }
+ // Add this view as parameter.
+ $params['view'] = $view;
+
+ if (version_compare(VERSION, '6.10', '<')) {
+ // Hack to force actions_do() to process any number of invocations.
+ // Check http://drupal.org/node/290282 to understand more.
+ // This was fixed as of D6.10: http://cvs.drupal.org/viewvc.py/drupal/drupal/includes/actions.inc?view=log&pathrev=DRUPAL-6-10
+ variable_set('actions_max_stack', 10000000);
+ }
+ if ($operation['aggregate'] != VBO_AGGREGATE_FORCED && $execution_type == VBO_EXECUTION_BATCH) {
+ $operations = array();
+ foreach ($objects as $oid) {
+ $operations[] = array('_views_bulk_operations_batch_process', array($oid));
+ }
+
+ // Save the options in the session because Batch API doesn't give a way to
+ // send a parameter to the finished callback.
+ $_SESSION['vbo_options']['display_result'] = $display_result;
+ $_SESSION['vbo_options']['operation'] = $operation;
+ $_SESSION['vbo_options']['params'] = serialize($params);
+
+ $batch = array(
+ 'operations' => $operations,
+ 'finished' => '_views_bulk_operations_batch_finished',
+ 'title' => t('Performing %action on selected rows...', array('%action' => $operation['label'])),
+ );
+ batch_set($batch);
+ }
+ else if ($operation['aggregate'] != VBO_AGGREGATE_FORCED && module_exists('job_queue') && $execution_type == VBO_EXECUTION_QUEUE) {
+ global $user;
+ // Storing the view in params cause serialize() in job_queue_add() to fail.
+ // So we just store its name and exposed input and we'll build it again every time!
+ $params['view'] = array(
+ 'name' => $view->vid ? $view->vid : $view->name,
+ 'exposed_input' => $view_exposed_input,
+ );
+ foreach ($objects as $oid) {
+ job_queue_add('_views_bulk_operations_queue_process',
+ t('Perform %action on @type %oid.', array(
+ '%action' => $operation['label'],
+ '@type' => t($operation['object']),
+ '%oid' => $oid
+ )),
+ array($oid, $operation, $params, $user->uid, $display_result)
+ );
+ }
+ if ($display_result) {
+ drupal_set_message(t('Enqueued %action on @types %oid. Check the queued jobs page.', array(
+ '%action' => $operation['label'],
+ '@types' => format_plural(count($objects), t($operation['object']), t($operation['object'] .'s')),
+ '%oid' => implode(', ', $objects),
+ '@queue' => url('admin/reports/job_queue')
+ )));
+ }
+ }
+ else /*if ($execution_type == VBO_EXECUTION_DIRECT)*/ {
+ set_time_limit(0);
+
+ $context['results']['rows'] = 0;
+ $context['results']['time'] = microtime(TRUE);
+
+ _views_bulk_operations_direct_process($operation, $objects, $params, $context);
+ _views_bulk_operations_direct_finished(TRUE, $context['results'], array(), $display_result);
+ }
+}
+
+/**
+ * Job Queue operations.
+ */
+function _views_bulk_operations_queue_process($oid, $operation, $params, $uid, $display_result) {
+ module_load_include('inc', 'node', 'node.admin');
+
+ static $views;
+ if (isset($params['view'])) {
+ // We couldn't save the view in $params so we just saved its name and exposed input.
+ // We rebuild it here and save it for the duration of the page request.
+ $md5 = md5($params['view']['name'].':'.serialize($params['view']['exposed_input']));
+ if (!isset($views[$md5])) {
+ $view = views_get_view($params['view']['name']);
+ $view->set_exposed_input($params['view']['exposed_input']);
+ $view->execute();
+ $views[$md5] = $view;
+ }
+ $params['view'] = $views[$md5];
+ }
+
+ $info = _views_bulk_operations_object_info_for_type($operation['object']);
+ if (!$info) return;
+ $object = call_user_func($info['load'], $oid);
+ $account = user_load(array('uid' => $uid));
+ if (!_views_bulk_operations_object_permission($operation, $object, $account)) {
+ watchdog('views bulk operations', 'Skipped %action on @type %title due to insufficient permissions.', array(
+ '%action' => $operation['label'],
+ '@type' => t($operation['object']),
+ '%title' => $object->{$info['title']},
+ ), WATCHDOG_ALERT);
+ return;
+ }
+
+ _views_bulk_operations_action_do($operation, $oid, $object, $params, $uid);
+
+ if ($display_result) {
+ watchdog('views bulk operations', 'Performed %action on @type %title.', array(
+ '%action' => $operation['label'],
+ '@type' => t($operation['object']),
+ '%title' => $object->{$info['title']},
+ ), WATCHDOG_INFO);
+ }
+}
+
+/**
+ * Batch API operations.
+ */
+function _views_bulk_operations_batch_process($oid, &$context) {
+ views_include('view'); // Force include of view.inc before we unserialize the parameters to make sure view object can be restored.
+ module_load_include('inc', 'node', 'node.admin');
+
+ $operation = $_SESSION['vbo_options']['operation'];
+ $params = unserialize($_SESSION['vbo_options']['params']);
+
+ if (!isset($context['results']['time'])) {
+ $context['results']['time'] = microtime(TRUE);
+ }
+
+ $info = _views_bulk_operations_object_info_for_type($operation['object']);
+ if (!$info) return;
+ $object = call_user_func($info['load'], $oid);
+ if (!_views_bulk_operations_object_permission($operation, $object)) {
+ $context['results']['log'][] = t('Skipped %action on @type %title due to insufficient permissions.', array(
+ '%action' => $operation['label'],
+ '@type' => t($operation['object']),
+ '%title' => $object->{$info['title']},
+ ));
+ return;
+ }
+
+ _views_bulk_operations_action_do($operation, $oid, $object, $params);
+
+ $context['results']['log'][] = t('Performed %action on @type %title.', array(
+ '%action' => $operation['label'],
+ '@type' => t($operation['object']),
+ '%title' => $object->{$info['title']},
+ ));
+ if (isset($context['results']['rows'])) {
+ $context['results']['rows'] += 1;
+ }
+ else {
+ $context['results']['rows'] = 1;
+ }
+}
+
+function _views_bulk_operations_batch_finished($success, $results, $operations, $display_result = NULL) {
+ if ($success) {
+ if ($results['rows'] > 0) {
+ $message = t('!results rows processed in about !time ms:', array('!results' => $results['rows'], '!time' => round((microtime(TRUE) - $results['time']) * 1000)));
+ }
+ else {
+ $message = t('No rows were processed:');
+ }
+ $message .= theme('item_list', $results['log']);
+ }
+ else {
+ // An error occurred.
+ // $operations contains the operations that remained unprocessed.
+ $error_operation = reset($operations);
+ $message = t('An error occurred while processing @operation with arguments: @arguments',
+ array('@operation' => $error_operation[0], '@arguments' => print_r($error_operation[0], TRUE)));
+ }
+ if (version_compare(VERSION, '6.10', '<')) {
+ // See http://cvs.drupal.org/viewvc.py/drupal/drupal/includes/actions.inc?view=log&pathrev=DRUPAL-6-10
+ variable_set('actions_max_stack', 35);
+ }
+ if ($display_result || @$_SESSION['vbo_options']['display_result']) {
+ drupal_set_message($message);
+ }
+ unset($_SESSION['vbo_options']); // unset the options which were used for just one invocation
+}
+
+/**
+ * Direct execution operations.
+ */
+function _views_bulk_operations_direct_process($operation, $objects, $params, &$context) {
+ $info = _views_bulk_operations_object_info_for_type($operation['object']);
+ if (!$info) return;
+
+ if ($operation['aggregate'] != VBO_AGGREGATE_FORBIDDEN) {
+ if (isset($info['access'])) {
+ foreach ($objects as $i => $oid) {
+ $object = call_user_func($info['load'], $oid);
+ if (!_views_bulk_operations_object_permission($operation, $object)) {
+ unset($objects[$i]);
+ $context['results']['log'][] = t('Skipped %action on @type %title due to insufficient permissions.', array(
+ '%action' => $operation['label'],
+ '@type' => t($operation['object']),
+ '%title' => $object->{$info['title']},
+ ));
+ }
+ }
+ }
+
+ if (!empty($objects)) {
+ _views_bulk_operations_action_aggregate_do($operation, $objects, $params);
+
+ $context['results']['log'][] = t('Performed aggregate %action on @types %oids.', array(
+ '%action' => $operation['label'],
+ '@types' => format_plural(count($objects), t($operation['object']), t($operation['object'] .'s')),
+ '%oids' => implode(',', $objects),
+ ));
+ $context['results']['rows'] += count($objects);
+ }
+ }
+ else foreach ($objects as $oid) {
+ $object = call_user_func($info['load'], $oid);
+ if (!_views_bulk_operations_object_permission($operation, $object)) {
+ $context['results']['log'][] = t('Skipped %action on @type %title due to insufficient permissions.', array(
+ '%action' => $operation['label'],
+ '@type' => t($operation['object']),
+ '%title' => $object->{$info['title']},
+ ));
+ continue;
+ }
+
+ _views_bulk_operations_action_do($operation, $oid, $object, $params);
+
+ $context['results']['log'][] = t('Performed %action on @type %title.', array(
+ '%action' => $operation['label'],
+ '@type' => t($operation['object']),
+ '%title' => $object->{$info['title']},
+ ));
+ $context['results']['rows'] += 1;
+ }
+}
+
+function _views_bulk_operations_direct_finished($success, $results, $operations, $display_result) {
+ _views_bulk_operations_batch_finished($success, $results, $operations, $display_result);
+}
+
+/**
+ * Execute one operation.
+ */
+function _views_bulk_operations_action_do($operation, $oid, $object, $params, $account = NULL) {
+ _views_bulk_operations_action_permission($operation, $account);
+
+ if ($operation['type'] == 'action') {
+ $params[$operation['object']] = $object; // Add the object to the context for token support
+ actions_do($operation['callback'], $object, $params);
+ if ($operation['object'] == 'node' && ($operation['access op'] & VBO_ACCESS_OP_UPDATE)) { // Save nodes explicitly if needed
+ node_save($object);
+ }
+ }
+ else { // type == 'operation'
+ $args = array_merge(array(array($oid)), $params);
+ call_user_func_array($operation['callback'], $args);
+ }
+}
+
+/**
+ * Execute an aggregate operation.
+ */
+function _views_bulk_operations_action_aggregate_do($operation, $objects, $params) {
+ _views_bulk_operations_action_permission($operation);
+ if ($operation['type'] == 'action') {
+ $params[$operation['object']] = $objects;
+ actions_do($operation['callback'], $objects, $params);
+ }
+ else {
+ $args = array_merge(array($objects), $params);
+ call_user_func_array($operation['callback'], $args);
+ }
+}
+
+/**
+ * Verify access permission to execute operation.
+ */
+function _views_bulk_operations_action_permission($operation, $account = NULL) {
+ if (module_exists('actions_permissions')) {
+ $perm = actions_permissions_get_perm($operation['label'], $operation['callback']);
+ if (!user_access($perm, $account)) {
+ global $user;
+ watchdog('actions permissions', 'An attempt by user %user to !perm was blocked due to insufficient permissions.',
+ array('!perm' => $perm, '%user' => isset($account) ? $account->name : $user->name), WATCHDOG_ALERT);
+ drupal_access_denied();
+ }
+ }
+}
+
+/**
+ * Verify access permission to operate on object.
+ */
+function _views_bulk_operations_object_permission($operation, $object, $account = NULL) {
+ // Check against object access permissions.
+ $info = _views_bulk_operations_object_info_for_type($operation['object']);
+ if (!isset($info['access'])) return TRUE;
+ $access_ops = array(
+ VBO_ACCESS_OP_VIEW => 'view',
+ VBO_ACCESS_OP_UPDATE => 'update',
+ VBO_ACCESS_OP_CREATE => 'create',
+ VBO_ACCESS_OP_DELETE => 'delete',
+ );
+ foreach ($access_ops as $bit => $op) {
+ if ($operation['access op'] & $bit) {
+ if (!call_user_func($info['access'], $op, $object, $account)) {
+ return FALSE;
+ }
+ }
+ }
+
+ // Check against additional permissions.
+ if (!empty($operation['permissions'])) foreach ($operation['permissions'] as $perm) {
+ if (!user_access($perm, $account)) {
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ * Let the configurable action provide its configuration form.
+ */
+function _views_bulk_operations_action_form($action, $view, $selection = NULL) {
+ $action_form = $action['callback'].'_form';
+ return call_user_func($action_form, array('view' => $view, 'selection' => $selection));
+}
+
+/**
+ * Let the configurable action validate the form if it provides a validator.
+ */
+function _views_bulk_operations_action_validate($action, $form, $form_values) {
+ $action_validate = $action['callback'].'_validate';
+ if (function_exists($action_validate)) {
+ call_user_func($action_validate, $form, $form_values);
+ }
+}
+
+/**
+ * Let the configurable action process the configuration form.
+ */
+function _views_bulk_operations_action_submit($action, $form, $form_values) {
+ $action_submit = $action['callback'].'_submit';
+ return call_user_func($action_submit, $form, $form_values);
+}
+
+function theme_views_bulk_operations_confirmation($objects, $view) {
+ $count = 0;
+ $info = _views_bulk_operations_object_info_for_view($view);
+ if (!$info) {
+ $output = t('You selected !count rows of an unknown object type.', array('!count' => count($objects)));
+ }
+ else {
+ $output = t('You selected the following !count rows:', array('!count' => count($objects))).'
';
+ foreach ($objects as $oid) {
+ // Number of titles to display before we say "...and more"
+ if ((VIEWS_BULK_OPS_MAX_CONFIRM_NODES > 0) && ($count >= VIEWS_BULK_OPS_MAX_CONFIRM_NODES)) {
+ $output .= '
',
- );
-
- if ($allow_metadata_changes) {
- $form['issue_details']['title'] = array(
- '#type' => 'textfield',
- '#title' => t('Title'),
- '#default_value' => $node->title,
- '#size' => 60,
- '#maxlength' => 128,
- '#required' => TRUE,
- );
- }
-
- $form['issue_details']['body'] = array(
- '#type' => 'textarea',
- '#title' => t('Description'),
- '#default_value' => $node->body,
- '#rows' => 10,
- '#required' => TRUE,
- );
- $form['issue_details']['format'] = filter_form($node->format);
-
- $directory = file_create_path(variable_get('project_directory_issues', 'issues'));
- if (!file_check_directory($directory, 0)) {
- $msg = t('File attachments are disabled. The issue directory has not been properly configured.');
- if (user_access('administer site configuration')) {
- $msg .= ' '. t('Please visit the !admin-project-issue-settings page.', array('!admin-project-issue-settings' => l(t('Project issue settings'), 'admin/project/project-issue-settings')));
- }
- else {
- $msg .= ' '. t('Please contact the site administrator.');
- }
- drupal_set_message($msg, 'error');
- }
- return $form;
-}
-
-/**
* Build an array of users to whom an issue may be assigned.
*
* @param $issue
@@ -726,133 +116,6 @@
}
/**
- * Implmentation of hook_validate().
- *
- * Ensures that the issue node form has valid values for all required fields.
- * We use hook_validate() here instead of a #validate handler or even defining
- * project_issue_node_form_validate() since if we did, node_form_validate()
- * itself would not be invoked, which would lead to all kinds of problems,
- * including hook_nodeapi('validate') never being invoked.
- *
- * @param $node
- * An object of form values from the project_issue node form, not a fully
- * loaded issue node object. Therefore, the fields are not in the usual
- * $node->project_issue array.
- */
-function project_issue_validate($node) {
- // If $node->nid is set, that means that the node was being
- // edited and not created. If that's the case, the user was
- // not presented with any of the metadata fields, so there's no
- // need to validate them here.
- if (empty($node->nid)) {
- if (empty($node->pid)) {
- form_set_error('pid', t('You have to specify a valid project.'));
- }
- elseif ($project = node_load($node->pid)) {
- if (module_exists('project_release') &&
- $releases = project_release_get_releases($project, 0)) {
- if (empty($node->rid)) {
- form_set_error('rid', t('You have to specify a valid version.'));
- }
- }
- if (isset($node->component) && !in_array($node->component, $project->project_issue['components'])) {
- $node->component = 0;
- }
- if (empty($node->component)) {
- form_set_error('component', t('You have to specify a valid component.'));
- }
- if (empty($node->category)) {
- form_set_error('category', t('You have to specify a valid category.'));
- }
- }
- }
-}
-
-function project_issue_view($node, $teaser = false, $page = false) {
- $node = node_prepare($node, $teaser);
-
- if (!$teaser && ($page || project_issue_is_comment_reply())) {
-
- $node->content['#prefix'] = '
';
- $node->content['#suffix'] = '
';
-
- $project = node_load(array('nid' => $node->project_issue['pid'], 'type' => 'project_project'));
- $release->nid = $node->project_issue['rid'];
- if (module_exists('project_release')) {
- $release = project_release_load($release);
- }
- $assigned = ($node->project_issue['assigned'] && ($account = user_load(array('uid' => $node->project_issue['assigned']))) ? $account->name : t('Unassigned'));
-
- $current_data = array();
- $current_data['pid'] = array(
- 'label' => t('Project'),
- 'current' => $project->title,
- );
- if (!empty($release->project_release['version'])) {
- $current_data['rid'] = array(
- 'label' => t('Version'),
- 'current' => $release->project_release['version'],
- );
- }
- $current_data['component'] = array(
- 'label' => t('Component'),
- 'current' => $node->project_issue['component'],
- );
- $current_data['category'] = array(
- 'label' => t('Category'),
- 'current' => project_issue_category($node->project_issue['category'], 0),
- );
- $current_data['priority'] = array(
- 'label' => t('Priority'),
- 'current' => project_issue_priority($node->project_issue['priority']),
- );
- $current_data['assigned'] = array(
- 'label' => t('Assigned'),
- 'current' => $assigned,
- );
- $current_data['sid'] = array(
- 'label' => t('Status'),
- 'current' => project_issue_state($node->project_issue['sid']),
- );
-
- // Allow modules to alter the metadata displayed in the table on the actual
- // issue node itself (at the very top of the issue). Modules should accept
- // the $current_data parameter by reference and add additional
- // elements for additional lines in the table.
- //
- // Modules implementing this hook should take the following parameters:
- // @param $view
- // A string representing the metadata view being generated. For the issue
- // node main table, this will be 'current'.
- // @param $node
- // The project_issue node object.
- // @param $current_data
- // An associative array of rows in the project issue metadata table that
- // will be displayed, with the following key/value pairs:
- // 'label' => The metadata label.
- // 'current' => The current metadata value.
- // This parameter should be accepted by reference.
- foreach (module_implements('project_issue_metadata') as $module) {
- $function = $module .'_project_issue_metadata';
- $function('current', $node, $current_data);
- }
-
- $node->content['project_issue_summary'] = array(
- '#value' => theme('project_issue_summary', $current_data, project_issue_internal_links($node)),
- '#weight' => -5,
- );
-
- $node->content['project_issue_header'] = array(
- '#value' => '
'. t('Description') .'
',
- '#weight' => -3,
- );
-
- project_issue_set_breadcrumb($node, $project);
- }
- return $node;
-}
-
-/**
* Implementation of hook_project_issue_assignees().
*
* This hook is used to modify the list of 'Assigned' users when creating or
@@ -893,172 +156,6 @@
}
}
-/**
- * Themes the metadata table and internal page links for issue nodes.
- *
- * @param $current_data
- * An array of current issue data for the metadata table.
- * @param $summary_links
- * An array of internal page links.
- * @return
- * An HTML string of the summary section.
- */
-function theme_project_issue_summary($current_data, $summary_links) {
- $allowed_tags = array('a', 'em', 'strong', 'div', 'span');
- // Fields that should be rendered as plain text, not filtered HTML.
- $plain_fields = array('title', 'pid', 'rid');
-
- $rows = array();
- foreach ($current_data as $name => $values) {
- $row = array();
- $row[] = filter_xss($values['label'], $allowed_tags) .':';
- if (in_array($name, $plain_fields)) {
- $row[] = check_plain($values['current']);
- }
- else {
- $row[] = filter_xss($values['current'], $allowed_tags);
- }
- $rows[] = $row;
- }
-
- $output = '
+
+
+
Index: sites/all/modules/project_issue/project_issue.css
===================================================================
--- sites/all/modules/project_issue/project_issue.css (.../trunk) (revision 1945)
+++ sites/all/modules/project_issue/project_issue.css (.../branches/drupal6) (revision 1945)
@@ -1,4 +1,4 @@
-/* $Id: project_issue.css,v 1.25 2009/02/05 06:46:47 dww Exp $ */
+/* $Id: project_issue.css,v 1.26 2009/06/18 04:54:18 dww Exp $ */
/* Summary content */
#project-issue-summary-table {
@@ -8,6 +8,7 @@
float: right;
}
#project-issue-summary-links li {
+ background: none;
list-style-type: none;
margin-left: 0;
padding-left: 0;
Index: sites/all/modules/project_issue/includes/admin.settings.inc
===================================================================
--- sites/all/modules/project_issue/includes/admin.settings.inc (.../trunk) (revision 0)
+++ sites/all/modules/project_issue/includes/admin.settings.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,171 @@
+ 'textfield',
+ '#title' => t('Issue directory'),
+ '#default_value' => variable_get('project_directory_issues', 'issues'),
+ '#size' => 30,
+ '#maxlength' => 255,
+ '#description' => t("Subdirectory in the directory '%dir' where attachments to issues will be stored.", array('%dir' => variable_get('file_directory_path', 'files') . '/')),
+ '#after_build' => array('project_issue_check_directory'),
+ );
+
+ $form['project_issue_show_comment_signatures'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Display user signatures on issue followups'),
+ '#default_value' => variable_get('project_issue_show_comment_signatures', 0),
+ '#description' => t('If selected, user signatures will be appended to the display of issue followups.'),
+ );
+
+ $form['project_issue_reply_to'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Reply-to address on e-mail notifications'),
+ '#default_value' => variable_get('project_issue_reply_to', variable_get('site_mail', ini_get('sendmail_from'))),
+ '#description' => t('All issue e-mails sent via subscriptions will appear from this e-mail address. You can use %project as a placeholder which will be replaced with the %short_project_name setting for the issue\'s current project.', array('%project' => '%project', '%short_project_name' => t('Short project name'))),
+ );
+
+ // Determine the auto followup username from the auto followup setting.
+ $followup_username = '';
+ $anon = variable_get('anonymous', t('Anonymous'));
+ if ($followup_user_object = _project_issue_followup_get_user()) {
+ $followup_username = $followup_user_object->name;
+ }
+
+ $form['project_issue_followup_user'] = array(
+ '#title' => t('Auto-followup user'),
+ '#type' => 'textfield',
+ '#default_value' => $followup_username,
+ '#maxlength' => 60,
+ '#description' => t('Enter the name of the user which will create automatic followups to issues -- leave empty to disable auto-followup or set to %anon to use the anonymous user.', array('%anon' => $anon)),
+ '#element_validate' => array('project_issue_validate_followup_user'),
+ '#autocomplete_path' => 'user/autocomplete',
+ );
+
+ $form['project_issue_auto_close_days'] = array(
+ '#title' => t('Auto-close days'),
+ '#type' => 'textfield',
+ '#default_value' => (int) variable_get('project_issue_auto_close_days', PROJECT_ISSUE_AUTO_CLOSE_DAYS),
+ '#size' => 4,
+ '#maxlength' => 10,
+ '#description' => t('Issues being in "fixed" state for the specified number of days will be closed by the followup user specified above. For example, if this is 14, and an issue is set to fixed on January 1, then it will be closed on January 15.'),
+ );
+
+ $defaults = array(t('Code'), t('Documentation'), t('Miscellaneous'), t('User interface'));
+ $components = variable_get('project_issue_default_components', implode("\n", $defaults));
+
+ $form['project_issue_default_components'] = array(
+ '#type' => 'textarea',
+ '#title' => t('Default components'),
+ '#default_value' => $components,
+ '#cols' => 20,
+ '#rows' => 6,
+ '#required' => TRUE,
+ '#description' => t("Enter the default list of components that new projects will have. The project owner will be able to change this list on the project's edit/issues page."),
+ '#element_validate' => array('project_issue_validate_default_components'),
+ );
+
+ if (module_exists('mailhandler')) {
+ // TODO: move this stuff to mailhandler.module ?
+ $items = array(t(''));
+ $result = db_query('SELECT mail FROM {mailhandler} ORDER BY mail');
+ while ($mail = db_result($result, $i++)) {
+ $items[$mail] = $mail;
+ }
+
+ // Switch reply-to to a select box instead.
+ $form['project_issue_reply_to']['#type'] = 'select';
+ $form['project_issue_reply_to']['#options'] = $items;
+ }
+
+ $form['project_issue_autocomplete'] = array(
+ '#type' => 'radios',
+ '#title' => t('Project selection widget'),
+ '#default_value' => variable_get('project_issue_autocomplete', 0),
+ '#options' => array(t('Select Menu'), t('Autocomplete')),
+ );
+
+ $form['project_issue_site_help'] = array(
+ '#title' => t('Site-wide help text for new issues'),
+ '#type' => 'textarea',
+ '#default_value' => variable_get('project_issue_site_help', ''),
+ '#cols' => 20,
+ '#rows' => 5,
+ '#description' => t('Optionally enter site-wide help text that will be displayed whenever a user tries to create a new issue. Please note that there is no automatic formatting on this text, but you can use regular HTML tags as necessary (for example %p, %ul, and so on).', array('%p' => '
', '%ul' => '
')),
+ );
+
+ return system_settings_form($form);
+}
+
+function project_issue_validate_default_components($form, &$form_state) {
+ // If the list of default components has changed (other than whitespace),
+ // warn the admin that the change will only affect new projects.
+ $value = trim($form['#value']);
+
+ // If it's empty and required, the user will get a message that the
+ // field is required, so don't bother warning them that the component
+ // list has changed.
+ if ($form['#required'] && !empty($value)) {
+ $old = explode("\n", str_replace("\r", '', $form['#default_value']));
+ $new = explode("\n", str_replace("\r", '', $value));
+
+ // Trim whitespace on each entry in the array.
+ array_walk($old, 'project_issue_trim');
+ array_walk($new, 'project_issue_trim');
+ // Filter out blank lines and reindex the arrays from 0.
+ $old = array_values(array_filter($old));
+ $new = array_values(array_filter($new));
+
+ if ($old != $new) {
+ drupal_set_message(t("The list of default components for new projects has changed. This will not affect existing projects."), 'warning');
+ }
+ // Regardless, now that we've trimmed everything, save those values.
+ $form_state['values']['project_issue_default_components'] = implode("\n", $new);
+ }
+}
+
+/**
+ * Validates that the followup user exists, and has sufficient permissions
+ * to follow up on issues.
+ */
+function project_issue_validate_followup_user($form, &$form_state) {
+ $name = $form['#value'];
+ if ($name !== '') {
+ $anon = variable_get('anonymous', t('Anonymous'));
+ // Make this check case-insensitive to allow the admin some data entry leeway.
+ $is_anon = drupal_strtolower($name) == drupal_strtolower($anon);
+ // Load the user. (don't see a constant for uid 0... )
+ $account = $is_anon ? user_load(array('uid' => 0)) : user_load(array('name' => $name));
+ if ($account) {
+ if (user_access('access project issues', $account)) {
+ // Transform the username into the more stable user ID.
+ $form_state['values']['project_issue_followup_user'] = $account->uid;
+ }
+ else {
+ form_error($form, t('%name does not have sufficient permissions to follow up on issues.', array('%name' => $is_anon ? $anon : $name)));
+ }
+ }
+ else {
+ form_error($form, t('%name is not a valid user.', array('%name' => $name)));
+ }
+ }
+}
+
+/**
+ * Check whether the intended issues directory exists and ensure it is writable.
+ */
+function project_issue_check_directory($form_element) {
+ $directory = file_create_path($form_element['#value']);
+ file_check_directory($directory, FILE_CREATE_DIRECTORY, $form_element['#parents'][0]);
+ return $form_element;
+}
+
Index: sites/all/modules/project_issue/includes/issue_node_view.inc
===================================================================
--- sites/all/modules/project_issue/includes/issue_node_view.inc (.../trunk) (revision 0)
+++ sites/all/modules/project_issue/includes/issue_node_view.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,182 @@
+content['#prefix'] = '
';
+ $node->content['#suffix'] = '
';
+
+ $project = node_load(array('nid' => $node->project_issue['pid'], 'type' => 'project_project'));
+ $release->nid = $node->project_issue['rid'];
+ if (module_exists('project_release')) {
+ $release = project_release_load($release);
+ }
+ $assigned = ($node->project_issue['assigned'] && ($account = user_load(array('uid' => $node->project_issue['assigned']))) ? $account->name : t('Unassigned'));
+
+ $current_data = array();
+ $current_data['pid'] = array(
+ 'label' => t('Project'),
+ 'current' => $project->title,
+ );
+ if (!empty($release->project_release['version'])) {
+ $current_data['rid'] = array(
+ 'label' => t('Version'),
+ 'current' => $release->project_release['version'],
+ );
+ }
+ $current_data['component'] = array(
+ 'label' => t('Component'),
+ 'current' => $node->project_issue['component'],
+ );
+ $current_data['category'] = array(
+ 'label' => t('Category'),
+ 'current' => project_issue_category($node->project_issue['category'], 0),
+ );
+ $current_data['priority'] = array(
+ 'label' => t('Priority'),
+ 'current' => project_issue_priority($node->project_issue['priority']),
+ );
+ $current_data['assigned'] = array(
+ 'label' => t('Assigned'),
+ 'current' => $assigned,
+ );
+ $current_data['sid'] = array(
+ 'label' => t('Status'),
+ 'current' => project_issue_state($node->project_issue['sid']),
+ );
+
+ // Allow modules to alter the metadata displayed in the table on the actual
+ // issue node itself (at the very top of the issue). Modules should accept
+ // the $current_data parameter by reference and add additional
+ // elements for additional lines in the table.
+ //
+ // Modules implementing this hook should take the following parameters:
+ // @param $view
+ // A string representing the metadata view being generated. For the issue
+ // node main table, this will be 'current'.
+ // @param $node
+ // The project_issue node object.
+ // @param $current_data
+ // An associative array of rows in the project issue metadata table that
+ // will be displayed, with the following key/value pairs:
+ // 'label' => The metadata label.
+ // 'current' => The current metadata value.
+ // This parameter should be accepted by reference.
+ foreach (module_implements('project_issue_metadata') as $module) {
+ $function = $module .'_project_issue_metadata';
+ $function('current', $node, $current_data);
+ }
+
+ $node->content['project_issue_summary'] = array(
+ '#value' => theme('project_issue_summary', $current_data, project_issue_internal_links($node)),
+ '#weight' => -5,
+ );
+
+ $node->content['project_issue_header'] = array(
+ '#value' => '
'. t('Description') .'
',
+ '#weight' => -3,
+ );
+
+ project_issue_set_breadcrumb($node, $project);
+ }
+ return $node;
+}
+
+/**
+ * Themes the metadata table and internal page links for issue nodes.
+ *
+ * @param $current_data
+ * An array of current issue data for the metadata table.
+ * @param $summary_links
+ * An array of internal page links.
+ * @return
+ * An HTML string of the summary section.
+ */
+function theme_project_issue_summary($current_data, $summary_links) {
+ $allowed_tags = array('a', 'em', 'strong', 'div', 'span');
+ // Fields that should be rendered as plain text, not filtered HTML.
+ $plain_fields = array('title', 'pid', 'rid');
+
+ $rows = array();
+ foreach ($current_data as $name => $values) {
+ $row = array();
+ $row[] = filter_xss($values['label'], $allowed_tags) .':';
+ if (in_array($name, $plain_fields)) {
+ $row[] = check_plain($values['current']);
+ }
+ else {
+ $row[] = filter_xss($values['current'], $allowed_tags);
+ }
+ $rows[] = $row;
+ }
+
+ $output = '
';
+ return $output;
+}
Property changes on: sites/all/modules/project_issue/includes/statistics.inc
___________________________________________________________________
Added: svn:keywords
+ Revision Date
Index: sites/all/modules/project_issue/includes/project_node.inc
===================================================================
--- sites/all/modules/project_issue/includes/project_node.inc (.../trunk) (revision 0)
+++ sites/all/modules/project_issue/includes/project_node.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,71 @@
+nid));
+ // If nothing loaded, bail immediately
+ if (!$project) {
+ return $node;
+ }
+ $node->project_issue = array();
+ $node->project_issue['components'] = unserialize($project->components);
+ $node->project_issue['default_component'] = $project->default_component;
+ $node->project_issue['mail_copy_filter'] = unserialize($project->mail_copy_filter);
+ $node->project_issue['mail_copy_filter_state'] = unserialize($project->mail_copy_filter_state);
+ foreach (array('issues', 'help', 'mail_digest', 'mail_copy', 'mail_reminder') as $field) {
+ $node->project_issue[$field] = $project->$field;
+ }
+ return $node;
+}
+
+function project_issue_project_insert($node) {
+ // Setup reasonable defaults: enable issue tracker and standard
+ // components. If maintainers want to change these, (or any of the
+ // other issue-related project settings, like the email notifications)
+ // they'd use the "issues" subtab of the project edit tab (since none
+ // of these fields are present on the initial project add form).
+ $node->project_issue['issues'] = 1;
+
+ // Default components are saved in the variables table as a plain
+ // string instead of as a serialized array since they come out of
+ // a textarea on a system settings form. Convert here to the more
+ // desirable serialized array for storage per-project.
+ $defaults = array(t('Code'), t('Documentation'), t('Miscellaneous'), t('User interface'));
+ $components = variable_get('project_issue_default_components', implode("\n", $defaults));
+ $default_components = explode("\n", str_replace("\r", '', $components));
+
+ $node->project_issue['components'] = serialize($default_components);
+ db_query("INSERT INTO {project_issue_projects} (nid, issues, components) VALUES (%d, %d, '%s')", $node->nid, $node->project_issue['issues'], $node->project_issue['components']);
+}
+
+function project_issue_project_delete($node) {
+ // Delete all associated issues.
+ $issues = db_query('SELECT nid FROM {project_issues} WHERE pid = %d', $node->nid);
+ while ($issue = db_fetch_object($issues)) {
+ node_delete($issue->nid);
+ }
+ db_query('DELETE FROM {project_issue_projects} WHERE nid = %d', $node->nid);
+ db_query('DELETE FROM {project_subscriptions} WHERE nid = %d', $node->nid);
+}
+
Property changes on: sites/all/modules/project_issue/includes/project_node.inc
___________________________________________________________________
Added: svn:keywords
+ Revision Date
Index: sites/all/modules/project_issue/includes/issue_node_form.inc
===================================================================
--- sites/all/modules/project_issue/includes/issue_node_form.inc (.../trunk) (revision 0)
+++ sites/all/modules/project_issue/includes/issue_node_form.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,477 @@
+ node_get_types('name', 'project_issue'))));
+ return drupal_get_form('project_issue_pick_project_form');
+}
+
+/**
+ * Form builder for a simple form to select a project when creating a new
+ * issue (as the first "page", but this is not really a multi-page form).
+ */
+function project_issue_pick_project_form(&$form_state) {
+ $form = array();
+
+ // Fetch a list of all projects.
+ $uris = NULL;
+ $projects = project_projects_select_options($uris);
+ if (!$projects) {
+ drupal_set_message(t('You do not have access to any projects.'), 'error');
+ }
+ elseif (count($projects) == 1) {
+ $project = node_load(key($projects));
+ drupal_goto('node/add/project-issue/' . $project->project['uri']);
+ }
+
+ $form['pid'] = array(
+ '#type' => 'select',
+ '#title' => t('Project'),
+ '#options' => array(t('')) + $projects,
+ '#required' => TRUE,
+ );
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Next'),
+ );
+ return $form;
+}
+
+function project_issue_pick_project_form_validate($form, &$form_state) {
+ if (empty($form_state['values']['pid'])) {
+ form_set_error('pid', t('You must select a project.'));
+ }
+ $node = node_load($form_state['values']['pid']);
+ if (empty($node) || $node->type != 'project_project') {
+ form_set_error('pid', t('Invalid project selected.'));
+ }
+}
+
+function project_issue_pick_project_form_submit($form, &$form_state) {
+ $project = node_load($form_state['values']['pid']);
+ $form_state['redirect'] = 'node/add/project-issue/'. $project->project['uri'];
+}
+
+/**
+ * Private helper to implement hook_form().
+ *
+ * Create the project issue node form.
+ *
+ * @param $node
+ * The project issue node object.
+ * @param $include_metadata_fields
+ * If set, metadata fields (eg. status, assigned, title) will
+ * be included in the form regardless of whether $node->nid is set.
+ * Otherwise, metadata fields will only be included in the form
+ * if $node->nid is empty.
+ */
+function _project_issue_form($node, $form_state, $include_metadata_fields = FALSE) {
+ global $user;
+
+ $defaults = array(
+ 'rid',
+ 'component',
+ 'category',
+ 'priority',
+ 'assigned',
+ 'sid',
+ );
+
+ // Set some defaults for new forms.
+ if (!isset($node->nid)) {
+ foreach ($defaults as $default) {
+ $node->project_issue[$default] = 0;
+ }
+ }
+
+ // In the case of an issue preview, get our defaults from the submitted form.
+ // TODO: do we want to #tree our form so we don't need this hack?
+ if (isset($form_state['node'])) {
+ foreach ($defaults as $default) {
+ if (isset($form_state['node'][$default])) {
+ $node->project_issue[$default] = $form_state['node'][$default];
+ }
+ }
+ }
+
+ // If this function is being called as a result of CCK building the form
+ // in content_admin_field_overview_form(), just return an empty array, since
+ // CCK only grabs the top level fields and this form has none of those anyway.
+ if (!empty($node->cck_dummy_node_form)) {
+ return array();
+ }
+
+ if (arg(0) == 'node' && arg(1) == 'add') {
+ $breadcrumb = array();
+ $breadcrumb[] = l(t('Home'), NULL);
+ $breadcrumb[] = l(t('Create content'), 'node/add');
+ drupal_set_breadcrumb($breadcrumb);
+ }
+
+ $default_state = variable_get('project_issue_default_state', 1);
+
+ // Fetch a list of all projects to test for access.
+ $uris = NULL;
+ $projects = array(t('')) + project_projects_select_options($uris);
+ if (count($projects) == 1) {
+ drupal_set_message(t('You do not have access to any projects.'), 'error');
+ drupal_goto('node/add/project-issue');
+ return;
+ }
+
+ // Figure out what project we should use for the issue metadata.
+ if (!empty($form_state['values']['project_info']['pid'])) {
+ // The project has been selected in the form itself (e.g. it's been
+ // changed and we're previewing, etc.)
+ $pid = $form_state['values']['project_info']['pid'];
+ }
+ elseif (!empty($node->project_issue['pid'])) {
+ // The issue node already knows what project it belongs to.
+ $pid = $node->project_issue['pid'];
+ }
+ else {
+ // Fallback and try to learn the project from the URL -- evil.
+ $pid = arg(3);
+ if (!empty($pid)) {
+ if (is_numeric($pid)) {
+ $node->project_issue['pid'] = db_result(db_query(db_rewrite_sql('SELECT p.nid FROM {project_projects} p WHERE p.nid = %d', 'p'), $pid));
+ }
+ else {
+ $node->project_issue['pid'] = db_result(db_query(db_rewrite_sql("SELECT p.nid FROM {project_projects} p WHERE p.uri = '%s'", 'p'), $pid));
+ }
+ }
+ $pid = $node->project_issue['pid'];
+ }
+
+ if (empty($pid)) {
+ drupal_set_message(t('Invalid project selected.'), 'error');
+ drupal_goto('node/add/project-issue');
+ }
+
+ // If this issue has already been created and is just being
+ // edited, we want to prevent any metadata changes. However, allow
+ // the $include_metadata_fields parameter to override this check.
+ if ($include_metadata_fields) {
+ $allow_metadata_changes = TRUE;
+ }
+ else {
+ $allow_metadata_changes = empty($node->nid);
+ }
+
+ // Load the project and initialize some support arrays.
+ $project = node_load($pid);
+ if ($project->type != 'project_project') {
+ drupal_set_message(t('Invalid project selected.'), 'error');
+ // Not sure the best place to go here...
+ drupal_goto('node/add/project-issue');
+ }
+ if ($allow_metadata_changes) {
+ if (module_exists('project_release') && isset($node->project_issue['rid']) &&
+ $releases = project_release_get_releases($project, 0, 'version', 'all', array($node->project_issue['rid']))) {
+ $releases = array(t('')) + $releases;
+ }
+ // Remove releases marked as invalid release nodes for user selection.
+ foreach (variable_get('project_issue_invalid_releases', array()) as $rid) {
+ unset($releases[$rid]);
+ }
+ // Setup components and default component.
+ if (!empty($node->project_issue['component'])) {
+ $default_component = $node->project_issue['component'];
+ }
+ else {
+ $default_component = $project->project_issue['default_component'];
+ }
+ $components = empty($default_component) ? array(t('')) : array();
+ if ($project->project_issue['components']) {
+ foreach ($project->project_issue['components'] as $component) {
+ $component = check_plain($component);
+ $components[$component] = $component;
+ }
+ }
+ $categories = array_merge(array(t('')), project_issue_category(0, 0));
+ $priorities = project_issue_priority();
+ $states = project_issue_state(0, TRUE, !empty($node->nid) && ($node->uid == $user->uid), $node->project_issue['sid']);
+ $assigned = project_issue_assigned_choices($node);
+ }
+
+ // Display the site-wide and/or per-project help text.
+ $site_help = trim(variable_get('project_issue_site_help', ''));
+ if (!empty($site_help)) {
+ $form['project_help']['site'] = array(
+ '#prefix' => '
',
+ );
+
+ if ($allow_metadata_changes) {
+ $form['issue_details']['title'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Title'),
+ '#default_value' => $node->title,
+ '#size' => 60,
+ '#maxlength' => 128,
+ '#required' => TRUE,
+ );
+ }
+ else {
+ $form['issue_details']['title'] = array(
+ '#type' => 'value',
+ '#value' => $node->title,
+ );
+ }
+
+ $form['issue_details']['body'] = array(
+ '#type' => 'textarea',
+ '#title' => t('Description'),
+ '#default_value' => $node->body,
+ '#rows' => 10,
+ '#required' => TRUE,
+ );
+ $form['issue_details']['format'] = filter_form($node->format);
+
+ $directory = file_create_path(variable_get('project_directory_issues', 'issues'));
+ if (!file_check_directory($directory, 0)) {
+ $msg = t('File attachments are disabled. The issue directory has not been properly configured.');
+ if (user_access('administer site configuration')) {
+ $msg .= ' '. t('Please visit the !admin-project-issue-settings page.', array('!admin-project-issue-settings' => l(t('Project issue settings'), 'admin/project/project-issue-settings')));
+ }
+ else {
+ $msg .= ' '. t('Please contact the site administrator.');
+ }
+ drupal_set_message($msg, 'error');
+ }
+ return $form;
+}
+
+/**
+ * Private helper to implement hook_validate().
+ *
+ * Ensures that the issue node form has valid values for all required fields.
+ * We use hook_validate() here instead of a #validate handler or even defining
+ * project_issue_node_form_validate() since if we did, node_form_validate()
+ * itself would not be invoked, which would lead to all kinds of problems,
+ * including hook_nodeapi('validate') never being invoked.
+ *
+ * @param $node
+ * An object of form values from the project_issue node form, not a fully
+ * loaded issue node object. Therefore, the fields are not in the usual
+ * $node->project_issue array.
+ */
+function _project_issue_validate($node) {
+ // If $node->nid is set, that means that the node was being
+ // edited and not created. If that's the case, the user was
+ // not presented with any of the metadata fields, so there's no
+ // need to validate them here.
+ if (empty($node->nid)) {
+ if (empty($node->pid)) {
+ form_set_error('pid', t('You have to specify a valid project.'));
+ }
+ elseif ($project = node_load($node->pid)) {
+ if (module_exists('project_release') &&
+ $releases = project_release_get_releases($project, 0)) {
+ if (empty($node->rid)) {
+ form_set_error('rid', t('You have to specify a valid version.'));
+ }
+ }
+ if (isset($node->component) && !in_array($node->component, $project->project_issue['components'])) {
+ $node->component = 0;
+ }
+ if (empty($node->component)) {
+ form_set_error('component', t('You have to specify a valid component.'));
+ }
+ if (empty($node->category)) {
+ form_set_error('category', t('You have to specify a valid category.'));
+ }
+ }
+ }
+}
+
+/**
+ * Private helper to implement hook_insert().
+ *
+ * @param $node
+ * Object containing form values from the project_issue node form. This is
+ * NOT a fully loaded $node object, so the issue-related values are directly
+ * in $node, not in the $node->project_issue array.
+ */
+function _project_issue_insert($node) {
+ // Permanently store the original issue states in a serialized array. This
+ // is a bit yucky, but we need them for proper handling of states workflow.
+ // The current states need to be stored in {project_issues} as well for
+ // query efficiency in issue queue searches, and it seems too messy to add a
+ // bunch of new columns to the {project_issues} table for the original
+ // states.
+ $original_issue_data = new stdClass();
+ $fields = array(
+ 'pid' => 0,
+ 'rid' => 0,
+ 'component' => '',
+ 'category' => '',
+ 'priority' => 0,
+ 'assigned' => 0,
+ 'sid' => 0,
+ 'title' => '',
+ );
+ foreach ($fields as $field => $default) {
+ // Some of the incoming data may not have the correct default.
+ if (empty($node->$field)) {
+ $node->$field = $default;
+ }
+ $original_issue_data->$field = $node->$field;
+ }
+
+ db_query("INSERT INTO {project_issues} (nid, pid, category, component, priority, rid, assigned, sid, original_issue_data, last_comment_id, db_lock) VALUES (%d, %d, '%s', '%s', %d, %d, %d, %d, '%s', %d, %d)", $node->nid, $node->pid, $node->category, $node->component, $node->priority, $node->rid, $node->assigned, $node->sid, serialize($original_issue_data), 0, 0);
+
+ // Invalidate the "Issue cockpit" block cache for this project, since the
+ // new issue will have altered the summary totals.
+ cache_clear_all('project_issue_cockpit_block:'. $node->pid, 'cache');
+}
+
Property changes on: sites/all/modules/project_issue/includes/issue_node_form.inc
___________________________________________________________________
Added: svn:keywords
+ Revision Date
Index: sites/all/modules/project_issue/includes/cron.inc
===================================================================
--- sites/all/modules/project_issue/includes/cron.inc (.../trunk) (revision 1945)
+++ sites/all/modules/project_issue/includes/cron.inc (.../branches/drupal6) (revision 1945)
@@ -1,5 +1,5 @@
$issue->nid,
'sid' => PROJECT_ISSUE_STATE_CLOSED,
'comment' => $comment,
Index: sites/all/modules/project_issue/includes/subscribe.inc
===================================================================
--- sites/all/modules/project_issue/includes/subscribe.inc (.../trunk) (revision 0)
+++ sites/all/modules/project_issue/includes/subscribe.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,165 @@
+mail)) {
+ drupal_set_message(t('You need to provide a valid e-mail address to subscribe to issue e-mails. Please edit your user information.'), 'error');
+ drupal_goto('user/'. $user->uid .'/edit');
+ }
+
+ $levels = array(0 => t('None'), 1 => t('Own issues'), 2 => t('All issues'));
+
+ if ($project_nid) {
+ if (!is_numeric($project_nid)) {
+ $project_nid = db_result(db_query(db_rewrite_sql("SELECT p.nid FROM {project_projects} p WHERE p.uri = '%s'", 'p'), $project_nid));
+ }
+ if (!$project_nid) {
+ return drupal_not_found();
+ }
+
+ $project = node_load($project_nid);
+ project_project_set_breadcrumb($project, TRUE);
+
+ $level = db_result(db_query('SELECT level FROM {project_subscriptions} WHERE nid = %d AND uid = %d', $project->nid, $user->uid));
+ $form['single'] = array(
+ '#type' => 'value',
+ '#value' => $project->nid,
+ );
+ $form['#project'] = array(
+ '#type' => 'value',
+ '#value' => $project,
+ );
+ $form['subscribe'] = array(
+ '#type' => 'markup',
+ '#value' => '
'. t('Subscribe to receive e-mail notification when an issue for this project is updated.') .'
';
+ $output .= drupal_render($form);
+ return $output;
+}
+
+function project_issue_admin_states_form(&$form_state) {
+ $result = db_query('SELECT * FROM {project_issue_state} ORDER BY weight');
+ $default_state = variable_get('project_issue_default_state', 1);
+ $default_states = project_issue_default_states();
+ $form['status']['#tree'] = TRUE;
+ while ($state = db_fetch_object($result)) {
+ $options[$state->sid] = '';
+ $form['status'][$state->sid]['sid'] = array(
+ '#type' => 'markup',
+ '#value' => $state->sid,
+ );
+ $form['status'][$state->sid]['name'] = array(
+ '#type' => 'textfield',
+ '#default_value' => $state->name,
+ '#size' => 20,
+ '#maxlength' => 255,
+ );
+ $form['status'][$state->sid]['weight'] = array(
+ '#type' => 'weight',
+ '#default_value' => $state->weight,
+ '#delta' => 15,
+ '#attributes' => array('class' => 'project-issue-status-weight'),
+ );
+ $form['status'][$state->sid]['author_has'] = array(
+ '#type' => 'checkbox',
+ '#default_value' => $state->author_has,
+ );
+ $form['status'][$state->sid]['default_query'] = array(
+ '#type' => 'checkbox',
+ '#default_value' => in_array($state->sid, $default_states),
+ );
+ $del_link = ($state->sid != $default_state) ? l(t('Delete'), 'admin/project/project-issue-status/delete/'. $state->sid) : '';
+ $form['delete'][$state->sid] = array(
+ '#type' => 'markup',
+ '#value' => $del_link,
+ );
+ }
+ $form['default_state'] = array(
+ '#type' => 'radios',
+ '#options' => $options,
+ '#default_value' => $default_state,
+ );
+ $form['status_add']['name'] = array(
+ '#type' => 'textfield',
+ '#size' => 20,
+ '#maxlength' => 255,
+ );
+ $form['status_add']['weight'] = array(
+ '#type' => 'weight',
+ '#default_value' => 0,
+ '#delta' => 15,
+ '#attributes' => array('class' => 'project-issue-status-weight'),
+ );
+ $form['status_add']['author_has'] = array(
+ '#type' => 'checkbox',
+ );
+ $form['status_add']['default_query'] = array(
+ '#type' => 'checkbox',
+ );
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Save'),
+ );
+ $form['#tree'] = TRUE;
+ return $form;
+}
+
+/**
+ * Submit handler for project_issue_admin_states_form.
+ */
+function project_issue_admin_states_form_submit($form, &$form_state) {
+ // Check for and apply changes or additions to project issue status options.
+ if (isset($form_state['values']['default_state'])) {
+ variable_set('project_issue_default_state', $form_state['values']['default_state']);
+ }
+ // Update existing status options.
+ if($form_state['values']['status']) {
+ foreach ($form_state['values']['status'] as $sid => $value) {
+ $state = db_fetch_object(db_query('SELECT name, weight, author_has, default_query FROM {project_issue_state} WHERE sid = %d', $sid));
+ // Check to see whether the record needs updating.
+ if (($state->name != $value['name']) || ($state->weight != $value['weight']) || ($state->author_has != $value['author_has']) || ($state->default_query != $value['default_query'])) {
+ db_query("UPDATE {project_issue_state} SET name = '%s', weight = %d, author_has = %d, default_query = %d WHERE sid = %d", $value['name'], $value['weight'], $value['author_has'], $value['default_query'], $sid);
+ }
+ }
+ }
+ // Add any new status options.
+ if (isset($form_state['values']['status_add']) && !empty($form_state['values']['status_add']['name'])) {
+ // Check to see whether the state already exists:
+ $issue_state = db_result(db_query("SELECT COUNT(*) FROM {project_issue_state} WHERE name = '%s'", $form_state['values']['status_add']['name']));
+ if (empty($issue_state)) {
+ db_query("INSERT INTO {project_issue_state} (name, weight, author_has, default_query) VALUES ('%s', %d, %d, %d)", $form_state['values']['status_add']['name'], $form_state['values']['status_add']['weight'], $form_state['values']['status_add']['author_has'], $form_state['values']['status_add']['default_query']);
+ }
+ else {
+ drupal_set_message(t('Status %status already exists.', array ('%status' => $form_state['values']['status_add']['name'])), 'error');
+ }
+ }
+}
+
+function project_issue_delete_state_confirm(&$form_state, $sid) {
+ $states = project_issue_state();
+ $name = $states[$sid];
+
+ $total = db_result(db_query('SELECT COUNT(nid) AS total FROM {project_issues} WHERE sid = %d', $sid));
+ if ($total > 0) {
+ $form['new_sid'] = array(
+ '#type' => 'select',
+ '#title' => t('Reassign status'),
+ '#default_value' => $sid,
+ '#options' => $states,
+ '#description' => t('There are !total existing issues with the status of @name. Please select a new status for these issues.', array('!total' => $total, '@name' => $name)),
+ );
+ }
+ $form['sid'] = array(
+ '#type' => 'value',
+ '#value' => $sid,
+ );
+ $form['name'] = array(
+ '#type' => 'hidden',
+ '#value' => $name,
+ );
+ return confirm_form(
+ $form,
+ t('Are you sure you want to delete the status option %name?', array('%name' => $name)),
+ 'admin/project/project-issue-status',
+ t('This action cannot be undone.'),
+ t('Delete'), t('Cancel')
+ );
+}
+
+function project_issue_delete_state_confirm_validate($form, &$form_state) {
+ if ($form_state['values']['new_sid'] == $form_state['values']['sid']) {
+ form_set_error('new_sid', t('Choose a new issue status for existing issues of status %name.', array('%name' => $form_state['values']['name'])));
+ }
+}
+
+function project_issue_delete_state_confirm_submit($form, &$form_state) {
+ if ($form_state['values']['new_sid']) {
+ db_query('UPDATE {project_issues} SET sid = %d WHERE sid = %d', $form_state['values']['new_sid'], $form_state['values']['sid']);
+ }
+ db_query('DELETE FROM {project_issue_state} WHERE sid = %d', $form_state['values']['sid']);
+ drupal_set_message(t('Project issue status %issue deleted.', array('%issue' => $form_state['values']['name'])));
+ $form_state['redirect'] ='admin/project/project-issue-status';
+}
+
Index: sites/all/modules/project_issue/includes/comment.inc
===================================================================
--- sites/all/modules/project_issue/includes/comment.inc (.../trunk) (revision 0)
+++ sites/all/modules/project_issue/includes/comment.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,673 @@
+nid;
+ }
+ elseif (is_array($arg)) {
+ $nid = is_array($arg['nid']) ? $arg['nid']['#value'] : $arg['nid'];
+ }
+ $node = node_load($nid);
+ if ($node->type != 'project_issue') {
+ return;
+ }
+ // Make a copy here so we have all the original metadata, since some
+ // of it can change below.
+ $original_node = drupal_clone($node);
+ $old_data = (object) $original_node->project_issue;
+ $old_data->title = $original_node->title;
+
+ // Maintain an array of project ids that are affected by this comment
+ // operation. We'll use this to invalidate the "Issue cockpit" block cache
+ // for any of these projects.
+ $affected_projects = array();
+
+ switch ($op) {
+ case 'insert':
+ // Get a lock on the issue in order to generate the next comment ID.
+ $tries = 20;
+ $sleep_increment = 0;
+ while ($tries) {
+ $lock = db_query("UPDATE {project_issues} SET db_lock = 1 WHERE nid = %d AND db_lock = 0", $arg['nid']);
+ if (db_affected_rows()) {
+ $id = db_result(db_query("SELECT last_comment_id FROM {project_issues} WHERE nid = %d", $arg['nid'])) + 1;
+ db_query("UPDATE {project_issues} SET last_comment_id = %d, db_lock = 0 WHERE nid = %d", $id, $arg['nid']);
+ break;
+ }
+
+ // Wait a random and increasing amount of time before the next attempt.
+ $sleep = rand(10000, 1000000) + $sleep_increment;
+ usleep($sleep);
+ $sleep_increment += 50000;
+ $tries--;
+ }
+
+ if (isset($id)) {
+ $rid = isset($arg['project_info']['rid']) ? $arg['project_info']['rid'] : 0;
+ db_query("INSERT INTO {project_issue_comments} (nid, cid, pid, rid, component, category, priority, assigned, sid, title, timestamp, comment_number) VALUES (%d, %d, %d, %d, '%s', '%s', %d, %d, %d, '%s', %d, %d)", $arg['nid'], $arg['cid'], $arg['project_info']['pid'], $rid, $arg['project_info']['component'], $arg['category'], $arg['priority'], $arg['project_info']['assigned'], $arg['sid'], $arg['title'], $arg['timestamp'], $id);
+ db_query("UPDATE {comments} SET subject = '%s' WHERE cid = %d", "#$id", $arg['cid']);
+ project_issue_update_by_comment($arg, 'insert');
+ $affected_projects[$old_data->pid] = 1;
+ $affected_projects[$arg['project_info']['pid']] = 1;
+ }
+ else {
+ drupal_set_message(t('There was an error submitting your comment -- please try again. If the problem persists, contact the system administrator.'), 'error');
+ watchdog('project_issue', 'Error obtaining lock for project issue %nid', array('%nid' => $arg['nid']), WATCHDOG_ERROR, 'node/'. $arg['nid']);
+ // This is a bit extreme, but we have to clean up the failed comment,
+ // or it will appear on the issue.
+ _comment_delete_thread((object) $arg);
+ _comment_update_node_statistics($arg['nid']);
+ cache_clear_all();
+ // The hard redirect prevents any bogus data from being inserted for the failed comment.
+ drupal_goto('node/'. $arg['nid']);
+ }
+ break;
+
+ case 'update':
+ project_issue_update_by_comment($arg, 'update');
+ // Updating a comment can't change anything relevant about the issue for
+ // the purposes of the issue blocks, so we don't need to touch
+ // $affected_projects here.
+ break;
+
+ case 'delete':
+ // Save the project that's specified in this comment so we can
+ // invalidate its issue block cache.
+ $deleted_comment_project_id = db_result(db_query("SELECT pid FROM {project_issue_comments} WHERE cid = %d", $arg->cid));
+ $affected_projects[$deleted_comment_project_id] = 1;
+ // Actually delete the comment
+ db_query("DELETE FROM {project_issue_comments} WHERE cid = %d", $arg->cid);
+ $current_data = project_issue_update_by_comment($arg, 'delete');
+ // We should also invalidate the block cache for whatever project is now
+ // used for this issue, since we might be deleting a comment that moved
+ // an issue from one project to another.
+ $affected_projects[$current_data->pid] = 1;
+ break;
+
+ case 'view':
+ if (isset($arg->cid)) {
+ $project_issue_table = project_issue_comment_view($original_node, $arg);
+ }
+ else {
+ // Previewing a comment.
+ $test = drupal_clone($arg);
+ $test->pid = $arg->project_info['pid'];
+ $test->component = $arg->project_info['component'];
+ $test->assigned = $arg->project_info['assigned'];
+ // Add a dummy rid if necessary -- prevents incorrect change data.
+ $test->rid = isset($arg->project_info['rid']) ? $arg->project_info['rid'] : 0;
+ $comment_changes = project_issue_metadata_changes($node, $old_data, $test, project_issue_field_labels('web'));
+ $project_issue_table = theme('project_issue_comment_table', $comment_changes);
+ }
+ if ($project_issue_table) {
+ $arg->comment = '
'. $project_issue_table .'
' . $arg->comment;
+ }
+ break;
+
+ }
+ // If there are any affected projects, invalidate the block cache for those.
+ if (!empty($affected_projects)) {
+ foreach ($affected_projects as $pid => $value) {
+ $cid = 'project_issue_cockpit_block:'. $pid;
+ cache_clear_all($cid, 'cache');
+ }
+ }
+}
+
+/**
+ * Add project issue metadata to the comment form.
+ *
+ * @param $form
+ * Reference to form structure.
+ * @param $form_state
+ * Current form state.
+ */
+function project_issue_form_comment_form_alter(&$form, &$form_state) {
+ $nid = $form['nid']['#value'];
+ $node = node_load($nid);
+
+ // Allows only project_issue
+ if ($node->type != 'project_issue') {
+ return;
+ }
+
+ // Comment body is not required since we validate that ourselves.
+ unset($form['comment_filter']['comment']['#required']);
+
+ // The 'your name' item just wastes screen estate.
+ unset($form['_author']);
+
+ // For existing comments, we want to preserve the comment subject,
+ // Even if the subject field is disabled.
+ if ($cid = $form['cid']['#value']) {
+ $subject = db_result(db_query('SELECT subject FROM {comments} WHERE cid = %d', $cid));
+ }
+ // For new comments, show the expected next number for previews.
+ // This is only for show, the number will be generated when the comment
+ // is posted.
+ else {
+ $next_id = db_result(db_query('SELECT last_comment_id FROM {project_issues} WHERE nid = %d', $form['nid']['#value'])) + 1;
+ $subject = "#$next_id";
+ // Clobber the comment signature for new followups if necessary.
+ // TODO: Revamp this for Drupal 6.
+ if (!variable_get('project_issue_show_comment_signatures', 0)) {
+ $form['comment_filter']['comment']['#default_value'] = '';
+ }
+ }
+ $form['subject'] = array(
+ '#type' => 'value',
+ '#value' => $subject,
+ );
+
+ // Any time we're on a reply page, show the full issue below the reply.
+ if (project_issue_is_comment_reply()) {
+ $form['#pre_render'][] = 'project_issue_comment_pre_render';
+ }
+
+ // Make sure project is current here -- it may have changed when posted.
+ if (!empty($form_state['values']['project_info']['pid'])) {
+ $node->project_issue['pid'] = $form_state['values']['project_info']['pid'];
+ }
+ $project = node_load(array('nid' => $node->project_issue['pid'], 'type' => 'project_project'));
+
+ project_issue_set_breadcrumb($node, $project);
+
+ // Only allow metadata changes on new followups.
+ if (isset($form['cid']['#value'])) {
+ return;
+ }
+
+ // We have to set $form['#action'] to prevent AHAH nastiness.
+ if (!empty($form['pid']['#value'])) {
+ $form['#action'] = url('comment/reply/' . $nid . '/' . $form['pid']['#value']);
+ }
+ else {
+ $form['#action'] = url('comment/reply/' . $nid);
+ }
+
+ // We need to ask for almost the same metadata as project issue itself
+ // so let's reuse the form.
+ $form += project_issue_form($node, $form_state, TRUE);
+
+ // comment.module is basically still FAPI v1. It sets the preview button to
+ // #type 'button', so FAPI doesn't really consider that a form submission.
+ // However, we depend on the form being rebuilt on preview to do our magic.
+ // Thanks to a change in 6.14 core, form.inc will only rebuild the form if
+ // $form_state['submitted'] is TRUE. So, we set the preview button to
+ // actually be a 'submit' button so that the form is rebuilt on preview and
+ // our comment preview code can kick in.
+ $form['preview']['#type'] = 'submit';
+
+ // We need this otherwise pid collides with comment.
+ $form['project_info']['#tree'] = TRUE;
+ $form['project_info']['#weight'] = -2;
+
+ // Remove the form item that displays the current project, and
+ // replace the static single project value with a select list
+ // of all projects to make swapping simpler.
+ unset($form['project_info']['project_display']);
+ $uris = NULL;
+
+ if (variable_get('project_issue_autocomplete', 0) == 1) {
+ $form['project_info']['project_title'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Project'),
+ '#default_value' => $project->title,
+ '#required' => TRUE,
+ '#weight' => -1,
+ '#size' => 35,
+ '#autocomplete_path' => 'project/autocomplete/issue/project',
+ '#attributes' => array(
+ 'onFocus' => 'project_issue_autocomplete_handler()',
+ ),
+ '#ahah' => array(
+ 'progress' => array(
+ 'type' => 'none',
+ ),
+ 'path' => 'project/issues/update_project',
+ 'wrapper' => 'project-info-wrapper',
+ ),
+ );
+ }
+ else {
+ $projects = project_projects_select_options($uris);
+ $form['project_info']['pid'] = array(
+ '#type' => 'select',
+ '#title' => t('Project'),
+ '#default_value' => $project->nid,
+ '#options' => $projects,
+ '#required' => TRUE,
+ '#weight' => -1,
+ '#ahah' => array(
+ 'path' => 'project/issues/update_project',
+ 'wrapper' => 'project-info-wrapper',
+ 'event' => 'change',
+ ),
+ );
+ }
+
+ $form['issue_info']['#weight'] = -1;
+ $form['#prefix'] = '
';
+
+ // Remove the 'Project information' and 'Issue information' fieldsets,
+ // since we'll move everything inside the 'Edit issue settings' fieldset.
+ unset($form['project_info']['#type'], $form['project_info']['#title']);
+ unset($form['issue_info']['#type'], $form['issue_info']['#title']);
+
+ // Restructure the UI to de-emphasize the original project form inputs.
+ $form['original_issue']['project_info'] = $form['project_info'];
+ $form['original_issue']['issue_info'] = $form['issue_info'];
+ unset($form['project_info'], $form['issue_info']);
+ unset($form['issue_details'], $form['project_help']);
+ drupal_add_js(drupal_get_path('module', 'project_issue') .'/project_issue.js');
+}
+
+/**
+ * Validate issue metadata on the comment form.
+ *
+ * @param $form
+ * The Drupal form structure.
+ * @param $form_state
+ * The current state of the form.
+ */
+function project_issue_form_comment_validate($form, &$form_state) {
+ if (empty($form['cid']['#value']) && variable_get('project_issue_autocomplete', 0) == 1) {
+ if (empty($form_state['values']['project_info']['project_title'])) {
+ form_set_error('project_title', t('You must enter a project to navigate to.'));
+ }
+ else {
+ $pid = db_result(db_query("SELECT nid FROM {node} WHERE title = '%s' AND type = '%s'", $form_state['values']['project_info']['project_title'], 'project_project'));
+ if (empty($pid)) {
+ form_set_error('project_info][project_title', t('The name you entered (%title) is not a valid project.', array('%title' => $form_state['values']['project_info']['project_title'])));
+ }
+ else {
+ $form_state['values']['project_info']['pid'] = $pid;
+ }
+ }
+ }
+
+ if (!empty($form_state['rebuild'])) {
+ return;
+ }
+ $values = $form_state['values'];
+ $project_info = $form_state['values']['project_info'];
+ $nid = $values['nid'];
+ $node = node_load($nid);
+
+ // Make a copy here so we have all the original metadata, since some
+ // of it can change below.
+ $original_node = drupal_clone($node);
+ $old_data = (object) $original_node->project_issue;
+ $old_data->title = $original_node->title;
+
+ // Adjust new file attachments to go to the issues directory.
+ // We have to do this during validate, otherwise we might miss
+ // adjusting the filename before comment upload saves it (module weighting)
+ // TODO: is this still true?
+ project_issue_change_comment_upload_path($values);
+
+ // Only validate metadata changes on new followups.
+ if (isset($values['cid'])) {
+ return;
+ }
+
+ // Make sure project is current here -- it may have changed when posted.
+ if (isset($project_info['pid'])) {
+ $node->project_issue['pid'] = $project_info['pid'];
+ }
+ $project = node_load($node->project_issue['pid']);
+
+ if (!empty($project) && $project->type == 'project_project') {
+ // Force all comments to be a child of the main issue, to match the
+ // flat display, and also to prevent accidentally deleting a thread.
+ $form_state['values']['pid'] = 0;
+
+ // Validate version.
+ if (module_exists('project_release') && isset($project_info['rid']) && ($releases = project_release_get_releases($project, 0, 'version', 'all', array($project_info['rid'])))) {
+ $rid = $project_info['rid'];
+ if ($rid && !in_array($rid, array_keys($releases))) {
+ $rid = 0;
+ }
+ // Check to make sure this release is not marked as an invalid
+ // release node for user selection.
+ $invalid_rids = variable_get('project_issue_invalid_releases', array());
+ if (!empty($invalid_rids) &&
+ ((empty($rid) && in_array($node->project_issue['rid'], $invalid_rids))
+ || in_array($rid, $invalid_rids))) {
+ form_set_error('project_info][rid', t('%version is not a valid version, please select a different value.', array('%version' => $releases[$node->project_issue['rid']])));
+ }
+ elseif (empty($rid)) {
+ form_set_error('project_info][rid', t('You have to specify a valid version.'));
+ }
+ }
+ // Add a dummy rid if necessary -- prevents incorrect change data.
+ else {
+ $rid = 0;
+ }
+ // Validate component.
+ $component = $project_info['component'];
+ if ($component && !in_array($component, $project->project_issue['components'])) {
+ $component = 0;
+ }
+ empty($component) && form_set_error('project_info][component', t('You have to specify a valid component.'));
+ }
+ else {
+ form_set_error('project_info][pid', t('You have to specify a valid project.'));
+ }
+ empty($values['category']) && form_set_error('category', t('You have to specify a valid category.'));
+
+ // Now, make sure the comment changes *something* about the issue.
+ // If the user uploaded a file, so long as it's not marked for removal,
+ // we consider that a valid change to the issue, too.
+ $has_file = FALSE;
+ $files = isset($values['files']) ? $values['files'] : array();
+ foreach ($files as $number => $data) {
+ if (empty($data['remove'])) {
+ $has_file = TRUE;
+ break;
+ }
+ }
+ if (!$has_file && empty($values['comment'])) {
+
+ $comment = drupal_clone((object) $values);
+ $comment->pid = $project_info['pid'];
+ $comment->component = $component;
+ $comment->rid = $rid;
+ $comment->assigned = $project_info['assigned'];
+ $comment_changes = project_issue_metadata_changes($node, $old_data, $comment, project_issue_field_labels('web'));
+ // If the PID changed, rebuild the form
+ if (isset($comment_changes['pid']['new']) && $comment_changes['pid']['new'] === TRUE) {
+ $form_state['rebuild'] = TRUE;
+ }
+ $has_change = FALSE;
+ foreach ($comment_changes as $field => $changes) {
+ if (isset($changes['new'])) {
+ $has_change = TRUE;
+ break;
+ }
+ }
+ if (!$has_change) {
+ form_set_error('comment', t('You must either add a comment, upload a file, or change something about this issue.'));
+ }
+ }
+}
+
+/**
+ * Theme a project issue metadata table.
+ *
+ * @param $comment_changes
+ * Array containing metadata differences between comments
+ * as returned by project_issue_metadata_changes().
+ * @return
+ * The themed metadata table.
+ */
+function theme_project_issue_comment_table($comment_changes) {
+ $rows = array();
+ foreach ($comment_changes as $field => $change) {
+ if (!empty($change['label']) && isset($change['old']) && isset($change['new'])) {
+ $rows[] = theme('project_issue_comment_table_row', $field, $change);
+ }
+ }
+ return theme('table', array(), $rows);
+}
+
+/**
+ * Theme a single row of the project issue metadata changes table.
+ *
+ * @param $field
+ * The name of the field to theme.
+ * @param $change
+ * A nested array containing changes to project issue metadata
+ * for the given issue or comment.
+ * @return
+ * An array representing one row of the table.
+ *
+ * NOTE: If you override this theme function, you *must* make sure
+ * that you sanitize all output from this function that is displayed
+ * to the user. No further escaping/filtering of the data in this
+ * table will take place after this function. In most cases
+ * this means that you need to run the $change['label'], $change['old'],
+ * and $change['new'] values through either the check_plain() or
+ * filter_xss() function to prevent XSS and other types
+ * of problems due to any malicious input in these
+ * field values.
+ */
+function theme_project_issue_comment_table_row($field, $change) {
+ // Allow anchor, emphasis, and strong tags in metadata tables.
+ $allowed_tags = array('a', 'em', 'strong');
+ // Fields that should be rendered as plain text, not filtered HTML.
+ $plain_fields = array('title', 'pid', 'rid');
+
+ if (is_array($change['old']) || is_array($change['new'])) {
+ $removed = array();
+ if (is_array($change['old'])){
+ foreach ($change['old'] as $item) {
+ $removed[] = '-'. $item;
+ }
+ }
+ elseif (!empty($change['old'])) {
+ $removed[] = '-'. $change['old'];
+ }
+
+ $added = array();
+ if (is_array($change['new'])) {
+ foreach ($change['new'] as $item) {
+ $added[] = '+'. $item;
+ }
+ }
+ elseif (!empty($change['new'])) {
+ $added[] = '+'. $change['new'];
+ }
+
+ return array(
+ filter_xss($change['label'], $allowed_tags) .':',
+ filter_xss(implode(', ', $removed), $allowed_tags),
+ filter_xss(implode(', ', $added), $allowed_tags),
+ );
+ }
+ elseif (in_array($field, $plain_fields)) {
+ return array(
+ filter_xss($change['label'], $allowed_tags) .':',
+ check_plain(project_issue_change_summary($field, $change['old'])),
+ '» '. check_plain(project_issue_change_summary($field, $change['new'])),
+ );
+ }
+ else {
+ return array(
+ filter_xss($change['label'], $allowed_tags) .':',
+ filter_xss(project_issue_change_summary($field, $change['old']), $allowed_tags),
+ '» '. filter_xss(project_issue_change_summary($field, $change['new']), $allowed_tags),
+ );
+ }
+}
+
+/**
+ * Returns the issue metadata table for a comment.
+ *
+ * @param $node
+ * The corresponding node.
+ * @param $comment
+ * The comment, if it's set then metadata will be returned. If it's not
+ * set then metadata will be precalculated.
+ * @return
+ * A themed table of issue metadata.
+ */
+function project_issue_comment_view(&$node, $comment = NULL) {
+ static $project_issue_tables;
+
+ if (isset($comment)) {
+ return isset($project_issue_tables[$comment->cid]) ? $project_issue_tables[$comment->cid] : '';
+ }
+ if (!empty($node->comment_count)) {
+ $old = unserialize(db_result(db_query('SELECT original_issue_data FROM {project_issues} WHERE nid = %d', $node->nid)));
+ $labels = project_issue_field_labels('web');
+ $result = db_query('SELECT p.cid, p.title, p.pid, p.rid, p.component, p.category, p.priority, p.assigned, p.sid FROM {project_issue_comments} p INNER JOIN {comments} c ON p.cid = c.cid WHERE p.nid = %d AND c.status = %d ORDER BY p.timestamp ASC', $node->nid, COMMENT_PUBLISHED);
+ while ($followup = db_fetch_object($result)) {
+ $followup_changes = project_issue_metadata_changes($node, $old, $followup, project_issue_field_labels('web'));
+ $project_issue_tables[$followup->cid] = theme('project_issue_comment_table', $followup_changes);
+ $old = $followup;
+ }
+ }
+}
+
+/**
+ * Updates the project issue based on the comment inserted/updated/deleted.
+ *
+ * @param $comment_data
+ * The comment data that's been submitted.
+ * @param $op
+ * The comment operation performed, 'insert', 'update', 'delete'.
+ * @return
+ * An object representing the comment data used to update the issue.
+ */
+function project_issue_update_by_comment($comment_data, $op) {
+ switch ($op) {
+ case 'insert':
+ // Massage the incoming data so the structure is consistent throughout the function.
+ $comment_data['component'] = $comment_data['project_info']['component'];
+ $comment_data['pid'] = $comment_data['project_info']['pid'];
+ $comment_data['rid'] = isset($comment_data['project_info']['rid']) ? $comment_data['project_info']['rid'] : 0;
+ unset ($comment_data['project_info']);
+ $comment_data = (object) $comment_data;
+ // Mark the node for email notification during hook_exit(), so all issue
+ // and file data is in a consistent state before we generate the email.
+ if (!isset($comment_data->followup_no_mail)) { // Temporary hack to get around sending of auto-close emails.
+ project_issue_set_mail_notify($comment_data->nid);
+ }
+ break;
+ case 'update':
+ $comment_data = (object) $comment_data;
+ break;
+ }
+
+ // In order to deal with deleted/unpublished comments, make sure that we're performing
+ // the updates to the issue with the latest available published comment.
+ $comment_data = project_issue_get_newest_comment($comment_data);
+
+ // Update the issue data to reflect the new final states.
+ db_query("UPDATE {project_issues} SET pid = %d, category = '%s', component = '%s', priority = %d, rid = %d, assigned = %d, sid = %d WHERE nid = %d", $comment_data->pid, $comment_data->category, $comment_data->component, $comment_data->priority, $comment_data->rid, $comment_data->assigned, $comment_data->sid, $comment_data->nid);
+
+ // Update the issue title.
+ $node = node_load($comment_data->nid, NULL, TRUE); // Don't use cached since we changed data above.
+ $node->title = $comment_data->title;
+
+ // This also updates the changed date of the issue.
+ node_save($node);
+
+ // Return the object of comment data we used to update the issue.
+ return $comment_data;
+}
+
+/**
+ * Adjusts the filepath of issue followups so files are saved to
+ * the correct issues directory.
+ *
+ * @param $comment
+ * An array of the submitted comment values.
+ */
+function project_issue_change_comment_upload_path(&$comment) {
+ static $run = NULL;
+
+ // Only for new comments with attachments.
+ if (empty($comment['cid']) && isset($comment['files']) && !isset($run)) {
+ $run = TRUE; // Make sure this only gets run once.
+ project_issue_rewrite_issue_filepath($comment['files']);
+ }
+}
+
+/**
+ * Retrieves the newest published comment for an issue.
+ *
+ * @param $comment_data
+ * An object representing the current comment being edited
+ * @return
+ * An object representing the most recent published comment for the issue.
+ */
+function project_issue_get_newest_comment($comment_data) {
+ // Get the cid of the most recent comment.
+ $latest_cid = db_result(db_query_range('SELECT pic.cid FROM {project_issue_comments} pic INNER JOIN {comments} c ON c.cid = pic.cid WHERE c.nid = %d AND c.status = %d ORDER BY pic.timestamp DESC', $comment_data->nid, COMMENT_PUBLISHED, 0, 1));
+ if ($latest_cid) {
+ $comment_data = db_fetch_object(db_query('SELECT * FROM {project_issue_comments} WHERE cid = %d', $latest_cid));
+ }
+ // No more comments on the issue -- use the original issue metadata.
+ else {
+ // nid isn't stored in the original issue data, so capture it here and pass back
+ // into the object.
+ $nid = $comment_data->nid;
+ $comment_data = unserialize(db_result(db_query("SELECT original_issue_data FROM {project_issues} WHERE nid = %d", $comment_data->nid)));
+ $comment_data->nid = $nid;
+ }
+ return $comment_data;
+}
+
+/**
+ * Test to determine if the active page is the comment reply form.
+ *
+ * @return
+ * TRUE if the active page is the comment reply form, FALSE otherwise.
+ */
+function project_issue_is_comment_reply() {
+ return arg(0) == 'comment' && arg(1) == 'reply';
+}
+
+/**
+ * Test to determine if the active page is the comment edit form.
+ *
+ * @return
+ * TRUE if the active page is the comment edit form, FALSE otherwise.
+ */
+function project_issue_is_comment_edit() {
+ return arg(0) == 'comment' && arg(1) == 'edit';
+}
+
+/**
+ * Appends the comment thread to the comment reply form.
+ */
+function project_issue_comment_pre_render($form) {
+ // Force the correct formatting.
+ $_GET['mode'] = COMMENT_MODE_FLAT_EXPANDED;
+ $_GET['sort'] = COMMENT_ORDER_OLDEST_FIRST;
+
+ $suffix = empty($form['#suffix']) ? '' : $form['#suffix'];
+ $node = node_load($form['nid']['#value']);
+
+ // Unfortunately, the comment module blindly puts the node view
+ // after the comment form on preview, in the case where the comment
+ // parent is 0. If we want our issue previews to be consistent, this
+ // ugly hack is necessary.
+ if (isset($form['#parameters'][1]['values']['op']) && $form['#parameters'][1]['values']['op'] == t('Preview')) {
+ $preview = comment_render($node, 0);
+ }
+ else {
+ $preview = node_show($node, 0);
+ }
+
+ $form['#suffix'] = $suffix . $preview;
+ return $form;
+}
Property changes on: sites/all/modules/project_issue/includes/comment.inc
___________________________________________________________________
Added: svn:keywords
+ Revision Date
Index: sites/all/modules/project_issue/includes/mail.inc
===================================================================
--- sites/all/modules/project_issue/includes/mail.inc (.../trunk) (revision 0)
+++ sites/all/modules/project_issue/includes/mail.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,660 @@
+type == 'project') {
+ if (node_access('create', 'project_issue')) {
+ $node->nid = preg_replace('/@.+/', '', $node->nid);
+
+ if ($node->nid) {
+ /*
+ ** Base the new entry on the node it belongs to, this ensures all
+ ** values are initially correct.
+ */
+ $entry = node_load(array('nid' => $node->nid, 'type' => 'project_issue'));
+ }
+
+ // Possible attributes
+ $fields = array(
+ 'pid' => t('Project'),
+ 'category' => t('Category'),
+ 'component' => t('Component'),
+ 'priority' => t('Priority'),
+ 'rid' => t('Version'),
+ 'assigned' => t('Assigned to'),
+ 'sid' => t('Status')
+ );
+
+ /*
+ ** Only change the title if it doesn't have the old title in it.
+ ** This should prevent the title from changing due to added
+ ** prefixes. It may on occasion make false positives, but if
+ ** a title change is that minor who cares?
+ */
+ $entry->title = (strpos($node->title, $entry->title)) ? $entry->title : $node->title;
+
+ $entry->teaser = $node->teaser;
+ $entry->body = $node->body;
+ $entry->uid = $node->uid;
+
+ foreach ($fields as $var => $text) {
+ $text = strtolower(str_replace(' ', '_', $text));
+ if (isset($node->project_issue[$text])) {
+ $node->project_issue[$text] = trim($node->project_issue[$text]);
+ switch ($var) {
+ case 'pid':
+ $project = node_load($node->project_issue[$text]);
+ if ($project->nid) {
+ $entry->project_issue['pid'] = $project->nid;
+ }
+ break;
+ case 'category':
+ if (($category = array_search($node->project_issue[$text], project_issue_category(0, 0)))) {
+ $entry->project_issue['category'] = $category;
+ }
+ break;
+ case 'priority':
+ if (($priority = array_search($node->project_issue[$text], project_issue_priority()))) {
+ $entry->project_issue['priority'] = $priority;
+ }
+ break;
+ case 'rid':
+ if ($entry->project_issue['pid'] && ($nid = db_result(db_query("SELECT nid FROM {project_release_nodes} WHERE pid = %d AND version = '%s'", $entry->project_issue['pid'], $node->project_issue[$text]), 0))) {
+ $entry->project_issue['rid'] = $nid;
+ }
+ break;
+ case 'assigned':
+ if ($user = user_load(array('name' => $node->project_issue[$text]))) {
+ $entry->project_issue['assigned'] = $user->uid;
+ }
+ break;
+ case 'sid':
+ if (($state = array_search($node->project_issue[$text], project_issue_state()))) {
+ $entry->project_issue['sid'] = $state;
+ }
+ break;
+ case 'component':
+ if ($entry->project_issue['pid'] && ($project = node_load(array('nid' => $entry->project_issue['pid'], 'type' => 'project_project')))) {
+ if ($project && in_array($node->project_issue[$text], $project->project_issue['components'])) {
+ $entry->project_issue['component'] = $node->project_issue[$text];
+ }
+ }
+ break;
+ }
+ }
+ }
+
+ if (empty($entry->nid)) {
+ $entry->sid = variable_get('project_issue_default_state', 1);
+ $entry->type = 'project_issue';
+ $entry = node_validate($entry, $error);
+ $error or ($entry->nid = node_save($entry));
+ }
+ else {
+ $error = project_comment_validate($entry);
+ $error or project_comment_save($entry);
+ }
+ }
+ else {
+ $error['user'] = t('You are not authorized to access this page.');
+ }
+
+ if ($error && $mailbox['replies']) {
+ // Send the user his errors
+ $mailto = mailhandler_get_fromaddress($header, $mailbox);
+ $mailfrom = variable_get('site_mail', ini_get('sendmail_from'));
+ $headers = array(
+ 'X-Mailer' => 'Drupal Project module (http://drupal.org/project/project)',
+ );
+
+ $body = t('You had some errors in your submission:');
+ foreach ($error as $field => $text) {
+ $body .= "\n * $field: $text";
+ }
+
+ drupal_mail('project_issue_mailhandler_error', $mailto, t('E-mail submission to !sn failed - !subj', array('!sn' => variable_get('site_name', 'Drupal'), '!subj' => $header->subject)), $body, $mailfrom, $headers);
+ }
+
+ // Return a NULL result so mailhandler doesn't save the node using the default methods.
+ return NULL;
+ }
+ else {
+ return $node;
+ }
+}
+
+function project_mail_urls($url = 0) {
+ static $urls = array();
+ if ($url) {
+ // If $url is an internal link (eg. '/project/project'), such
+ // as might be returned from the url() function with the
+ // $absolute parameter set to FALSE, we must remove
+ // the leading slash before passing this path through the url()
+ // function again, or otherwise we'll get two slashes in a row
+ // and thus a bad URL.
+ if (substr($url, 0, 1) == '/') {
+ $url = substr($url, 1);
+ }
+ $urls[] = strpos($url, '://') ? $url : url($url, array('absolute' => TRUE));
+ return count($urls);
+ }
+ return $urls;
+}
+
+function project_mail_output(&$body, $html = 1, $format = FILTER_FORMAT_DEFAULT) {
+ static $i = 0;
+
+ if ($html) {
+ $body = check_markup($body, $format, FALSE);
+ $pattern = '@]+ )*?href *= *"([^>"]+?)"[^>]*>([^<]+?)@ei';
+ $body = preg_replace($pattern, "'\\3 ['. project_mail_urls('\\2') .']'", $body);
+ $urls = project_mail_urls();
+ if (count($urls)) {
+ $body .= "\n";
+ for ($max = count($urls); $i < $max; $i++) {
+ $body .= '['. ($i + 1) .'] '. $urls[$i] ."\n";
+ }
+ }
+
+ $body = preg_replace('!?blockquote>!i', '"', $body);
+ $body = preg_replace('!?(em|i)>!i', '/', $body);
+ $body = preg_replace('!?(b|strong)>!i', '*', $body);
+ $body = preg_replace("@ (?!\n)@i", "\n", $body);
+ $body = preg_replace("@(?!\n\n)@i", "\n\n", $body);
+ $body = preg_replace("@
@i", "* ", $body);
+ $body = preg_replace("@
\n?@i", "\n", $body);
+ $body = strip_tags($body);
+ $body = decode_entities($body);
+ $body = wordwrap($body, 72);
+ }
+ else {
+ $body = decode_entities($body);
+ }
+}
+
+function project_mail_notify($nid) {
+ global $user;
+
+ if (defined('PROJECT_NOMAIL')) {
+ return;
+ }
+
+ $node = node_load($nid, NULL, TRUE);
+ $project = node_load(array('nid' => $node->project_issue['pid'], 'type' => 'project_project'));
+
+ // Store a copy of the issue, so we can load the original issue values
+ // below.
+ $issue = drupal_clone($node);
+
+ // Load in the original issue data here, since we want a running
+ // reverse history.
+ $original_issue_data = unserialize($node->project_issue['original_issue_data']);
+ $fields = project_issue_field_labels('email');
+ foreach ($fields as $field => $label) {
+ if ($field != 'name' && $field != 'updator') {
+ $issue->original_issue_metadata->$field = $original_issue_data->$field;
+ }
+ }
+
+ // Record users that are connected to this issue.
+ $uids = array();
+ if (!empty($node->uid)) {
+ $uids[$node->uid] = $node->uid;
+ }
+ if (!empty($node->project_issue['assigned'])) {
+ $uids[$node->project_issue['assigned']] = $node->project_issue['assigned'];
+ }
+
+ // Create complete history of the bug report.
+ $history = array($issue);
+ $result = db_query('SELECT u.name, c.cid, c.nid, c.subject, c.comment, c.uid, c.format, pic.* FROM {project_issue_comments} pic INNER JOIN {comments} c ON c.cid = pic.cid INNER JOIN {users} u ON u.uid = c.uid WHERE c.nid = %d AND c.status = %d ORDER BY pic.timestamp', $node->nid, COMMENT_PUBLISHED);
+
+ while ($comment = db_fetch_object($result)) {
+ $comment->comment = db_decode_blob($comment->comment);
+ $comment->files = comment_upload_load_files($comment->cid);
+ $history[] = $comment;
+ // Record users that are connected to this issue.
+ if ($comment->uid) {
+ $uids[$comment->uid] = $comment->uid;
+ }
+ }
+
+ if (count($uids)) {
+ $placeholders = implode(',', array_fill(0, count($uids), '%d'));
+ array_unshift($uids, $node->project_issue['pid']);
+ $result = db_query("SELECT p.*, u.uid, u.name, u.mail FROM {project_subscriptions} p INNER JOIN {users} u ON p.uid = u.uid WHERE u.status = 1 AND p.nid = %d AND (p.level = 2 OR (p.level = 1 AND u.uid IN ($placeholders)))", $uids);
+ }
+ else {
+ $result = db_query('SELECT p.*, u.uid, u.name, u.mail FROM {project_subscriptions} p INNER JOIN {users} u ON p.uid = u.uid WHERE u.status = 1 AND p.nid = %d AND p.level = 2', $node->project_issue['pid']);
+ }
+
+ // To save workload, check here if either the anonymous role or the
+ // authenticated role has the 'view uploaded files' permission, since
+ // we only need to process each user's file access permission if this
+ // is NOT the case.
+ $check_file_perms = !db_result(db_query("SELECT COUNT(*) FROM {permission} WHERE perm LIKE '%view uploaded files%' AND rid IN (%d, %d)", DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID));
+
+ // We need to determine if node_access() checks are necessary. The
+ // check will be needed if any of the following is true:
+ // 1. The node is not published.
+ // 2. There is at least on node access control module enabled.
+ // 3. Both the anonymous and authenticated user do not have
+ // the 'access project issues' permission.
+ $allowed_roles = user_roles(FALSE, 'access project issues');
+ if (isset($allowed_roles[DRUPAL_ANONYMOUS_RID]) || isset($allowed_roles[DRUPAL_AUTHENTICATED_RID])) {
+ $anon_auth_access = TRUE;
+ }
+ $grants = module_implements('node_grants');
+ $check_node_access = $node->status != 1 || !$anon_auth_access || !empty($grants);
+
+ $params['node'] = $node;
+ $params['project'] = $project;
+ $params['history'] = $history;
+
+ $sender->name = t('!name (!site)', array('!name' => $user->name, '!site' => variable_get('site_name', 'Drupal')));
+ $sender->mail = strtr(variable_get('project_issue_reply_to', variable_get('site_mail', ini_get('sendmail_from'))), array('%project' => $project->project['uri']));
+ // The sender name is enclosed by double quotes below
+ // to satisfy RFC2822 ,
+ // which requires double quotes when special characters (including
+ // some punctuation) are used. See example in Appendix A.1.2.
+ $from = '"' . mime_header_encode($sender->name) . "\" <$sender->mail>";
+
+ while ($recipient = db_fetch_object($result)) {
+ // To save work, only go through a user_load if we need it.
+ if ($check_file_perms || $check_node_access) {
+ $account = user_load(array('uid' => $recipient->uid));
+ $language = user_preferred_language($account);
+ }
+ else {
+ $language = language_default();
+ }
+
+ $can_access = $check_node_access ? node_access('view', $node, $account) : TRUE;
+
+ if ($can_access) {
+ $display_files = $check_file_perms ? user_access('view uploaded files', $account) : TRUE;
+
+ $params['display_files'] = $display_files;
+ drupal_mail('project_issue', 'project_issue_update_notification', $recipient->mail, $language, $params, $from);
+ }
+ }
+
+ if (is_array($project->project_issue['mail_copy_filter']) && count(array_filter($project->project_issue['mail_copy_filter'])) && !$project->project_issue['mail_copy_filter'][$node->project_issue['category']]) {
+ return;
+ }
+
+ if (is_array($project->project_issue['mail_copy_filter_state']) && count(array_filter($project->project_issue['mail_copy_filter_state'])) && !$project->project_issue['mail_copy_filter_state'][$node->project_issue['sid']]) {
+ return;
+ }
+
+ if (!empty($project->project_issue['mail_copy'])) {
+ $params['display_files'] = TRUE;
+ $message['body'][] = $links;
+ $message['body'][] = project_mail_generate_followup_mail_body($node, $history, TRUE);
+ drupal_mail('project_issue', 'project_issue_update_notification', $project->project_issue['mail_copy'], language_default(), $params, $from);
+ }
+}
+
+/*
+ * Implementation of hook_mail()
+ */
+function project_issue_mail($key, &$message, $params) {
+ global $base_url;
+
+ switch ($key) {
+ case "project_issue_update_notification":
+ // There could be stale data in the cached node, so reset the cache.
+ $node = $params['node'];
+ $project = $params['project'];
+ $history = $params['history'];
+ $fields = project_issue_field_labels('email');
+
+ $domain = preg_replace('|.+://([a-zA-Z0-9\._-]+).*|', '\1', $base_url);
+
+ $message['headers'] += array(
+ 'Date' => date('r'),
+ 'X-Mailer' => 'Drupal Project module (http://drupal.org/project/project)',
+ 'List-Id' => "$project->title <". $project->project['uri'] ."-issues-$domain>",
+ 'List-Archive' => '<'. url('project/issues/'. $project->project['uri'], array('absolute' => TRUE)) .'>',
+ 'List-Subscribe' => '<'. url('project/issues/subscribe-mail/'. $project->project['uri'], array('absolute' => TRUE)) .'>',
+ 'List-Unsubscribe' => '<'. url('project/issues/subscribe-mail/'. $project->project['uri'], array('absolute' => TRUE)) .'>'
+ );
+
+ // Comments exist, set headers accordingly.
+ if (count($history) > 1) {
+ foreach ($history as $comment) {
+ // We need the most recent cid and the next most recent cid for the
+ // message headers. Instead of issuing another query, just keep track
+ // of them here.
+ $previous_cid = isset($cid) ? $cid : '';
+ $cid = isset($comment->cid) ? $comment->cid : 0;
+ }
+ $message['headers']['Message-Id'] = "nid&cid=$cid&host=@$domain>";
+ $message['headers']['In-Reply-To'] = "nid&host=@$domain>";
+ $message['headers']['References'] = "nid&host=@$domain> nid&cid=$previous_cid&host=@$domain> nid&revcount=1&host=@$domain>";
+ } else {
+ // Only original issue in this email.
+ $message['headers']['Message-Id'] = "nid&host=@$domain>";
+ }
+
+ project_mail_output($node->title, 0);
+ $message['subject'] = t('[!short_name] [!category] !title', array('!short_name' => $project->project['uri'], '!category' => $node->project_issue['category'], '!title' => $node->title));
+
+ // Create link to related node
+ $links = t('Issue status update for !link', array('!link' => "\n". url("node/$node->nid", array('absolute' => TRUE)))) ."\n";
+ $links .= t('Post a follow up: !link', array('!link' => "\n". url("comment/reply/$node->nid", array('fragment' => 'comment-form', 'absolute' => TRUE)))) ."\n";
+ $message['body'][] = $links;
+ $message['body'][] = project_mail_generate_followup_mail_body($node, $history, $params['display_files']);
+
+ break;
+
+ case 'project_issue_critical_summary':
+ $project = $params['project'];
+ $message['headers'] += array(
+ 'Date' => date('r'),
+ 'X-Mailer' => 'Drupal Project Issues module (http://drupal.org/project/project_issue)',
+ 'List-Id' => "$project->title <". preg_replace('|.+://([a-zA-Z0-9\._-]+).*|', '\1', $base_url) .'-project-issues-digest>',
+ 'List-Archive' => '<'. url('project/issues', array('query' => array('priorities' => '1'), 'absolute' => TRUE)) .'>',
+ );
+ $message['subject'] = t('Release critical bugs for !date', array('!date' => date('F d, Y', time())));
+ $message['body'][] = $params['body'];
+ break;
+
+ case 'project_issue_reminder':
+ $sender->name = variable_get('site_name', '');
+ $sender->mail = variable_get('site_mail', '');
+ $message['headers'] += array(
+ 'Return-Path' => "<$sender->mail;>",
+ 'Date' => date('r'),
+ 'From' => "$sender->name <$sender->mail>",
+ 'X-Mailer' => 'Drupal Project Issues module (http://drupal.org/project/project_issue)',
+ 'List-Id' => "$sender->name ',
+ 'List-Archive' => '<'. url('project', array('absolute' => TRUE)) .'>',
+ );
+ $message['subject'] = t('Your submitted bugs for !date', array('!date' => date('F d, Y', time())));
+ $message['body'][] = $params['body'];
+ break;
+ }
+}
+
+/**
+ * Format the body of an issue followup email.
+ *
+ * @param $node
+ * The issue node.
+ * @param $history
+ * An array containing the history of issue followups.
+ * @param $display_files
+ * Boolean indicating if file attachments should be displayed.
+ * @return
+ * A string of the email body.
+ */
+function project_mail_generate_followup_mail_body($node, $history, $display_files) {
+ global $user;
+ static $output_with_files = NULL, $output_without_files = NULL;
+
+ // Return cached output if available.
+ if ($display_files) {
+ if (isset($output_with_files)) {
+ return $output_with_files;
+ }
+ }
+ else {
+ if (isset($output_without_files)) {
+ return $output_without_files;
+ }
+ }
+
+ // Get most recent update.
+ $entry = array_pop($history);
+
+ $node->project_issue['updator'] = $entry->name ? $entry->name : $user->name;
+
+ // Check if the latest entry is actually the initial issue.
+ if (empty($history)) {
+ $metadata_previous = new stdClass();
+ // Have to get the metadata into the entry object.
+ $metadata_entry = $entry->original_issue_metadata;
+ $content = $entry->body;
+ }
+ else {
+ $metadata_previous = end($history);
+ // If the previous was the original issue, then we need to pull
+ // out the metadata from project_issue.
+ if (isset($metadata_previous->original_issue_metadata)) {
+ $metadata_previous = $metadata_previous->original_issue_metadata;
+ }
+ $metadata_entry = $entry;
+ $content = $entry->comment;
+ }
+
+ $fields = project_issue_field_labels('email');
+ $comment_changes = project_issue_metadata_changes($node, $metadata_previous, $metadata_entry, $fields);
+
+ // Since $node->name will always be the original issue author, and since
+ // $node->project_issue['updator'] isn't a property of either $previous or
+ // $entry, these two properties will never show up as being different when
+ // project_issue_metadata_changes() is called, and therefore neither of
+ // these will ever be elements of the $comment_changes array. Since we do
+ // want them to be printed in issue emails, we just need to add their labels
+ // back into the $comment_changes array here, so that
+ // theme_project_issue_mail_summary_field() will know to print the data for
+ // these two fields.
+ $comment_changes['name'] = array(
+ 'label' => $fields['name'],
+ );
+ $comment_changes['updator'] = array(
+ 'label' => $fields['updator'],
+ );
+
+ $summary = theme('project_issue_mail_summary', $entry, $node, $comment_changes, $display_files);
+
+ // Create main body content
+ project_mail_output($content, 1, $entry->format);
+ $body = "$content\n$entry->name\n";
+
+ $hr = str_repeat('-', 72);
+
+ if (count($history)) {
+
+ $body .= "\n\n";
+ $body .= t('Original issue:') ."\n";
+ $body .= project_mail_format_entry(array_shift($history), $display_files, TRUE);
+ if (count($history)) {
+ $body .= "\n". t('Previous comments (!count):', array('!count' => count($history))) ."\n";
+ foreach ($history as $entry) {
+ $body .= project_mail_format_entry($entry, $display_files);
+ }
+ }
+ }
+
+ $output = "$summary\n$body";
+
+ // Set cached output.
+ if ($display_files) {
+ $output_with_files = $output;
+ }
+ else {
+ $output_without_files = $output;
+ }
+
+ return $output;
+}
+
+/**
+ * Themes the display of the issue metadata summary
+ * that is shown at the top of an issue emai.
+ *
+ * @param $entry
+ * The object representing the current entry. This will be a node object
+ * if the current entry is the original issue node; otherwise this will be
+ * a comment object.
+ * @param $node
+ * The original issue node object.
+ * @param $changes
+ * A nested array containing the metadata changes between the original
+ * issue and the first comment, or two consecutive comments. This array
+ * is the output of the project_issue_metadata_changes() function.
+ * @param $display_files
+ * Boolean indicating if file attachments should be displayed.
+ * @return
+ * A string containing the themed text of the issue metadata table.
+ */
+function theme_project_issue_mail_summary($entry, $node, $changes, $display_files) {
+ // Mail summary (status values).
+ $summary = '';
+ foreach ($changes as $field => $change) {
+ $summary .= theme('project_issue_mail_summary_field', $node, $field, $change);
+ }
+
+ $summary .= project_mail_format_attachments($entry, $display_files);
+ return $summary;
+}
+
+/**
+ * Theme the email output of one project issue metadata field.
+ *
+ * @param $node
+ * The project issue node object.
+ * @param $field_name
+ * The name of the field to theme.
+ * @param $change
+ * A nested array containing changes to project issue metadata
+ * for the given issue or comment.
+ * @return
+ * A themed line or lines of text ready for inclusion into the email body.
+ */
+function theme_project_issue_mail_summary_field($node, $field_name, $change) {
+ // We need to run the label name through strip_tags here so that
+ // the spacing isn't messed up if there are HTML tags in $change['label'].
+ $text = str_pad(strip_tags($change['label']). ':', 14);
+ $summary_row = '';
+ if (!empty($change['label']) && isset($change['old']) && isset($change['new']) && $field_name != 'updator' && $field_name != 'name') {
+ if (is_array($change['old']) || is_array($change['new'])) {
+ $removed = array();
+ if (is_array($change['old'])) {
+ foreach ($change['old'] as $item) {
+ $removed[] = '-'. $item;
+ }
+ }
+ elseif (!empty($change['old'])) {
+ $removed[] = '-'. $change['old'];
+ }
+
+ $added = array();
+ if (is_array($change['new'])) {
+ foreach ($change['new'] as $item) {
+ $added[] = '+'. $item;
+ }
+ }
+ elseif (!empty($change['new'])) {
+ $added[] = '+'. $change['new'];
+ }
+
+ $summary_row = " $text". trim(implode(', ', $removed). ' ' .implode(', ', $added)) ."\n";
+ }
+ else {
+ $summary_row .= "-$text". project_issue_change_summary($field_name, $change['old']) ."\n";
+ $summary_row .= "+$text". project_issue_change_summary($field_name, $change['new']) ."\n";
+ }
+ }
+ elseif (!empty($change['label'])) {
+ if (!empty($change['new'])) {
+ // This condition is necessary when building the first email message of an
+ // issue, since in this case $change['old'] should not exist.
+ if (is_array($change['new'])) {
+ $summary_row .= " $text". implode(', ', $change['new']) ."\n";
+ }
+ else {
+ $summary_row .= " $text". project_issue_change_summary($field_name, $change['new']) ."\n";
+ }
+ }
+ else {
+ // This condition is where fields that are stored in the $node object and
+ // which haven't changed but should be printed anyway get processed.
+ // For example, the project, category, etc. are printed in each email
+ // whether or not they have changed.
+ // @TODO: Should we really assume the field in is $node->project_issue[]?
+ if (isset($node->project_issue[$field_name])) {
+ $summary_row .= " $text". project_issue_change_summary($field_name, $node->project_issue[$field_name]) ."\n";
+ }
+ }
+ }
+ // HTML tags in the email will make it hard to read, so pass
+ // this output through strip_tags().
+ return strip_tags($summary_row);
+}
+
+/**
+ * Formats attachments for issue notification e-mails.
+ *
+ * @param $entry
+ * An issue or followup object containing the file data.
+ * @param $display_files
+ * Boolean indicating if file attachments should be displayed.
+ * @return
+ * A formatted string of file attachments.
+ */
+function project_mail_format_attachments($entry, $display_files) {
+ $output = '';
+ if ($display_files && is_array($entry->files)) {
+ foreach ($entry->files as $file) {
+ // Comment upload has it's files in an array, so cast to an object
+ // for consistency.
+ $file = (object) $file;
+ $output .= ' '. str_pad(t('Attachment') .':', 14) . file_create_url($file->filepath) .' ('. format_size($file->filesize) .")\n";
+ }
+ }
+ return $output;
+}
+
+/**
+ * Format an issue entry for display in an email.
+ *
+ * @param entry
+ * The entry to the formatted.
+ * @param $display_files
+ * Boolean indicating if file attachments should be displayed.
+ * @param is_original
+ * Whether this entry is the original issue or a followup. Followup issues
+ * will be automatically numbered.
+ * @return
+ * Formatted text for the entry.
+ */
+function project_mail_format_entry($entry, $display_files, $is_original = FALSE) {
+ static $history_count = 1;
+ $hr = str_repeat('-', 72);
+ $output = "$hr\n";
+
+ // Nodes and comments have different stamp fields.
+ $timestamp = isset($entry->created) ? $entry->created : $entry->timestamp;
+
+ if (!$is_original) {
+ $output .= "$entry->subject -- ";
+ }
+
+ $output .= format_date($timestamp, 'large') ." : $entry->name\n";
+
+ if (!$is_original) {
+ $output .= url("node/$entry->nid", array('fragment' => "comment-$entry->cid", 'absolute' => TRUE)) ."\n";
+ }
+
+ $output .= project_mail_format_attachments($entry, $display_files);
+
+ // Must distinguish between nodes and comments -- here we do it
+ // by looking for a revision ID.
+ if (empty($entry->vid)) {
+ $content = $entry->comment;
+ }
+ else {
+ $content = $entry->body;
+ }
+
+ project_mail_output($content, 1, $entry->format);
+
+ if ($content) {
+ $output .= "\n$content";
+ }
+ return $output;
+}
+
Property changes on: sites/all/modules/project_issue/includes/mail.inc
___________________________________________________________________
Added: svn:keywords
+ Revision Date
Index: sites/all/modules/project_issue/includes/issue_cockpit.inc
===================================================================
--- sites/all/modules/project_issue/includes/issue_cockpit.inc (.../trunk) (revision 0)
+++ sites/all/modules/project_issue/includes/issue_cockpit.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,81 @@
+project['uri'];
+ $adv_search_path = 'project/issues/search/' . $node->project['uri'];
+ return array(
+ '#action' => url($search_path),
+ '#method' => 'get',
+ 'text' => array(
+ '#type' => 'textfield',
+ '#size' => 20,
+ ),
+ 'status' => array(
+ '#type' => 'hidden',
+ '#value' => 'All',
+ ),
+ 'submit' => array(
+ '#type' => 'submit',
+ '#value' => t('Search'),
+ '#name' => '',
+ ),
+ 'advanced' => array(
+ '#value' => l(t('Advanced search'), $adv_search_path),
+ ),
+ );
+}
+
+/**
+ * Theme template preprocess to declare variables for the issue cockpit.
+ */
+function template_preprocess_project_issue_issue_cockpit(&$vars) {
+ $node = $vars['node'];
+
+ // Flags that indicate what kind of access to project issues to allow.
+ $has_issues = !empty($node->project_issue['issues']);
+ $vars['view_issues'] = $has_issues && (user_access('access project issues') || user_access('access own project issues') || user_access('administer projects'));
+ $vars['make_issues'] = $has_issues && node_access('create', 'project_issue');
+
+ if ($vars['view_issues']) {
+ $open_states = '('. implode(',', array_keys(project_issue_state(0, FALSE, FALSE, 0, TRUE))) .')';
+
+ $vars['path'] = 'project/issues/'. $node->project['uri'];
+ $vars['form'] = drupal_get_form('project_issue_issue_cockpit_searchbox', $node);
+
+ $vars['categories'] = array();
+ $categories = array('All' => t('All issues')) + project_issue_category();
+ $setting = variable_get('project_issue_cockpit_categories', array('All' => 'All', 'bug' => 'bug'));
+ $active_categories = array_intersect_key($categories, array_filter($setting));
+ foreach ($active_categories as $category => $name) {
+ $vars['categories'][$category] = array('name' => $name, 'open' => 0, 'total' => 0);
+ }
+
+ if (isset($vars['categories']['All'])) {
+ $vars['categories']['All']['open'] = db_result(db_query(db_rewrite_sql('SELECT count(*) FROM {node} n INNER JOIN {project_issues} i ON n.nid = i.nid WHERE n.status = 1 AND i.pid = %d AND i.sid IN '. $open_states), $node->nid));
+ $vars['categories']['All']['total'] = db_result(db_query(db_rewrite_sql('SELECT count(*) FROM {node} n INNER JOIN {project_issues} i ON n.nid = i.nid WHERE n.status = 1 AND i.pid = %d'), $node->nid));
+ }
+
+ $result = db_query(db_rewrite_sql('SELECT count(*) AS open, i.category FROM {node} n INNER JOIN {project_issues} i ON n.nid = i.nid WHERE n.status = 1 AND i.pid = %d AND i.sid IN '. $open_states .' GROUP BY i.category'), $node->nid);
+ while ($category = db_fetch_object($result)) {
+ if (isset($vars['categories'][$category->category])) {
+ $vars['categories'][$category->category]['open'] = $category->open;
+ }
+ }
+
+ $result = db_query(db_rewrite_sql('SELECT count(*) AS total, i.category FROM {node} n INNER JOIN {project_issues} i ON n.nid = i.nid WHERE n.status = 1 AND i.pid = %d GROUP BY i.category'), $node->nid);
+ while ($category = db_fetch_object($result)) {
+ if (isset($vars['categories'][$category->category])) {
+ $vars['categories'][$category->category]['total'] = $category->total;
+ }
+ }
+
+ $vars['issue_subscribe'] = l(t('Subscribe via e-mail'), 'project/issues/subscribe-mail/'. $node->project['uri'], array('query' => drupal_get_destination()));
+ $vars['issue_statistics'] = l(t('Issue statistics'), 'project/issues/statistics/'. $node->project['uri']);
+ $vars['oldest'] = db_result(db_query(db_rewrite_sql('SELECT min(n.created) FROM {node} n INNER JOIN {project_issues} i ON n.nid = i.nid WHERE n.status = 1 AND i.pid = %d AND i.sid IN '. $open_states), $node->nid));
+ }
+}
+
Index: sites/all/modules/project_issue/includes/project_edit_issues.inc
===================================================================
--- sites/all/modules/project_issue/includes/project_edit_issues.inc (.../trunk) (revision 0)
+++ sites/all/modules/project_issue/includes/project_edit_issues.inc (.../branches/drupal6) (revision 1945)
@@ -0,0 +1,292 @@
+title));
+ return drupal_get_form('project_issue_project_edit_form', $node);
+}
+
+/**
+ * Theme function to render the issue subtab form.
+ */
+function theme_project_issue_project_edit_form($form) {
+ drupal_add_tabledrag('project-issue-edit-project-components-table', 'order', 'self', 'project-issue-component-weight');
+
+ $header = array(
+ array('data' => t('Name')),
+ array('data' => t('Weight')),
+ array('data' => t('Operations'))
+ );
+ // List the existing components.
+ foreach (element_children($form['component']) as $key) {
+ $rows[] = array(
+ 'class' => 'draggable',
+ 'data' => array(
+ drupal_render($form['component'][$key]['name']),
+ drupal_render($form['component'][$key]['weight']),
+ drupal_render($form['component'][$key]['delete']),
+ ),
+ );
+ }
+ // Add a row to add a new component.
+ $rows[] = array(
+ 'class' => 'draggable',
+ 'data' => array(
+ drupal_render($form['component_add']['name']),
+ drupal_render($form['component_add']['weight']),
+ NULL,
+ ),
+ );
+
+ $output = drupal_render($form['issue']);
+ $output .= drupal_render($form['email']);
+ $output .= '