+
+
+EOT;
+ return $output;
+}
Index: modules/panels/panels.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/panels.install,v
retrieving revision 1.1.4.4
diff -u -r1.1.4.4 panels.install
--- modules/panels/panels.install 3 Apr 2007 16:36:05 -0000 1.1.4.4
+++ modules/panels/panels.install 8 Jan 2008 23:20:00 -0000
@@ -2,83 +2,107 @@
// $Id: panels.install,v 1.1.4.4 2007/04/03 16:36:05 merlinofchaos Exp $
/**
- * Install the panels tables
+ * Implementation of hook_install().
*/
function panels_install() {
- switch ($GLOBALS['dbtype']) {
- case 'pgsql':
- db_query(<< 'serial', 'not null' => TRUE));
+ return $ret;
}
+
+/**
+ * Implementation of hook_schema().
+ */
+function panels_schema() {
+
+ $schema['panels_info'] = array(
+ 'fields' => array(
+ 'did' => array(
+ 'description' => t('Primary key: Unique panel ID.'),
+ 'type' => 'serial',
+ 'not null' => TRUE,
+ ),
+ 'title' => array(
+ 'description' => t('Title of this panel.'),
+ 'type' => 'varchar',
+ 'length' => '128',
+ 'not null' => FALSE
+ ),
+ 'access' => array(
+ 'description' => t('List of roles that will be able to see this panel in any form.'),
+ 'type' => 'varchar',
+ 'length' => '128',
+ 'not null' => FALSE
+ ),
+ 'path' => array(
+ 'description' => t('The URL path to give this page.'),
+ 'type' => 'varchar',
+ 'length' => '128',
+ 'not null' => FALSE
+ ),
+ 'css_id' => array(
+ 'description' => t('The CSS ID to apply to this page.'),
+ 'type' => 'varchar',
+ 'length' => '128',
+ 'not null' => FALSE
+ ),
+ 'layout' => array(
+ 'description' => t('Name of layout used by the panel.'),
+ 'type' => 'varchar',
+ 'length' => '32',
+ 'not null' => FALSE
+ )
+ ),
+ 'primary key' => array('did'),
+ );
+
+ $schema['panels_area'] = array(
+ 'fields' => array(
+ 'did' => array(
+ 'description' => t('Unique panel ID.'),
+ 'type' => 'int',
+ 'not null' => TRUE,
+ 'default' => 0,
+ ),
+ 'area' => array(
+ 'type' => 'varchar',
+ 'length' => '32',
+ 'not null' => FALSE
+ ),
+ 'type' => array(
+ 'description' => t('Content area name'),
+ 'type' => 'varchar',
+ 'length' => '32',
+ 'not null' => FALSE
+ ),
+ 'configuration' => array(
+ 'type' => 'text',
+ 'size' => 'big',
+ 'not null' => FALSE
+ ),
+ 'position' => array(
+ 'type' => 'int',
+ 'not null' => FALSE,
+ )
+ ),
+ 'indexes' => array(
+ 'did' => array('did')
+ ),
+ );
+
+ return $schema;
+}
\ No newline at end of file
Index: modules/panels/panels.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/panels.info,v
retrieving revision 1.2.2.1
diff -u -r1.2.2.1 panels.info
--- modules/panels/panels.info 18 Jun 2007 23:06:56 -0000 1.2.2.1
+++ modules/panels/panels.info 8 Jan 2008 23:20:00 -0000
@@ -1,4 +1,4 @@
; $Id: panels.info,v 1.2.2.1 2007/06/18 23:06:56 dww Exp $
name = Panels
description = Create pages that are divided into areas of the page.
-
+core = 6.x
Index: modules/panels/API.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/API.txt,v
retrieving revision 1.2
diff -u -r1.2 API.txt
--- modules/panels/API.txt 26 Jul 2006 16:53:40 -0000 1.2
+++ modules/panels/API.txt 8 Jan 2008 23:20:00 -0000
@@ -1,125 +1,125 @@
-The API for expanding the panels module comes in two pieces. First there is the
-layout API, which adds to the list of layouts you need. Second is the content
-types API, which lets modules supply content to the panels. Natively, panels
-module supports the content types of 'block', which just renders the output
-of a block, 'node' which simply renders a node_view, 'custom' which allows the
-user to enter custom content with filtering, and finally 'views' because I
-wrote them both.
-
-Where to put your code:
-=======================
-
-With both types, there are two ways to implement a new type. First, you can
-implement the hook in your module and provide the necessary data. Or you
-can create a .inc file in the right format, and drop it into the proper
-directory in the panels module. Both are very similar, and only requires
-a minor naming adjustment.
-
-When using the .inc file, in place of 'hook' in the various hooks, use
-panels_FILENAME.
-
-Creating a new Layout Type:
-===========================
-
-A layout consists of 4 things:
-
-1) A bit of HTML in a theme function. I use heredoc notation to make it
- extra easy to convert these to .tpl.inc files in case they are to
- be overridden in php template.
-2) A bit of CSS to describe how the layout should be, well, laid out.
-3) An icon that is 50x75 which gives the user a visual indication of
- what the layout looks like.
-4) An implementation of hook_panels_layouts() to tell panels the necessary
- information.
-
-hook_panels_layouts returns an array with the following information:
-
-'module' => The module name providing this. This is necessary because it
- uses drupal_get_path('module', $module) to get the proper
- path for included CSS.
-'title' => The title of the layout presented to the user. Use t().
-'icon' => The filename of the icon to use when listing avialable layouts.
-'theme' => The theme function that contains the HTML, without the theme_
- part.
-'css' => The CSS file.
-'content areas' => an array in the form of 'name' => t('Title') of content
- areas supported by the layout. For example, the simple
- 2 column layout uses array('left' => t('Left side'),
- 'right' => t('Right side')); -- the name is the internal
- identifier. Your theme function will see it as
- $content['name'] (so twocol gets $content['left'] and
- $content['right']).
-
-
-Creating a new Content Type:
-============================
-
-Content types require 1 hook and two callbacks. The hook defines what content
-types are available, the first callback displays the content in a dashboard,
-and the other callback does all of the administrative functions.
-
-hook_panels_content_types returns an array with the following information:
-'callback' => The function to display the content.
-'admin' => The function to administer the content.
-
-The callback function receives one argument: The $configuration array, as
-defined by the administrative callback.
-
-The administrative callback recieves 3 arguments:
-
-$op -- the operation to perform. See below.
-&$arg1 -- The first argument should be a reference and its meaning varies
- based on the op.
-$arg2 -- The second argument is optional, not a reference, and should
- default to NULL.
-
-Administrative operations:
-
-'list': $arg1 is the configuration array.
- This op is called when panels lists what content is in a content
- area. It generally returns something similar to this:
- return 'Views: ' . $view->name . ' (' . $view->description . ')';
-
-'add button': arguments not used here.
- This op is called to display the 'add content type' button; it can also
- display additional information (such as the list of blocks or the
- autocomplete to select a node).
-
- The actual button should look something like this:
- $form['submit'] = array(
- '#type' => 'button',
- '#value' => t('Add view'),
- );
-
- And it's a good idea to do this, but it's not required:
-
- $form['#prefix'] = '
';
- $form['#suffix'] = '
';
-
-'add': $arg1 == the $configuration array
- This op is called to see if your add button has been clicked. It *must*
- start off by checking to see if this is true:
-
- if ($_POST['op'] != t('Add view')) {
- return;
- }
-
- If it is true, it should process that information and return a $configuration
- array populated from whatever other form items were presented in 'add button'
- and whatever defaults make sense.
-
-'edit': $arg1 == the $configuration array
- This op is called to provide an edit form for a content type. It *must*
- ensure *all* information from the conf array is available, even if it
- is just hidden; panels has no way to remember this data between form
- clicks, so any data not put here will be lost. No buttons need to be
- added to the form.
-
-'validate': $arg1 == $form_values, $arg2 == $form
- Called to validate the 'edit' form above.
-
-'save': $arg1 == $form_values
- Called to convert a $form_values back into a $configuration array. All
- of the default types just send $form_values back as $configuration,
- but if you need to do some kind of transformation, this is where it
- happens.
+The API for expanding the panels module comes in two pieces. First there is the
+layout API, which adds to the list of layouts you need. Second is the content
+types API, which lets modules supply content to the panels. Natively, panels
+module supports the content types of 'block', which just renders the output
+of a block, 'node' which simply renders a node_view, 'custom' which allows the
+user to enter custom content with filtering, and finally 'views' because I
+wrote them both.
+
+Where to put your code:
+=======================
+
+With both types, there are two ways to implement a new type. First, you can
+implement the hook in your module and provide the necessary data. Or you
+can create a .inc file in the right format, and drop it into the proper
+directory in the panels module. Both are very similar, and only requires
+a minor naming adjustment.
+
+When using the .inc file, in place of 'hook' in the various hooks, use
+panels_FILENAME.
+
+Creating a new Layout Type:
+===========================
+
+A layout consists of 4 things:
+
+1) A bit of HTML in a theme function. I use heredoc notation to make it
+ extra easy to convert these to .tpl.inc files in case they are to
+ be overridden in php template.
+2) A bit of CSS to describe how the layout should be, well, laid out.
+3) An icon that is 50x75 which gives the user a visual indication of
+ what the layout looks like.
+4) An implementation of hook_panels_layouts() to tell panels the necessary
+ information.
+
+hook_panels_layouts returns an array with the following information:
+
+'module' => The module name providing this. This is necessary because it
+ uses drupal_get_path('module', $module) to get the proper
+ path for included CSS.
+'title' => The title of the layout presented to the user. Use t().
+'icon' => The filename of the icon to use when listing avialable layouts.
+'theme' => The theme function that contains the HTML, without the theme_
+ part.
+'css' => The CSS file.
+'content areas' => an array in the form of 'name' => t('Title') of content
+ areas supported by the layout. For example, the simple
+ 2 column layout uses array('left' => t('Left side'),
+ 'right' => t('Right side')); -- the name is the internal
+ identifier. Your theme function will see it as
+ $content['name'] (so twocol gets $content['left'] and
+ $content['right']).
+
+
+Creating a new Content Type:
+============================
+
+Content types require 1 hook and two callbacks. The hook defines what content
+types are available, the first callback displays the content in a dashboard,
+and the other callback does all of the administrative functions.
+
+hook_panels_content_types returns an array with the following information:
+'callback' => The function to display the content.
+'admin' => The function to administer the content.
+
+The callback function receives one argument: The $configuration array, as
+defined by the administrative callback.
+
+The administrative callback recieves 3 arguments:
+
+$op -- the operation to perform. See below.
+&$arg1 -- The first argument should be a reference and its meaning varies
+ based on the op.
+$arg2 -- The second argument is optional, not a reference, and should
+ default to NULL.
+
+Administrative operations:
+
+'list': $arg1 is the configuration array.
+ This op is called when panels lists what content is in a content
+ area. It generally returns something similar to this:
+ return 'Views: ' . $view->name . ' (' . $view->description . ')';
+
+'add button': arguments not used here.
+ This op is called to display the 'add content type' button; it can also
+ display additional information (such as the list of blocks or the
+ autocomplete to select a node).
+
+ The actual button should look something like this:
+ $form['submit'] = array(
+ '#type' => 'button',
+ '#value' => t('Add view'),
+ );
+
+ And it's a good idea to do this, but it's not required:
+
+ $form['#prefix'] = '
';
+ $form['#suffix'] = '
';
+
+'add': $arg1 == the $configuration array
+ This op is called to see if your add button has been clicked. It *must*
+ start off by checking to see if this is true:
+
+ if ($_POST['op'] != t('Add view')) {
+ return;
+ }
+
+ If it is true, it should process that information and return a $configuration
+ array populated from whatever other form items were presented in 'add button'
+ and whatever defaults make sense.
+
+'edit': $arg1 == the $configuration array
+ This op is called to provide an edit form for a content type. It *must*
+ ensure *all* information from the conf array is available, even if it
+ is just hidden; panels has no way to remember this data between form
+ clicks, so any data not put here will be lost. No buttons need to be
+ added to the form.
+
+'validate': $arg1 == $form_values, $arg2 == $form
+ Called to validate the 'edit' form above.
+
+'save': $arg1 == $form_values
+ Called to convert a $form_values back into a $configuration array. All
+ of the default types just send $form_values back as $configuration,
+ but if you need to do some kind of transformation, this is where it
+ happens.
Index: modules/panels/README.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/README.txt,v
retrieving revision 1.4.4.1
diff -u -r1.4.4.1 README.txt
--- modules/panels/README.txt 15 Mar 2007 19:16:32 -0000 1.4.4.1
+++ modules/panels/README.txt 8 Jan 2008 23:20:00 -0000
@@ -1,26 +1,26 @@
-The panels module is the ideological son, successor to and almost complete
-replacement for the dashboard module. This module allows you to create pages
-that are divided into areas of the page. Where the dashboard module only gave
-four areas--top, bottom, left and right--this one is a completely flexible
-system that includes a couple of 2 column and 3 column layouts by default, but
-is also highly extensible and other layouts can be plugged in with a little HTML
-and CSS knowledge, with just enough PHP knowledge to be able to edit an include
-file without breaking it.
-
-Perhaps most importantly, unlike the dashboard module it requires no fiddling
-with PHP code to include the things you want; the interface lets you add blocks,
-nodes and custom content just by selecting and clicking.
-
-If you want to override the CSS of a panel, the easiest way is to just copy
-the CSS into your theme directory and tweak; panels will look there before
-including the CSS from the module, and if it exists, will not include the
-module's CSS. If you want to just change a tiny bit but keep the basic
-structure, just add your changes to your style.css instead.
-
-If you're having problems with IE and your panels falling below your sidebars,
-try setting the width of the main panel area (example, .panel-2col-stacked) to
-98%.
-
-If you need to check if the current page is a panels page in your theme
-(for example if you want to hide some existing sidebars in your theme on
+The panels module is the ideological son, successor to and almost complete
+replacement for the dashboard module. This module allows you to create pages
+that are divided into areas of the page. Where the dashboard module only gave
+four areas--top, bottom, left and right--this one is a completely flexible
+system that includes a couple of 2 column and 3 column layouts by default, but
+is also highly extensible and other layouts can be plugged in with a little HTML
+and CSS knowledge, with just enough PHP knowledge to be able to edit an include
+file without breaking it.
+
+Perhaps most importantly, unlike the dashboard module it requires no fiddling
+with PHP code to include the things you want; the interface lets you add blocks,
+nodes and custom content just by selecting and clicking.
+
+If you want to override the CSS of a panel, the easiest way is to just copy
+the CSS into your theme directory and tweak; panels will look there before
+including the CSS from the module, and if it exists, will not include the
+module's CSS. If you want to just change a tiny bit but keep the basic
+structure, just add your changes to your style.css instead.
+
+If you're having problems with IE and your panels falling below your sidebars,
+try setting the width of the main panel area (example, .panel-2col-stacked) to
+98%.
+
+If you need to check if the current page is a panels page in your theme
+(for example if you want to hide some existing sidebars in your theme on
these pages) then you can use the panels_is_panels_page() function.
\ No newline at end of file
Index: modules/panels/panels.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/panels.module,v
retrieving revision 1.10.2.9
diff -u -r1.10.2.9 panels.module
--- modules/panels/panels.module 15 Mar 2007 23:13:41 -0000 1.10.2.9
+++ modules/panels/panels.module 8 Jan 2008 23:20:00 -0000
@@ -4,13 +4,11 @@
/**
* Implementation of hook_help()
*/
-function panels_help($section = '') {
- switch ($section) {
+function panels_help($path, $arg) {
+ switch ($path) {
case 'admin/build/panels':
case 'admin/build/panels/list':
- return t('
You may peruse a list of your current panels layouts and edit them, or click add to create a new page.
');
- case 'admin/build/panels/add':
- return t('
Choose a layout for your new page from the list below.
');
+ return '
'. t('You may peruse a list of your current panels layouts and edit them, or click add to create a new page.'). '
',
- );
-
- $form['info']['layout-display'] = array(
- '#value' => 'Layout: ' . $layout['title'],
- );
-
- $form['info']['title'] = array(
- '#type' => 'textfield',
- '#default_value' => $panels->title,
- '#title' => t('Page title'),
- '#description' => t('The page title for this panels layout'),
- );
-
- $form['info']['css_id'] = array(
- '#type' => 'textfield',
- '#default_value' => $panels->css_id,
- '#title' => t('CSS ID'),
- '#description' => t('The CSS ID to apply to this page'),
- );
-
- $rids = array();
- $result = db_query("SELECT r.rid, r.name FROM {role} r ORDER BY r.name");
- while ($obj = db_fetch_object($result)) {
- $rids[$obj->rid] = $obj->name;
- }
-
- $form['info']['access'] = array(
- '#type' => 'checkboxes',
- '#title' => t('Access'),
- '#default_value' => $panels->access,
- '#options' => $rids,
- '#description' => t('Only the checked roles will be able to see this panel in any form; if no roles are checked, access will not be restricted.'),
- );
-
- $form['info']['path'] = array(
- '#type' => 'textfield',
- '#default_value' => $panels->path,
- '#title' => t('Path'),
- '#description' => t('The URL path to give this page, i.e, path/to/page'),
- '#required' => TRUE,
- );
+function panels_theme() {
- $form['content'] = array(
- '#tree' => true,
+ // Static array of theme functions.
+ $theme_registry_static = array(
+ 'panels_imagebutton' => array(
+ 'arguments' => array('element'),
+ ),
+ 'panels_add_image' => array(
+ 'arguments' => array('title', 'id', 'image'),
+ ),
+ 'panels_edit_form' => array(
+ 'arguments' => array('form'),
+ ),
+ 'panels_content_custom' => array(
+ 'arguments' => array('title', 'body', 'css_id', 'css_class'),
+ ),
+ 'panels_content_views' => array(
+ 'arguments' => array('content', 'title'),
+ ),
);
-
- // Go through our content areas and display what we have.
- foreach ($layout['content areas'] as $area => $title) {
- $list = array();
- $form['content'][$area] = array(
- '#tree' => true,
- );
-
- // Construct the order, feeding it the default order for what
- // we know about. When we pull it back out, it may well be
- // different due to past submits.
- $order = array();
- if (is_array($panels->content[$area])) {
- $order = array_keys($panels->content[$area]);
- }
- $form['content'][$area]['order'] = array(
- '#type' => 'hidden',
- '#default_value' => serialize($order),
- '#parents' => array('content', $area, 'order'),
- );
-
- // If an add button has added an item to the area, put it in and update
- // the $order.
- panels_form_builder($form['content'][$area]['order']);
- $order = unserialize($form['content'][$area]['order']['#value']);
- if ($add->area == $area) {
- // say THIS 5 times real fast
- if ($panels->content[$area] && $order) {
- $position = max(max(array_keys($order)), max(array_keys($panels->content[$area]))) + 1;
- }
- else if ($order) {
- $position = max(array_keys($order)) + 1;
- }
- else {
- $position = 0;
- }
-
- $panels->content[$area][$position] = $add;
- $order[] = $position;
- $form['content'][$area]['order']['#value'] = serialize($order);
- }
-
- // Go through each item in the area and render it.
- $count = count($order);
- foreach ($order as $position => $id) {
- // place buttons to re-order content.
- $form['content'][$area][$id]['buttons'] = array(
- '#parents' => array('content', $area, $id, 'buttons'),
- '#tree' => TRUE
- );
- panels_add_buttons($form['content'][$area][$id]['buttons'], $count, $position);
-
- // figure out if one of those buttons was pressed
- panels_form_builder($form['content'][$area][$id]['buttons']);
- $deleted = false;
- foreach ($GLOBALS['form_values']['content'][$area][$id]['buttons'] as $button => $value) {
- if ($value) {
- $function = 'panels_move_' . $button;
- $function($order, $position);
- $form['content'][$area]['order']['#value'] = serialize($order);
- if ($button == 'delete')
- $deleted = true;
- }
- }
- // If a content item was deleted, it still has buttons. Get rid of them.
- // It had buttons because we needed to give it buttons to see if its
- // buttons were clicked.
- if ($deleted) {
- unset($form['content'][$area][$id]['buttons']);
- }
- else {
- // we finally get to add the conent item's content to the form.
- $area_record = $panels->content[$area][$id];
- $form['content'][$area][$id]['type'] = array(
- '#type' => 'hidden',
- '#default_value' => $area_record->type,
- '#parents' => array('content', $area, $id, 'type'),
- );
- // retrieve what was already there -- so we can retain edits and
- // content items that were added.
- panels_form_builder($form['content'][$area][$id]['type']);
- $type = $form['content'][$area][$id]['type']['#value'];
- $function = $content_types[$type]['admin'];
- if (function_exists($function)) {
- $array = array(
- '#tree' => true,
- '#parents' => array('content', $area, $id, 'configuration'),
- );
- $form['content'][$area][$id]['configuration'] = array_merge($array, $function('edit', $area_record->configuration, array('content', $area, $id, 'configuration')));
- panels_form_builder($form['content'][$area][$id]['configuration']);
- }
- }
- }
- }
-
- $form['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Save'),
- );
-
- return $form;
-}
-
-/**
- * Display the form to edit a panels.
- */
-function theme_panels_edit_form($form) {
- $layouts = panels_get_layouts();
- $layout = $layouts[$form['layout']['#value']];
-
- $content_types = panels_get_content_types();
-
- $output .= drupal_render($form['info']);
- foreach ($layout['content areas'] as $area => $title) {
- $order = unserialize($form['content'][$area]['order']['#value']);
- if (!$order) {
- $area_content = t('This area has no content.');
- }
- else {
- $area_content = '';
- $count = count($order);
- foreach ($order as $position => $id) {
- if ($count > 1) {
- if ($position == 0 ) {
- panels_set_blank($form['content'][$area][$id]['buttons']['up']);
- }
- else if ($position == ($count - 1)) {
- panels_set_blank($form['content'][$area][$id]['buttons']['down']);
- }
- }
- $type = $form['content'][$area][$id]['type']['#value'];
- $function = $content_types[$type]['admin'];
- if (function_exists($function)) {
- // figure out the actual values; using the global because we need it
- // to be in the same format it'll be in 'submit'.
- global $form_values;
- $conf_form = $form_values['content'][$area][$id]['configuration'];
- $conf = $function('save', $conf_form);
- $fieldset = array(
- '#title' => t('Configure'),
- '#children' => drupal_render($form['content'][$area][$id]['configuration']),
- '#collapsible' => true,
- '#collapsed' => true
- );
- $buttons = drupal_render($form['content'][$area][$id]['buttons']);
- $area_content .= $buttons . ' ' . $function('list', $conf) .
- theme('fieldset', $fieldset) /* . ' ' */;
- }
- }
- }
- $content[$area] = theme('fieldset', array('#title' => check_plain($title), '#value' => $area_content));
- }
-
- $output .= panels_get_layout($layout, $content);
-
- $output .= drupal_render($form);
- return $output;
-}
-
-function panels_edit_form_validate($form_id, $form_values, $form) {
- $content_types = panels_get_content_types();
- foreach ($form_values['content'] as $area => $content) {
- foreach ($content as $id => $item) {
- if (is_numeric($id)) {
- $function = $content_types[$item['type']]['admin'];
- if (function_exists($function)) {
- $function('validate', $item['configuration'], $form['content'][$area][$id]['configuration']);
- }
- }
- }
- }
-}
-function panels_edit_form_submit($form_id, $form_values) {
- $panels = (object) $form_values;
- // be sure we get the order right.
- foreach ($form_values['content'] as $area => $content) {
- $array = array();
- $order = unserialize($content['order']);
- if (is_array($order)) {
- foreach($order as $id) {
- $array[] = $content[$id];
- }
- }
- $panels->content[$area] = $array;
+ // Read the theme functions from layout templates.
+ $layouts = _panels_get_layouts();
+ $theme_registry_dynamic = array();
+ foreach ($layouts as $layout => $value) {
+ $theme_registry_dynamic['panels_'. $layout] = array('arguments' => array('id','content'));
}
- $panels->access = array_keys(array_filter($panels->access));
- panels_save_panels($panels);
- drupal_set_message(t('The panels has been saved.'));
- return 'admin/build/panels';
-}
-
-/**
- * add the buttons to a content item
- */
-function panels_add_buttons(&$form, $count, $position) {
- $form['delete'] = panels_add_button('user-trash.png', 'delete', t('Delete this item'));
- // Leaving these in but commented out as I'm not convinced we don't want them.
-// if ($count > 2) {
-// $form['top'] = panels_add_button('go-top.png', 'top', t('Move item to top'));
-// }
- if ($count > 1) {
- $form['up'] = panels_add_button('go-up.png', 'up', t('Move item up'));
- $form['down'] = panels_add_button('go-down.png', 'down', t('Move item down'));
- }
-// if ($count > 2) {
-// $form['bottom'] = panels_add_button('go-bottom.png', 'bottom', t('Move item to bottom'));
-// }
-// if ($count > 1) {
-// $form['spacer'] = panels_add_blank();
-// }
- return $form;
-}
-
-/**
- * move an item in an array to the top
- */
-function panels_move_top(&$array, &$position) {
- $value = $array[$position];
- unset($array[$position]);
- array_unshift($array, $value);
- // reindex the array now
- $array = array_values($array);
-}
-
-/**
- * move an item in an array to the bottom
- */
-function panels_move_bottom(&$array, &$position) {
- $value = $array[$position];
- unset($array[$position]);
- $array[] = $value;
- // reindex the array now
- $array = array_values($array);
-}
-
-/**
- * move an item in an array up one position
- */
-function panels_move_up(&$array, &$position) {
- $value = $array[$position];
- $array[$position] = $array[$position - 1];
- $array[$position - 1] = $value;
-}
-
-/**
- * move an item in an array up one position
- */
-function panels_move_down(&$array, &$position) {
- $value = $array[$position];
- $array[$position] = $array[$position + 1];
- $array[$position + 1] = $value;
-}
-/**
- * Remove an item from an array
- */
-function panels_move_delete(&$array, &$position) {
- unset($array[$position]);
- // reindex the array now
- $array = array_values($array);
+ return array_merge($theme_registry_static, $theme_registry_dynamic);
}
// ---------------------------------------------------------------------------
// panels database functions
-function panels_load_panels($did) {
+function _panels_load_panels($did) {
$panels = db_fetch_object(db_query("SELECT * FROM {panels_info} WHERE did = %d", $did));
- if (!$panels) {
+ if (empty($panels)) {
return NULL;
}
$panels->content = array();
$panels->access = ($panels->access ? explode(', ', $panels->access) : array());
-
+
$result = db_query("SELECT * FROM {panels_area} WHERE did = %d ORDER BY area, position", $did);
while ($area = db_fetch_object($result)) {
$area->configuration = unserialize($area->configuration);
@@ -690,34 +207,6 @@
return $panels;
}
-function panels_save_panels($panels) {
- $panels->access = implode(', ', $panels->access);
- if ($panels->did) {
- db_query("UPDATE {panels_info} SET title = '%s', access = '%s', path = '%s', css_id = '%s', layout = '%s' WHERE did = %d", $panels->title, $panels->access, $panels->path, $panels->css_id, $panels->layout, $panels->did);
- db_query("DELETE FROM {panels_area} WHERE did = %d", $panels->did);
- }
- else {
- $panels->did = db_next_id("{panels_info_id}");
- // Put this in the form so modules can utilize the did of a new panel.
- $GLOBALS['form_values']['did'] = $panels->did;
- db_query("INSERT INTO {panels_info} (did, title, access, path, css_id, layout) VALUES (%d, '%s', '%s', '%s', '%s', '%s')", $panels->did, $panels->title, $panels->access, $panels->path, $panels->css_id, $panels->layout);
- }
- foreach ($panels->content as $area => $info) {
- foreach ($info as $position => $block) {
- if (is_numeric($position)) { // don't save some random form stuff that may've been here.
- $block = (object) $block;
- db_query("INSERT INTO {panels_area} (did, area, type, configuration, position) VALUES(%d, '%s', '%s', '%s', %d)", $panels->did, $area, $block->type, serialize($block->configuration), $position);
- }
- }
- }
- menu_rebuild();
-}
-
-function panels_delete_panels($panels) {
- db_query("DELETE FROM {panels_info} WHERE did = %d", $panels->did);
- db_query("DELETE FROM {panels_area} WHERE did = %d", $panels->did);
- menu_rebuild();
-}
// ---------------------------------------------------------------------------
// panels page
@@ -727,7 +216,7 @@
*
* @param $set (optional) used internally to set the page status
*/
-function panels_is_panels_page($set_panels = NULL) {
+function _panels_is_panels_page($set_panels = NULL) {
static $is_panels;
if ($set_panels == TRUE) {
$is_panels = $set_panels;
@@ -735,25 +224,27 @@
return $is_panels;
}
-function panels_panels_page($did) {
- $panels = panels_load_panels($did);
- if (!$panels) {
+function _panels_panels_page($did) {
+ $panels = _panels_load_panels($did);
+ if (empty($panels)) {
return drupal_not_found();
}
- $layouts = panels_get_layouts();
+ $layouts = _panels_get_layouts();
$layout = $layouts[$panels->layout];
$layout['css_id'] = $panels->css_id;
-
- if (!$layout) {
- watchdog('panels', t('Unable to find requested layout %s', array('%s' => check_plain($panels->layout))));
+
+ if (empty($layout)) {
+ watchdog('panels', 'Unable to find requested layout %s', array('%s' => check_plain($panels->layout)));
return drupal_not_found();
}
- panels_is_panels_page(TRUE);
- $content_types = panels_get_content_types();
+ _panels_is_panels_page(TRUE);
+ $content_types = _panels_get_content_types();
+ $content = array();
foreach ($panels->content as $location => $list) {
+ $content[$location] = ''; // E_ALL init for $content[$area->area].
foreach ($list as $area) {
$function = $content_types[$area->type]['callback'];
if (function_exists($function)) {
@@ -761,20 +252,21 @@
}
}
}
- $output = panels_get_layout($layout, $content);
+ $output = '';
+ $output = _panels_get_layout($layout, $content);
drupal_set_title(filter_xss_admin($panels->title));
return $output;
}
-function panels_get_layout($layout, $content) {
- $output = theme($layout['theme'], check_plain($layout['css_id']), $content);
+function _panels_get_layout($layout, $content) {
+ $output = theme($layout['theme'], check_plain((!empty($layout['css_id']) ? $layout['css_id'] : '')), $content);
- if ($output) {
- if (file_exists(path_to_theme() . '/' . $layout['css'])) {
- drupal_add_css(path_to_theme() . '/' . $layout['css']);
+ if (!empty($output)) {
+ if (file_exists(path_to_theme() .'/'. $layout['css'])) {
+ drupal_add_css(path_to_theme() .'/'. $layout['css']);
}
else {
- drupal_add_css(drupal_get_path('module', $layout['module']) . '/' . $layout['css']);
+ drupal_add_css(drupal_get_path('module', $layout['module']) .'/'. $layout['css']);
}
}
return $output;
@@ -785,29 +277,29 @@
* finished layout.
*/
function panels_print_layout($id, $content) {
- $layouts = panels_get_layouts();
+ $layouts = _panels_get_layouts();
$layout = $layouts[$id];
if (!$layout) {
return;
}
- return panels_get_layout($layout, $content);
+ return _panels_get_layout($layout, $content);
}
// ---------------------------------------------------------------------------
// panels data loading
-function panels_load_includes($directory, $callback) {
+function _panels_load_includes($directory, $callback) {
// Load all our module 'on behalfs'.
- $path = drupal_get_path('module', 'panels') . '/' . $directory;
+ $path = drupal_get_path('module', 'panels') .'/'. $directory;
$files = drupal_system_listing('.inc$', $path, 'name', 0);
- foreach($files as $file) {
- require_once('./' . $file->filename);
+ foreach ($files as $file) {
+ require_once('./'. $file->filename);
}
$output = module_invoke_all($callback);
foreach ($files as $file) {
- $function = 'panels_' . $file->name . '_' . $callback;
+ $function = 'panels_'. $file->name .'_'. $callback;
if (function_exists($function)) {
$result = $function();
if (isset($result) && is_array($result)) {
@@ -818,41 +310,18 @@
return $output;
}
-function panels_get_layouts() {
- static $layout = NULL;
- if (!$layout) {
- $layouts = panels_load_includes('layouts', 'panels_layouts');
+function _panels_get_layouts() {
+ static $layouts = NULL;
+ if (!$layouts) {
+ $layouts = _panels_load_includes('layouts', 'panels_layouts');
}
return $layouts;
}
-function panels_get_content_types() {
- static $layout = NULL;
- if (!$layout) {
- $layouts = panels_load_includes('content_types', 'panels_content_types');
+function _panels_get_content_types() {
+ static $layouts = NULL;
+ if (!$layouts) {
+ $layouts = _panels_load_includes('content_types', 'panels_content_types');
}
return $layouts;
}
-
-/**
- * Helper function for autocompletion of node titles.
- * This is mostly stolen from clipper.
- */
-function panels_node_autocomplete($string) {
- if ($string != '') { // if there are node_types passed, we'll use those in a MySQL IN query.
- $result = db_query_range(db_rewrite_sql('SELECT n.title, u.name FROM {node} n INNER JOIN {users} u ON u.uid = n.uid WHERE LOWER(title) LIKE LOWER("%%%s%%")'), $string, 0, 10);
- $prefix = count($array) ? implode(', ', $array) .', ' : '';
-
- $matches = array();
- while ($node = db_fetch_object($result)) {
- $n = $node->title;
- // Commas and quotes in terms are special cases, so encode 'em.
- if (preg_match('/,/', $node->title) || preg_match('/"/', $node->title)) {
- $n = '"'. preg_replace('/"/', '""', $node->title) .'"';
- }
- $matches[$prefix . $n] = ''. check_plain($node->title) .'('. t('by %user', array('%user' => check_plain($node->name))) .')';
- }
- print drupal_to_js($matches);
- exit();
- }
-}
Index: modules/panels/panels_admin.css
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/panels_admin.css,v
retrieving revision 1.1
diff -u -r1.1 panels_admin.css
--- modules/panels/panels_admin.css 22 Jul 2006 04:36:09 -0000 1.1
+++ modules/panels/panels_admin.css 8 Jan 2008 23:20:00 -0000
@@ -1,14 +1,14 @@
-.layout-link {
- float: left;
- padding: 1em;
- width: 125px;
-}
-
-.layout-link img {
- margin-left: auto;
- margin-right: auto;
-}
-
-.layout-icon {
- float: right;
+.layout-link {
+ float: left;
+ padding: 1em;
+ width: 125px;
+}
+
+.layout-link img {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.layout-icon {
+ float: right;
}
\ No newline at end of file
Index: modules/panels/INSTALL.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/INSTALL.txt,v
retrieving revision 1.2
diff -u -r1.2 INSTALL.txt
--- modules/panels/INSTALL.txt 22 Jul 2006 06:06:46 -0000 1.2
+++ modules/panels/INSTALL.txt 8 Jan 2008 23:20:00 -0000
@@ -1,13 +1,13 @@
-Simply activate the module. The tables you need will be installed.
-
-Then, go to administer >> panels
-
-Select 'add'.
-
-Choose a layout; a simple one is best if you're just exploring.
-
-Choose a URL for your new panel page. 'panel/test' is good if you're just exploring.
-
-Add some content to each of the areas.
-
-Click save, then click on the URL in the list to see what your new page looks like.
+Simply activate the module. The tables you need will be installed.
+
+Then, go to administer >> panels
+
+Select 'add'.
+
+Choose a layout; a simple one is best if you're just exploring.
+
+Choose a URL for your new panel page. 'panel/test' is good if you're just exploring.
+
+Add some content to each of the areas.
+
+Click save, then click on the URL in the list to see what your new page looks like.
Index: modules/panels/TODO.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/TODO.txt,v
retrieving revision 1.2
diff -u -r1.2 TODO.txt
--- modules/panels/TODO.txt 26 Jul 2006 16:53:40 -0000 1.2
+++ modules/panels/TODO.txt 8 Jan 2008 23:20:00 -0000
@@ -1,12 +1,12 @@
-TODO:
-
-This is a brief list of the things that may still need to be done. No guarantee
-of them ever getting done.
-
-content type: phptemplate
-
-access control to pages
-access control to content types
-
-dashboard node extension
-
+TODO:
+
+This is a brief list of the things that may still need to be done. No guarantee
+of them ever getting done.
+
+content type: phptemplate
+
+access control to pages
+access control to content types
+
+dashboard node extension
+
Index: modules/panels/po/de.po
===================================================================
RCS file: modules/panels/po/de.po
diff -N modules/panels/po/de.po
--- modules/panels/po/de.po 2 Jun 2007 10:38:50 -0000 1.1.2.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,424 +0,0 @@
-# $Id: de.po,v 1.1.2.1 2007/06/02 10:38:50 hass Exp $
-#
-# LANGUAGE translation of Drupal (general)
-# Copyright YEAR NAME
-# Generated from files:
-# panels.module,v 1.10.2.9 2007/03/15 23:13:41 merlinofchaos
-# fourcol_25_25_25_25.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-# threecol_33_33_33.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-# twocol_25_75.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-# twocol_33_66.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-# twocol_38_62.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-# twocol_50_50.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-# twocol_62_38.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-# twocol_66_33.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-# twocol_75_25.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-# threecol_25_50_25_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-# threecol_33_34_33.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-# threecol_33_34_33_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-# twocol.inc,v 1.6 2006/08/22 23:54:20 merlinofchaos
-# twocol_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: panels 5.x\n"
-"POT-Creation-Date: 2007-03-24 21:42+0100\n"
-"PO-Revision-Date: 2007-06-02 12:37+0100\n"
-"Last-Translator: Alexander Hass\n"
-"Language-Team: Alexander Hass\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-Poedit-Language: German\n"
-"X-Poedit-Country: GERMANY\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: panels.module:382
-#: content_types/custom.inc:90
-msgid "CSS ID"
-msgstr "CSS ID"
-
-#: content_types/block.inc:75
-#: content_types/views.inc:123
-msgid "Block"
-msgstr "Block"
-
-#: layouts/threecol_25_50_25.inc:12
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33.inc:13
-#: layouts/threecol_33_34_33_stacked.inc:14
-#: layouts/twocol.inc:13
-#: layouts/twocol_stacked.inc:14
-msgid "Left side"
-msgstr "Linke Spalte"
-
-#: layouts/threecol_25_50_25.inc:12
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33.inc:13
-#: layouts/threecol_33_34_33_stacked.inc:14
-msgid "Middle column"
-msgstr "Mittlere Spalte"
-
-#: layouts/threecol_25_50_25.inc:12
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33.inc:13
-#: layouts/threecol_33_34_33_stacked.inc:14
-#: layouts/twocol.inc:13
-#: layouts/twocol_stacked.inc:14
-msgid "Right side"
-msgstr "Rechte Spalte"
-
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33_stacked.inc:14
-#: layouts/twocol_stacked.inc:14
-msgid "Top"
-msgstr "Oben"
-
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33_stacked.inc:14
-#: layouts/twocol_stacked.inc:14
-msgid "Bottom"
-msgstr "Unten"
-
-#: content_types/block.inc:79
-#: ;86
-msgid "Add block"
-msgstr "Block hinzufügen"
-
-#: content_types/block.inc:107
-msgid "Override title"
-msgstr "Titel überschreiben"
-
-#: content_types/block.inc:108
-msgid "If checked, the block title will be overridden with the override title text."
-msgstr "Sobald aktiviert, wird der Blocktitel mit dem Texttitel überschrieben."
-
-#: content_types/block.inc:113
-msgid "Override title text"
-msgstr "Titeltext überschreiben"
-
-#: content_types/custom.inc:50
-msgid "Enter an optional title for custom content you define"
-msgstr "Einen optionalen Titel für benutzerdefinierten Inhalt eingeben"
-
-#: content_types/custom.inc:57
-#: ;64
-msgid "Add custom"
-msgstr "Benutzerdefiniert hinzufügen"
-
-#: content_types/custom.inc:73
-#: ;74
-msgid "Title"
-msgstr "Titel"
-
-#: content_types/custom.inc:78
-msgid "Body"
-msgstr "Textkörper"
-
-#: content_types/custom.inc:91
-msgid "CSS ID of this custom content."
-msgstr "CSS ID dieses benutzerdefinierten Inhaltes."
-
-#: content_types/custom.inc:98
-msgid "CSS class"
-msgstr "CSS Klasse"
-
-#: content_types/custom.inc:99
-msgid "CSS class of this custom content."
-msgstr "CSS Klasse dieses benutzerdefinierten Inhaltes."
-
-#: content_types/node.inc:42
-msgid "Enter the title or NID of a post"
-msgstr "Den Titel oder die NID des Beitrages eingeben"
-
-#: content_types/node.inc:50
-#: ;57
-msgid "Add post"
-msgstr "Beitrag hinzufügen"
-
-#: content_types/node.inc:68
-msgid "Unable to find \"%s\""
-msgstr "„%s“ wurde nicht gefunden"
-
-#: content_types/node.inc:82
-msgid "Teaser"
-msgstr "Anrisstext"
-
-#: content_types/node.inc:85
-msgid "Check here to show only the node teaser"
-msgstr "Aktivieren, um nur den Anrisstext des Beitrages anzuzeigen."
-
-#: content_types/node.inc:90
-msgid "Display links"
-msgstr "Verweise anzeigen"
-
-#: content_types/node.inc:91
-msgid "Check here to display the links with the post."
-msgstr "Aktivieren, um die Verweise mit dem Beitrag anzuzeigen."
-
-#: content_types/node.inc:96
-msgid "Suppress node title"
-msgstr "Beitragstitel unterdrücken"
-
-#: content_types/node.inc:97
-msgid "Check here to suppress the node title."
-msgstr "Aktivieren, um den Beitragstitel zu unterdrücken."
-
-#: layouts/threecol_25_50_25.inc:8
-msgid "Three column 25/50/25"
-msgstr "Drei Spalten 25/50/25"
-
-#: layouts/threecol_25_50_25_stacked.inc:10
-msgid "Three column 25/50/25 stacked"
-msgstr "Drei Spalten 25/50/25 gestapelt"
-
-#: layouts/threecol_33_34_33.inc:9
-msgid "Three column 33/34/33"
-msgstr "Drei Spalten 33/34/33"
-
-#: layouts/threecol_33_34_33_stacked.inc:10
-msgid "Three column 33/34/33 stacked"
-msgstr "Drei Spalten 33/34/33 gestapelt"
-
-#: layouts/twocol.inc:9
-msgid "Two column"
-msgstr "Zwei Spalten"
-
-#: layouts/twocol_stacked.inc:10
-msgid "Two column stacked"
-msgstr "Zwei Spalten gestapelt"
-
-#: panels.module:11
-msgid "
You may peruse a list of your current panels layouts and edit them, or click add to create a new page.
"
-msgstr "
Die Liste der aktuellen Panel Layouts kann überprüft, bearbeitet oder eine neue Seite erstellt werden.
"
-
-#: panels.module:13
-msgid "
Choose a layout for your new page from the list below.
"
-msgstr "
Ein Layout für die neue Seite von der unten aufgeführten Liste auswählen.
"
-
-#: panels.module:60
-#: panels.info:0
-msgid "Panels"
-msgstr "Panels"
-
-#: panels.module:63
-msgid "Create pages on your site that are 2 or 3 columns"
-msgstr "Seiten mit 2 oder 3 Spalten in der Webseite erstellen"
-
-#: panels.module:67
-msgid "List"
-msgstr "Alle anzeigen"
-
-#: panels.module:75
-#: ;82
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: panels.module:89
-msgid "Edit panels"
-msgstr "Panels bearbeiten"
-
-#: panels.module:96
-msgid "Delete panels"
-msgstr "Panels löschen"
-
-#: panels.module:105
-msgid "Autocomplete node"
-msgstr "Beitrag automatisch vervollständigen"
-
-#: panels.module:199
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: panels.module:200
-#: ;228
-msgid "Delete"
-msgstr "Löschen"
-
-#: panels.module:205
-msgid "Panel title"
-msgstr "Paneltitel"
-
-#: panels.module:206
-msgid "URL"
-msgstr "URL"
-
-#: panels.module:207
-msgid "Operations"
-msgstr "Operationen"
-
-#: panels.module:225
-msgid "Are you sure you want to delete %title?"
-msgstr "Soll %title wirklich gelöscht werden?"
-
-#: panels.module:227
-msgid "This action cannot be undone."
-msgstr "Diese Aktion kann nicht rückgängig gemacht werden."
-
-#: panels.module:228
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: panels.module:308
-msgid "Add content"
-msgstr "Inhalt hinzufügen"
-
-#: panels.module:310
-msgid "Select an area to add content to, then select a type of content and click the appropriate button. The content will be added."
-msgstr "Zuerst einen Bereich auswählen zu dem Inhalt hinzugefügt werden soll, dann einen Inhalt auswählen und den entsprechenden Knopf drücken. Der Inhalt wird hinzugefügt."
-
-#: panels.module:319
-msgid "Area"
-msgstr "Bereich"
-
-#: panels.module:358
-msgid "General information"
-msgstr "Allgemeine Information"
-
-#: panels.module:375
-msgid "Page title"
-msgstr "Seitentitel"
-
-#: panels.module:376
-msgid "The page title for this panels layout"
-msgstr "Der Seitentitel für dieses Panels Layout"
-
-#: panels.module:383
-msgid "The CSS ID to apply to this page"
-msgstr "Die CSS ID, welche auf diese Seite angewendet werden soll"
-
-#: panels.module:394
-msgid "Access"
-msgstr "Zugriff"
-
-#: panels.module:397
-msgid "Only the checked roles will be able to see this panel in any form; if no roles are checked, access will not be restricted."
-msgstr "Nur die aktivierten Rollen können dieses Panel in jeglicher Art sehen; Wenn keine Rollen aktiviert sind, wird der Zugriff nicht beschränkt."
-
-#: panels.module:403
-msgid "Path"
-msgstr "Pfad"
-
-#: panels.module:404
-msgid "The URL path to give this page, i.e, path/to/page"
-msgstr "Der URL Pfad den diese Seite erhalten soll, z.b.: pfad/zu/seite"
-
-#: panels.module:508
-msgid "Save"
-msgstr "Speichern"
-
-#: panels.module:527
-msgid "This area has no content."
-msgstr "Dieser Bereich hat keinen Inhalt."
-
-#: panels.module:550
-msgid "Configure"
-msgstr "Konfigurieren"
-
-#: panels.module:599
-msgid "The panels has been saved."
-msgstr "Das Panel wurde gespeichert."
-
-#: panels.module:607
-msgid "Delete this item"
-msgstr "Diesen Beitrag löschen"
-
-#: panels.module:613
-msgid "Move item up"
-msgstr "Beitrag nach oben verschieben"
-
-#: panels.module:614
-msgid "Move item down"
-msgstr "Beitrag nach unten verschieben"
-
-#: panels.module:749
-msgid "Unable to find requested layout %s"
-msgstr "Das Layout %s konnte nicht gefunden werden"
-
-#: panels.module:853
-msgid "by %user"
-msgstr "von %user"
-
-#: panels.module:749
-#: ;0 panels.info:0
-msgid "panels"
-msgstr "panels"
-
-#: panels.module:21
-msgid "create panels"
-msgstr "Panels erstellen"
-
-#: panels.module:21
-msgid "access all panels"
-msgstr "Zugriff auf alle Panels"
-
-#: panels.info:0
-msgid "Create pages that are divided into areas of the page."
-msgstr "Erstelle Seiten, welche in Bereiche der Seite unterteilt sind."
-
-#: content_types/views.inc:86
-msgid "Choose a view from the views module"
-msgstr "Eine Ansicht vom Ansichtenmodul wählen"
-
-#: content_types/views.inc:90
-#: ;97
-msgid "Add view"
-msgstr "Ansicht hinzufügen"
-
-#: content_types/views.inc:121
-msgid "View type"
-msgstr "Ansichtstyp"
-
-#: content_types/views.inc:122
-msgid "Select which type of the view to display."
-msgstr "Den Typ einer Ansicht auswählen, der angezeigt werden soll."
-
-#: content_types/views.inc:123
-msgid "Page"
-msgstr "Seite"
-
-#: content_types/views.inc:123
-msgid "Embedded"
-msgstr "Eingebettet"
-
-#: content_types/views.inc:128
-msgid "Pager ID"
-msgstr "Pager ID"
-
-#: content_types/views.inc:130
-msgid "Select the numeric pager ID to use, or 0 to not have use paging. Select \"1\" if you aren't sure what this means"
-msgstr "Die zu verwendende Seitenreiter ID auswählen, oder 0 um keine Seitenreiter zu verwenden. Bei Unsicherheiten \"1\" wählen."
-
-#: content_types/views.inc:136
-msgid "Posts to Display"
-msgstr "Anzuzeigende Beiträge"
-
-#: content_types/views.inc:138
-msgid "Select the number of posts to display, or 0 to display all results."
-msgstr "Die Anzahl der anzuzeigenden Beiträge auswählen, oder 0 um alle Ergebnisse anzuzeigen."
-
-#: content_types/views.inc:144
-msgid "View arguments"
-msgstr "Argumente anzeigen"
-
-#: content_types/views.inc:146
-msgid "Arguments to send to the view as if they were part of the URL in the form of arg1/arg2/arg3. You can use %0, %1, %2, etc, to use arguments from the actual URL. For example, if your panel URL is foo/bar, and someone hits foo/bar/5 use %2 to get the 5."
-msgstr "Argumente an die Ansicht übergeben, als wenn diese Teil der URL sind, in Form von arg1/arg2/arg3. Um Argumente von der aktuellen URL zu verwenden, kann %0, %1, %2, usw. verwendet werden. Sollte die Panel URL foo/bar lauten und jemand greift auf foo/bar/5 zu, kann %2 verwendet werden, um die 5 zu erhalten."
-
-#: content_types/views.inc:152
-msgid "Override URL"
-msgstr "URL überschreiben"
-
-#: content_types/views.inc:154
-msgid "If this is set, override the View URL; this can sometimes be useful to set to the panel URL"
-msgstr "Sobald aktiviert, wird die Ansichten URL überschrieben; Manchmal kann es sinnvoll sein, die Panel URL einzusetzten."
-
-#: content_types/views.inc:160
-msgid "Display view title"
-msgstr "Ansichtentitel anzeigen"
-
-#: content_types/views.inc:161
-msgid "If checked, the title of the view will be displayed."
-msgstr "Sobald aktiviert, wird der Titel der Ansicht angezeigt."
-
Index: modules/panels/po/panels.pot
===================================================================
RCS file: modules/panels/po/panels.pot
diff -N modules/panels/po/panels.pot
--- modules/panels/po/panels.pot 2 Jun 2007 10:38:29 -0000 1.1.2.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,406 +0,0 @@
-# $Id: panels.pot,v 1.1.2.1 2007/06/02 10:38:29 hass Exp $
-#
-# LANGUAGE translation of Drupal (general)
-# Copyright YEAR NAME
-# Generated from files:
-# panels.module,v 1.10.2.9 2007/03/15 23:13:41 merlinofchaos
-# threecol_25_50_25_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-# threecol_33_34_33.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-# threecol_33_34_33_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-# twocol.inc,v 1.6 2006/08/22 23:54:20 merlinofchaos
-# twocol_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2007-05-31 20:59+0100\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME \n"
-"Language-Team: LANGUAGE \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: panels.module:382 content_types/custom.inc:90
-msgid "CSS ID"
-msgstr ""
-
-#: content_types/block.inc:75 content_types/views.inc:123
-msgid "Block"
-msgstr ""
-
-#: layouts/threecol_25_50_25.inc:12 layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33.inc:13 layouts/threecol_33_34_33_stacked.inc:14
-#: layouts/twocol.inc:13 layouts/twocol_stacked.inc:14
-msgid "Left side"
-msgstr ""
-
-#: layouts/threecol_25_50_25.inc:12 layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33.inc:13 layouts/threecol_33_34_33_stacked.inc:14
-msgid "Middle column"
-msgstr ""
-
-#: layouts/threecol_25_50_25.inc:12 layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33.inc:13 layouts/threecol_33_34_33_stacked.inc:14
-#: layouts/twocol.inc:13 layouts/twocol_stacked.inc:14
-msgid "Right side"
-msgstr ""
-
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33_stacked.inc:14 layouts/twocol_stacked.inc:14
-msgid "Top"
-msgstr ""
-
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33_stacked.inc:14 layouts/twocol_stacked.inc:14
-msgid "Bottom"
-msgstr ""
-
-#: content_types/block.inc:79;86
-msgid "Add block"
-msgstr ""
-
-#: content_types/block.inc:107
-msgid "Override title"
-msgstr ""
-
-#: content_types/block.inc:108
-msgid ""
-"If checked, the block title will be overridden with the override title text."
-msgstr ""
-
-#: content_types/block.inc:113
-msgid "Override title text"
-msgstr ""
-
-#: content_types/custom.inc:50
-msgid "Enter an optional title for custom content you define"
-msgstr ""
-
-#: content_types/custom.inc:57;64
-msgid "Add custom"
-msgstr ""
-
-#: content_types/custom.inc:73;74
-msgid "Title"
-msgstr ""
-
-#: content_types/custom.inc:78
-msgid "Body"
-msgstr ""
-
-#: content_types/custom.inc:91
-msgid "CSS ID of this custom content."
-msgstr ""
-
-#: content_types/custom.inc:98
-msgid "CSS class"
-msgstr ""
-
-#: content_types/custom.inc:99
-msgid "CSS class of this custom content."
-msgstr ""
-
-#: content_types/node.inc:42
-msgid "Enter the title or NID of a post"
-msgstr ""
-
-#: content_types/node.inc:50;57
-msgid "Add post"
-msgstr ""
-
-#: content_types/node.inc:68
-msgid "Unable to find \"%s\""
-msgstr ""
-
-#: content_types/node.inc:82
-msgid "Teaser"
-msgstr ""
-
-#: content_types/node.inc:85
-msgid "Check here to show only the node teaser"
-msgstr ""
-
-#: content_types/node.inc:90
-msgid "Display links"
-msgstr ""
-
-#: content_types/node.inc:91
-msgid "Check here to display the links with the post."
-msgstr ""
-
-#: content_types/node.inc:96
-msgid "Suppress node title"
-msgstr ""
-
-#: content_types/node.inc:97
-msgid "Check here to suppress the node title."
-msgstr ""
-
-#: layouts/threecol_25_50_25.inc:8
-msgid "Three column 25/50/25"
-msgstr ""
-
-#: layouts/threecol_25_50_25_stacked.inc:10
-msgid "Three column 25/50/25 stacked"
-msgstr ""
-
-#: layouts/threecol_33_34_33.inc:9
-msgid "Three column 33/34/33"
-msgstr ""
-
-#: layouts/threecol_33_34_33_stacked.inc:10
-msgid "Three column 33/34/33 stacked"
-msgstr ""
-
-#: layouts/twocol.inc:9
-msgid "Two column"
-msgstr ""
-
-#: layouts/twocol_stacked.inc:10
-msgid "Two column stacked"
-msgstr ""
-
-#: panels.module:11
-msgid ""
-"
You may peruse a list of your current panels layouts and edit them, or "
-"click add to create a new page.
"
-msgstr ""
-
-#: panels.module:13
-msgid "
Choose a layout for your new page from the list below.
"
-msgstr ""
-
-#: panels.module:60 panels.info:0
-msgid "Panels"
-msgstr ""
-
-#: panels.module:63
-msgid "Create pages on your site that are 2 or 3 columns"
-msgstr ""
-
-#: panels.module:67
-msgid "List"
-msgstr ""
-
-#: panels.module:75;82
-msgid "Add"
-msgstr ""
-
-#: panels.module:89
-msgid "Edit panels"
-msgstr ""
-
-#: panels.module:96
-msgid "Delete panels"
-msgstr ""
-
-#: panels.module:105
-msgid "Autocomplete node"
-msgstr ""
-
-#: panels.module:199
-msgid "Edit"
-msgstr ""
-
-#: panels.module:200;228
-msgid "Delete"
-msgstr ""
-
-#: panels.module:205
-msgid "Panel title"
-msgstr ""
-
-#: panels.module:206
-msgid "URL"
-msgstr ""
-
-#: panels.module:207
-msgid "Operations"
-msgstr ""
-
-#: panels.module:225
-msgid "Are you sure you want to delete %title?"
-msgstr ""
-
-#: panels.module:227
-msgid "This action cannot be undone."
-msgstr ""
-
-#: panels.module:228
-msgid "Cancel"
-msgstr ""
-
-#: panels.module:308
-msgid "Add content"
-msgstr ""
-
-#: panels.module:310
-msgid ""
-"Select an area to add content to, then select a type of content and click "
-"the appropriate button. The content will be added."
-msgstr ""
-
-#: panels.module:319
-msgid "Area"
-msgstr ""
-
-#: panels.module:358
-msgid "General information"
-msgstr ""
-
-#: panels.module:375
-msgid "Page title"
-msgstr ""
-
-#: panels.module:376
-msgid "The page title for this panels layout"
-msgstr ""
-
-#: panels.module:383
-msgid "The CSS ID to apply to this page"
-msgstr ""
-
-#: panels.module:394
-msgid "Access"
-msgstr ""
-
-#: panels.module:397
-msgid ""
-"Only the checked roles will be able to see this panel in any form; if no "
-"roles are checked, access will not be restricted."
-msgstr ""
-
-#: panels.module:403
-msgid "Path"
-msgstr ""
-
-#: panels.module:404
-msgid "The URL path to give this page, i.e, path/to/page"
-msgstr ""
-
-#: panels.module:508
-msgid "Save"
-msgstr ""
-
-#: panels.module:527
-msgid "This area has no content."
-msgstr ""
-
-#: panels.module:550
-msgid "Configure"
-msgstr ""
-
-#: panels.module:599
-msgid "The panels has been saved."
-msgstr ""
-
-#: panels.module:607
-msgid "Delete this item"
-msgstr ""
-
-#: panels.module:613
-msgid "Move item up"
-msgstr ""
-
-#: panels.module:614
-msgid "Move item down"
-msgstr ""
-
-#: panels.module:749
-msgid "Unable to find requested layout %s"
-msgstr ""
-
-#: panels.module:853
-msgid "by %user"
-msgstr ""
-
-#: panels.module:749;0 panels.info:0
-msgid "panels"
-msgstr ""
-
-#: panels.module:21
-msgid "create panels"
-msgstr ""
-
-#: panels.module:21
-msgid "access all panels"
-msgstr ""
-
-#: panels.info:0
-msgid "Create pages that are divided into areas of the page."
-msgstr ""
-
-#: content_types/views.inc:86
-msgid "Choose a view from the views module"
-msgstr ""
-
-#: content_types/views.inc:90;97
-msgid "Add view"
-msgstr ""
-
-#: content_types/views.inc:121
-msgid "View type"
-msgstr ""
-
-#: content_types/views.inc:122
-msgid "Select which type of the view to display."
-msgstr ""
-
-#: content_types/views.inc:123
-msgid "Page"
-msgstr ""
-
-#: content_types/views.inc:123
-msgid "Embedded"
-msgstr ""
-
-#: content_types/views.inc:128
-msgid "Pager ID"
-msgstr ""
-
-#: content_types/views.inc:130
-msgid ""
-"Select the numeric pager ID to use, or 0 to not have use paging. Select \"1"
-"\" if you aren't sure what this means"
-msgstr ""
-
-#: content_types/views.inc:136
-msgid "Posts to Display"
-msgstr ""
-
-#: content_types/views.inc:138
-msgid "Select the number of posts to display, or 0 to display all results."
-msgstr ""
-
-#: content_types/views.inc:144
-msgid "View arguments"
-msgstr ""
-
-#: content_types/views.inc:146
-msgid ""
-"Arguments to send to the view as if they were part of the URL in the form of "
-"arg1/arg2/arg3. You can use %0, %1, %2, etc, to use arguments from the "
-"actual URL. For example, if your panel URL is foo/bar, and someone hits foo/"
-"bar/5 use %2 to get the 5."
-msgstr ""
-
-#: content_types/views.inc:152
-msgid "Override URL"
-msgstr ""
-
-#: content_types/views.inc:154
-msgid ""
-"If this is set, override the View URL; this can sometimes be useful to set "
-"to the panel URL"
-msgstr ""
-
-#: content_types/views.inc:160
-msgid "Display view title"
-msgstr ""
-
-#: content_types/views.inc:161
-msgid "If checked, the title of the view will be displayed."
-msgstr ""
Index: modules/panels/po/da.po
===================================================================
RCS file: modules/panels/po/da.po
diff -N modules/panels/po/da.po
--- modules/panels/po/da.po 12 Sep 2007 13:37:16 -0000 1.1.2.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,396 +0,0 @@
-# Danish translation of Drupal (panels.module)
-# Copyright 2007 Morten Wulff
-msgid ""
-msgstr ""
-"Project-Id-Version: Danish translation of Drupal (panels.module) $Id: da.po,v 1.1.2.1 2007/09/12 13:37:16 wulff Exp $\n"
-"POT-Creation-Date: 2007-09-12 13:59+0200\n"
-"PO-Revision-Date: 2007-09-12 15:36+0100\n"
-"Last-Translator: Morten Wulff \n"
-"Language-Team: Danish \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-Poedit-Language: Danish\n"
-"X-Poedit-Country: DENMARK\n"
-
-#: panels.module:11
-msgid "
You may peruse a list of your current panels layouts and edit them, or click add to create a new page.
"
-msgstr "
Du kan gennemse en liste af eksiterende paneler eller klikke for at tilføje en ny side.
"
-
-#: panels.module:13
-msgid "
Choose a layout for your new page from the list below.
"
-msgstr "
Vælg et layout fra listen herunder.
"
-
-#: panels.module:60
-#: panels.info:0
-msgid "Panels"
-msgstr "Paneler"
-
-#: panels.module:63
-msgid "Create pages on your site that are 2 or 3 columns"
-msgstr "Opret sider der har 2 eller 3 spalter"
-
-#: panels.module:67
-msgid "List"
-msgstr "Vis"
-
-#: panels.module:75;82
-msgid "Add"
-msgstr "Tilføj"
-
-#: panels.module:89
-msgid "Edit panels"
-msgstr "Rediger paneler"
-
-#: panels.module:96
-msgid "Delete panels"
-msgstr "Slet paneler"
-
-#: panels.module:105
-msgid "Autocomplete node"
-msgstr "Autofuldfør indholdselement"
-
-#: panels.module:199
-msgid "Edit"
-msgstr "Rediger"
-
-#: panels.module:200;228
-msgid "Delete"
-msgstr "Slet"
-
-#: panels.module:205
-msgid "Panel title"
-msgstr "Paneltitel"
-
-#: panels.module:206
-msgid "URL"
-msgstr "URL"
-
-#: panels.module:207
-msgid "Operations"
-msgstr "Handlinger"
-
-#: panels.module:225
-msgid "Are you sure you want to delete %title?"
-msgstr "Ønsker du at slette %title?"
-
-#: panels.module:227
-msgid "This action cannot be undone."
-msgstr "Denne handling kan ikke fortrydes."
-
-#: panels.module:228
-msgid "Cancel"
-msgstr "Annuller"
-
-#: panels.module:308
-msgid "Add content"
-msgstr "Tilføj indhold"
-
-#: panels.module:310
-msgid "Select an area to add content to, then select a type of content and click the appropriate button. The content will be added."
-msgstr "Vælg hvilket område du vil føje indhold til, vælg hvilken type du vil tilføje og klik på den relevante knap."
-
-#: panels.module:319
-msgid "Area"
-msgstr "Område"
-
-#: panels.module:358
-msgid "General information"
-msgstr "Generel information"
-
-#: panels.module:375
-msgid "Page title"
-msgstr "Sidetitel"
-
-#: panels.module:376
-msgid "The page title for this panels layout"
-msgstr "Panelets sidetitel"
-
-#: panels.module:382
-#: content_types/custom.inc:90
-msgid "CSS ID"
-msgstr "CSS ID"
-
-#: panels.module:383
-msgid "The CSS ID to apply to this page"
-msgstr "Sidens CSS ID"
-
-#: panels.module:394
-msgid "Access"
-msgstr "Adgang"
-
-#: panels.module:397
-msgid "Only the checked roles will be able to see this panel in any form; if no roles are checked, access will not be restricted."
-msgstr "Kun de valgte rolle kan se panelet. Hvis ingen roller er valgt har alle adgang."
-
-#: panels.module:403
-msgid "Path"
-msgstr "Sti"
-
-#: panels.module:404
-msgid "The URL path to give this page, i.e, path/to/page"
-msgstr "Sidens URL (f.eks. sti/til/side)"
-
-#: panels.module:508
-msgid "Save"
-msgstr "Gem"
-
-#: panels.module:527
-msgid "This area has no content."
-msgstr "Området har intet indhold."
-
-#: panels.module:550
-msgid "Configure"
-msgstr "Konfigurer"
-
-#: panels.module:599
-msgid "The panels has been saved."
-msgstr "Paneler gemt."
-
-#: panels.module:607
-msgid "Delete this item"
-msgstr "Slet element"
-
-#: panels.module:613
-msgid "Move item up"
-msgstr "Flyt element op"
-
-#: panels.module:614
-msgid "Move item down"
-msgstr "Flyt element ned"
-
-#: panels.module:749
-msgid "Unable to find requested layout %s"
-msgstr "Kan ikke finde layoutet %s"
-
-#: panels.module:853
-msgid "by %user"
-msgstr "af %user"
-
-#: panels.module:749;0
-msgid "panels"
-msgstr "paneler"
-
-#: panels.module:21
-msgid "create panels"
-msgstr "opret paneler"
-
-#: panels.module:21
-msgid "access all panels"
-msgstr "tilgå alle paneler"
-
-#: panels.info:0
-msgid "Create pages that are divided into areas of the page."
-msgstr "Opret sider der er inddelt i underområdet."
-
-#: content_types/block.inc:75
-#: content_types/views.inc:123
-msgid "Block"
-msgstr "Blok"
-
-#: content_types/block.inc:79;86
-msgid "Add block"
-msgstr "Tilføj blok"
-
-#: content_types/block.inc:107
-msgid "Override title"
-msgstr "Tilsidesæt titel"
-
-#: content_types/block.inc:108
-msgid "If checked, the block title will be overridden with the override title text."
-msgstr "Erstat bloktitlen med teksten i \"tilsidesæt titel\"."
-
-#: content_types/block.inc:113
-msgid "Override title text"
-msgstr "Tilsidesæt titeltekst"
-
-#: content_types/custom.inc:50
-msgid "Enter an optional title for custom content you define"
-msgstr "Indtast en titel for tilpasset indhold"
-
-#: content_types/custom.inc:57;64
-msgid "Add custom"
-msgstr "Tilføj tilpasset"
-
-#: content_types/custom.inc:73;74
-msgid "Title"
-msgstr "Titel"
-
-#: content_types/custom.inc:78
-msgid "Body"
-msgstr "Indhold"
-
-#: content_types/custom.inc:91
-msgid "CSS ID of this custom content."
-msgstr "CSS ID for tilpasset indhold."
-
-#: content_types/custom.inc:98
-msgid "CSS class"
-msgstr "CSS klasse"
-
-#: content_types/custom.inc:99
-msgid "CSS class of this custom content."
-msgstr "CSS klasse for tilpasset indhold."
-
-#: content_types/node.inc:42
-msgid "Enter the title or NID of a post"
-msgstr "Indtast node ID for indlæg"
-
-#: content_types/node.inc:50;57
-msgid "Add post"
-msgstr "Tilføj indlæg"
-
-#: content_types/node.inc:68
-msgid "Unable to find \"%s\""
-msgstr "Kan ikke finde \"%s\""
-
-#: content_types/node.inc:82
-msgid "Teaser"
-msgstr "Smagsprøve"
-
-#: content_types/node.inc:85
-msgid "Check here to show only the node teaser"
-msgstr "Vis kun smagsprøver"
-
-#: content_types/node.inc:90
-msgid "Display links"
-msgstr "Vis links"
-
-#: content_types/node.inc:91
-msgid "Check here to display the links with the post."
-msgstr "Vis links"
-
-#: content_types/node.inc:96
-msgid "Suppress node title"
-msgstr "Skjul titel"
-
-#: content_types/node.inc:97
-msgid "Check here to suppress the node title."
-msgstr "Skjul titel"
-
-#: content_types/views.inc:86
-msgid "Choose a view from the views module"
-msgstr "Vælg en visning"
-
-#: content_types/views.inc:90;97
-msgid "Add view"
-msgstr "Tilføj visning"
-
-#: content_types/views.inc:121
-msgid "View type"
-msgstr "Visningstype"
-
-#: content_types/views.inc:122
-msgid "Select which type of the view to display."
-msgstr "Vælg hvilken udgave af visning der skal vises."
-
-#: content_types/views.inc:123
-msgid "Page"
-msgstr "Side"
-
-#: content_types/views.inc:123
-msgid "Embedded"
-msgstr "Indlejret"
-
-#: content_types/views.inc:128
-msgid "Pager ID"
-msgstr "Sideskifter-ID"
-
-#: content_types/views.inc:130
-msgid "Select the numeric pager ID to use, or 0 to not have use paging. Select \"1\" if you aren't sure what this means"
-msgstr "Vælg et numerisk sideskifter-ID, eller angiv 0 for ikke at bruge sideskift. Vælg \"1\" hvis du er i tvivl om hvad dette betyder."
-
-#: content_types/views.inc:136
-msgid "Posts to Display"
-msgstr "Antal indlæg"
-
-#: content_types/views.inc:138
-msgid "Select the number of posts to display, or 0 to display all results."
-msgstr "Vælg hvor mange indlæg der skal vises, eller 0 for at vise alle indlæg."
-
-#: content_types/views.inc:144
-msgid "View arguments"
-msgstr "Argumenter til visning"
-
-#: content_types/views.inc:146
-msgid "Arguments to send to the view as if they were part of the URL in the form of arg1/arg2/arg3. You can use %0, %1, %2, etc, to use arguments from the actual URL. For example, if your panel URL is foo/bar, and someone hits foo/bar/5 use %2 to get the 5."
-msgstr "Argumenter der skal sendes til visningen som om de er en del af URLen på formen arg1/arg2/arg3. Du kan bruge %0, %1, %2, osv. for at bruge argumenter fra den aktuelle URL."
-
-#: content_types/views.inc:152
-msgid "Override URL"
-msgstr "Tilsidesæt URL"
-
-#: content_types/views.inc:154
-msgid "If this is set, override the View URL; this can sometimes be useful to set to the panel URL"
-msgstr "Tilsidesæt visnings-URL; det kan nogle gange være nyttigt at bruge panel-URLen i stedet."
-
-#: content_types/views.inc:160
-msgid "Display view title"
-msgstr "Vis titel på visning"
-
-#: content_types/views.inc:161
-msgid "If checked, the title of the view will be displayed."
-msgstr "Vis visningens titel."
-
-#: layouts/threecol_25_50_25.inc:8
-msgid "Three column 25/50/25"
-msgstr "Tre spalter 25/50/25"
-
-#: layouts/threecol_25_50_25.inc:12
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33.inc:13
-#: layouts/threecol_33_34_33_stacked.inc:14
-#: layouts/twocol.inc:13
-#: layouts/twocol_stacked.inc:14
-msgid "Left side"
-msgstr "Venstre side"
-
-#: layouts/threecol_25_50_25.inc:12
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33.inc:13
-#: layouts/threecol_33_34_33_stacked.inc:14
-msgid "Middle column"
-msgstr "Midterste spalte"
-
-#: layouts/threecol_25_50_25.inc:12
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33.inc:13
-#: layouts/threecol_33_34_33_stacked.inc:14
-#: layouts/twocol.inc:13
-#: layouts/twocol_stacked.inc:14
-msgid "Right side"
-msgstr "Højre side"
-
-#: layouts/threecol_25_50_25_stacked.inc:10
-msgid "Three column 25/50/25 stacked"
-msgstr "Tre spalter 25/50/25 stablet"
-
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33_stacked.inc:14
-#: layouts/twocol_stacked.inc:14
-msgid "Top"
-msgstr "Top"
-
-#: layouts/threecol_25_50_25_stacked.inc:14
-#: layouts/threecol_33_34_33_stacked.inc:14
-#: layouts/twocol_stacked.inc:14
-msgid "Bottom"
-msgstr "Bund"
-
-#: layouts/threecol_33_34_33.inc:9
-msgid "Three column 33/34/33"
-msgstr "Tre spalter 33/34/33"
-
-#: layouts/threecol_33_34_33_stacked.inc:10
-msgid "Three column 33/34/33 stacked"
-msgstr "Tre spalter 33/34/33 stablet"
-
-#: layouts/twocol.inc:9
-msgid "Two column"
-msgstr "To spalter"
-
-#: layouts/twocol_stacked.inc:10
-msgid "Two column stacked"
-msgstr "To spalter stablet"
-
Index: modules/panels/LICENSE.txt
===================================================================
RCS file: modules/panels/LICENSE.txt
diff -N modules/panels/LICENSE.txt
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ modules/panels/LICENSE.txt 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,274 @@
+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: modules/panels/translations/da.po
===================================================================
RCS file: modules/panels/translations/da.po
diff -N modules/panels/translations/da.po
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ modules/panels/translations/da.po 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,396 @@
+# Danish translation of Drupal (panels.module)
+# Copyright 2007 Morten Wulff
+msgid ""
+msgstr ""
+"Project-Id-Version: Danish translation of Drupal (panels.module) $Id: da.po,v 1.1.2.1 2007/09/12 13:37:16 wulff Exp $\n"
+"POT-Creation-Date: 2007-09-12 13:59+0200\n"
+"PO-Revision-Date: 2007-09-12 15:36+0100\n"
+"Last-Translator: Morten Wulff \n"
+"Language-Team: Danish \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-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+
+#: panels.module:11
+msgid "
You may peruse a list of your current panels layouts and edit them, or click add to create a new page.
"
+msgstr "
Du kan gennemse en liste af eksiterende paneler eller klikke for at tilføje en ny side.
"
+
+#: panels.module:13
+msgid "
Choose a layout for your new page from the list below.
"
+msgstr "
Vælg et layout fra listen herunder.
"
+
+#: panels.module:60
+#: panels.info:0
+msgid "Panels"
+msgstr "Paneler"
+
+#: panels.module:63
+msgid "Create pages on your site that are 2 or 3 columns"
+msgstr "Opret sider der har 2 eller 3 spalter"
+
+#: panels.module:67
+msgid "List"
+msgstr "Vis"
+
+#: panels.module:75;82
+msgid "Add"
+msgstr "Tilføj"
+
+#: panels.module:89
+msgid "Edit panels"
+msgstr "Rediger paneler"
+
+#: panels.module:96
+msgid "Delete panels"
+msgstr "Slet paneler"
+
+#: panels.module:105
+msgid "Autocomplete node"
+msgstr "Autofuldfør indholdselement"
+
+#: panels.module:199
+msgid "Edit"
+msgstr "Rediger"
+
+#: panels.module:200;228
+msgid "Delete"
+msgstr "Slet"
+
+#: panels.module:205
+msgid "Panel title"
+msgstr "Paneltitel"
+
+#: panels.module:206
+msgid "URL"
+msgstr "URL"
+
+#: panels.module:207
+msgid "Operations"
+msgstr "Handlinger"
+
+#: panels.module:225
+msgid "Are you sure you want to delete %title?"
+msgstr "Ønsker du at slette %title?"
+
+#: panels.module:227
+msgid "This action cannot be undone."
+msgstr "Denne handling kan ikke fortrydes."
+
+#: panels.module:228
+msgid "Cancel"
+msgstr "Annuller"
+
+#: panels.module:308
+msgid "Add content"
+msgstr "Tilføj indhold"
+
+#: panels.module:310
+msgid "Select an area to add content to, then select a type of content and click the appropriate button. The content will be added."
+msgstr "Vælg hvilket område du vil føje indhold til, vælg hvilken type du vil tilføje og klik på den relevante knap."
+
+#: panels.module:319
+msgid "Area"
+msgstr "Område"
+
+#: panels.module:358
+msgid "General information"
+msgstr "Generel information"
+
+#: panels.module:375
+msgid "Page title"
+msgstr "Sidetitel"
+
+#: panels.module:376
+msgid "The page title for this panels layout"
+msgstr "Panelets sidetitel"
+
+#: panels.module:382
+#: content_types/custom.inc:90
+msgid "CSS ID"
+msgstr "CSS ID"
+
+#: panels.module:383
+msgid "The CSS ID to apply to this page"
+msgstr "Sidens CSS ID"
+
+#: panels.module:394
+msgid "Access"
+msgstr "Adgang"
+
+#: panels.module:397
+msgid "Only the checked roles will be able to see this panel in any form; if no roles are checked, access will not be restricted."
+msgstr "Kun de valgte rolle kan se panelet. Hvis ingen roller er valgt har alle adgang."
+
+#: panels.module:403
+msgid "Path"
+msgstr "Sti"
+
+#: panels.module:404
+msgid "The URL path to give this page, i.e, path/to/page"
+msgstr "Sidens URL (f.eks. sti/til/side)"
+
+#: panels.module:508
+msgid "Save"
+msgstr "Gem"
+
+#: panels.module:527
+msgid "This area has no content."
+msgstr "Området har intet indhold."
+
+#: panels.module:550
+msgid "Configure"
+msgstr "Konfigurer"
+
+#: panels.module:599
+msgid "The panels has been saved."
+msgstr "Paneler gemt."
+
+#: panels.module:607
+msgid "Delete this item"
+msgstr "Slet element"
+
+#: panels.module:613
+msgid "Move item up"
+msgstr "Flyt element op"
+
+#: panels.module:614
+msgid "Move item down"
+msgstr "Flyt element ned"
+
+#: panels.module:749
+msgid "Unable to find requested layout %s"
+msgstr "Kan ikke finde layoutet %s"
+
+#: panels.module:853
+msgid "by %user"
+msgstr "af %user"
+
+#: panels.module:749;0
+msgid "panels"
+msgstr "paneler"
+
+#: panels.module:21
+msgid "create panels"
+msgstr "opret paneler"
+
+#: panels.module:21
+msgid "access all panels"
+msgstr "tilgå alle paneler"
+
+#: panels.info:0
+msgid "Create pages that are divided into areas of the page."
+msgstr "Opret sider der er inddelt i underområdet."
+
+#: content_types/block.inc:75
+#: content_types/views.inc:123
+msgid "Block"
+msgstr "Blok"
+
+#: content_types/block.inc:79;86
+msgid "Add block"
+msgstr "Tilføj blok"
+
+#: content_types/block.inc:107
+msgid "Override title"
+msgstr "Tilsidesæt titel"
+
+#: content_types/block.inc:108
+msgid "If checked, the block title will be overridden with the override title text."
+msgstr "Erstat bloktitlen med teksten i \"tilsidesæt titel\"."
+
+#: content_types/block.inc:113
+msgid "Override title text"
+msgstr "Tilsidesæt titeltekst"
+
+#: content_types/custom.inc:50
+msgid "Enter an optional title for custom content you define"
+msgstr "Indtast en titel for tilpasset indhold"
+
+#: content_types/custom.inc:57;64
+msgid "Add custom"
+msgstr "Tilføj tilpasset"
+
+#: content_types/custom.inc:73;74
+msgid "Title"
+msgstr "Titel"
+
+#: content_types/custom.inc:78
+msgid "Body"
+msgstr "Indhold"
+
+#: content_types/custom.inc:91
+msgid "CSS ID of this custom content."
+msgstr "CSS ID for tilpasset indhold."
+
+#: content_types/custom.inc:98
+msgid "CSS class"
+msgstr "CSS klasse"
+
+#: content_types/custom.inc:99
+msgid "CSS class of this custom content."
+msgstr "CSS klasse for tilpasset indhold."
+
+#: content_types/node.inc:42
+msgid "Enter the title or NID of a post"
+msgstr "Indtast node ID for indlæg"
+
+#: content_types/node.inc:50;57
+msgid "Add post"
+msgstr "Tilføj indlæg"
+
+#: content_types/node.inc:68
+msgid "Unable to find \"%s\""
+msgstr "Kan ikke finde \"%s\""
+
+#: content_types/node.inc:82
+msgid "Teaser"
+msgstr "Smagsprøve"
+
+#: content_types/node.inc:85
+msgid "Check here to show only the node teaser"
+msgstr "Vis kun smagsprøver"
+
+#: content_types/node.inc:90
+msgid "Display links"
+msgstr "Vis links"
+
+#: content_types/node.inc:91
+msgid "Check here to display the links with the post."
+msgstr "Vis links"
+
+#: content_types/node.inc:96
+msgid "Suppress node title"
+msgstr "Skjul titel"
+
+#: content_types/node.inc:97
+msgid "Check here to suppress the node title."
+msgstr "Skjul titel"
+
+#: content_types/views.inc:86
+msgid "Choose a view from the views module"
+msgstr "Vælg en visning"
+
+#: content_types/views.inc:90;97
+msgid "Add view"
+msgstr "Tilføj visning"
+
+#: content_types/views.inc:121
+msgid "View type"
+msgstr "Visningstype"
+
+#: content_types/views.inc:122
+msgid "Select which type of the view to display."
+msgstr "Vælg hvilken udgave af visning der skal vises."
+
+#: content_types/views.inc:123
+msgid "Page"
+msgstr "Side"
+
+#: content_types/views.inc:123
+msgid "Embedded"
+msgstr "Indlejret"
+
+#: content_types/views.inc:128
+msgid "Pager ID"
+msgstr "Sideskifter-ID"
+
+#: content_types/views.inc:130
+msgid "Select the numeric pager ID to use, or 0 to not have use paging. Select \"1\" if you aren't sure what this means"
+msgstr "Vælg et numerisk sideskifter-ID, eller angiv 0 for ikke at bruge sideskift. Vælg \"1\" hvis du er i tvivl om hvad dette betyder."
+
+#: content_types/views.inc:136
+msgid "Posts to Display"
+msgstr "Antal indlæg"
+
+#: content_types/views.inc:138
+msgid "Select the number of posts to display, or 0 to display all results."
+msgstr "Vælg hvor mange indlæg der skal vises, eller 0 for at vise alle indlæg."
+
+#: content_types/views.inc:144
+msgid "View arguments"
+msgstr "Argumenter til visning"
+
+#: content_types/views.inc:146
+msgid "Arguments to send to the view as if they were part of the URL in the form of arg1/arg2/arg3. You can use %0, %1, %2, etc, to use arguments from the actual URL. For example, if your panel URL is foo/bar, and someone hits foo/bar/5 use %2 to get the 5."
+msgstr "Argumenter der skal sendes til visningen som om de er en del af URLen på formen arg1/arg2/arg3. Du kan bruge %0, %1, %2, osv. for at bruge argumenter fra den aktuelle URL."
+
+#: content_types/views.inc:152
+msgid "Override URL"
+msgstr "Tilsidesæt URL"
+
+#: content_types/views.inc:154
+msgid "If this is set, override the View URL; this can sometimes be useful to set to the panel URL"
+msgstr "Tilsidesæt visnings-URL; det kan nogle gange være nyttigt at bruge panel-URLen i stedet."
+
+#: content_types/views.inc:160
+msgid "Display view title"
+msgstr "Vis titel på visning"
+
+#: content_types/views.inc:161
+msgid "If checked, the title of the view will be displayed."
+msgstr "Vis visningens titel."
+
+#: layouts/threecol_25_50_25.inc:8
+msgid "Three column 25/50/25"
+msgstr "Tre spalter 25/50/25"
+
+#: layouts/threecol_25_50_25.inc:12
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33.inc:13
+#: layouts/threecol_33_34_33_stacked.inc:14
+#: layouts/twocol.inc:13
+#: layouts/twocol_stacked.inc:14
+msgid "Left side"
+msgstr "Venstre side"
+
+#: layouts/threecol_25_50_25.inc:12
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33.inc:13
+#: layouts/threecol_33_34_33_stacked.inc:14
+msgid "Middle column"
+msgstr "Midterste spalte"
+
+#: layouts/threecol_25_50_25.inc:12
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33.inc:13
+#: layouts/threecol_33_34_33_stacked.inc:14
+#: layouts/twocol.inc:13
+#: layouts/twocol_stacked.inc:14
+msgid "Right side"
+msgstr "Højre side"
+
+#: layouts/threecol_25_50_25_stacked.inc:10
+msgid "Three column 25/50/25 stacked"
+msgstr "Tre spalter 25/50/25 stablet"
+
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33_stacked.inc:14
+#: layouts/twocol_stacked.inc:14
+msgid "Top"
+msgstr "Top"
+
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33_stacked.inc:14
+#: layouts/twocol_stacked.inc:14
+msgid "Bottom"
+msgstr "Bund"
+
+#: layouts/threecol_33_34_33.inc:9
+msgid "Three column 33/34/33"
+msgstr "Tre spalter 33/34/33"
+
+#: layouts/threecol_33_34_33_stacked.inc:10
+msgid "Three column 33/34/33 stacked"
+msgstr "Tre spalter 33/34/33 stablet"
+
+#: layouts/twocol.inc:9
+msgid "Two column"
+msgstr "To spalter"
+
+#: layouts/twocol_stacked.inc:10
+msgid "Two column stacked"
+msgstr "To spalter stablet"
+
Index: modules/panels/translations/de.po
===================================================================
RCS file: modules/panels/translations/de.po
diff -N modules/panels/translations/de.po
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ modules/panels/translations/de.po 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,424 @@
+# $Id: de.po,v 1.1.2.1 2007/06/02 10:38:50 hass Exp $
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME
+# Generated from files:
+# panels.module,v 1.10.2.9 2007/03/15 23:13:41 merlinofchaos
+# fourcol_25_25_25_25.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
+# threecol_33_33_33.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
+# twocol_25_75.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
+# twocol_33_66.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
+# twocol_38_62.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
+# twocol_50_50.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
+# twocol_62_38.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
+# twocol_66_33.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
+# twocol_75_25.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
+# threecol_25_50_25_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
+# threecol_33_34_33.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
+# threecol_33_34_33_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
+# twocol.inc,v 1.6 2006/08/22 23:54:20 merlinofchaos
+# twocol_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: panels 5.x\n"
+"POT-Creation-Date: 2007-03-24 21:42+0100\n"
+"PO-Revision-Date: 2007-06-02 12:37+0100\n"
+"Last-Translator: Alexander Hass\n"
+"Language-Team: Alexander Hass\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-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: panels.module:382
+#: content_types/custom.inc:90
+msgid "CSS ID"
+msgstr "CSS ID"
+
+#: content_types/block.inc:75
+#: content_types/views.inc:123
+msgid "Block"
+msgstr "Block"
+
+#: layouts/threecol_25_50_25.inc:12
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33.inc:13
+#: layouts/threecol_33_34_33_stacked.inc:14
+#: layouts/twocol.inc:13
+#: layouts/twocol_stacked.inc:14
+msgid "Left side"
+msgstr "Linke Spalte"
+
+#: layouts/threecol_25_50_25.inc:12
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33.inc:13
+#: layouts/threecol_33_34_33_stacked.inc:14
+msgid "Middle column"
+msgstr "Mittlere Spalte"
+
+#: layouts/threecol_25_50_25.inc:12
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33.inc:13
+#: layouts/threecol_33_34_33_stacked.inc:14
+#: layouts/twocol.inc:13
+#: layouts/twocol_stacked.inc:14
+msgid "Right side"
+msgstr "Rechte Spalte"
+
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33_stacked.inc:14
+#: layouts/twocol_stacked.inc:14
+msgid "Top"
+msgstr "Oben"
+
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33_stacked.inc:14
+#: layouts/twocol_stacked.inc:14
+msgid "Bottom"
+msgstr "Unten"
+
+#: content_types/block.inc:79
+#: ;86
+msgid "Add block"
+msgstr "Block hinzufügen"
+
+#: content_types/block.inc:107
+msgid "Override title"
+msgstr "Titel überschreiben"
+
+#: content_types/block.inc:108
+msgid "If checked, the block title will be overridden with the override title text."
+msgstr "Sobald aktiviert, wird der Blocktitel mit dem Texttitel überschrieben."
+
+#: content_types/block.inc:113
+msgid "Override title text"
+msgstr "Titeltext überschreiben"
+
+#: content_types/custom.inc:50
+msgid "Enter an optional title for custom content you define"
+msgstr "Einen optionalen Titel für benutzerdefinierten Inhalt eingeben"
+
+#: content_types/custom.inc:57
+#: ;64
+msgid "Add custom"
+msgstr "Benutzerdefiniert hinzufügen"
+
+#: content_types/custom.inc:73
+#: ;74
+msgid "Title"
+msgstr "Titel"
+
+#: content_types/custom.inc:78
+msgid "Body"
+msgstr "Textkörper"
+
+#: content_types/custom.inc:91
+msgid "CSS ID of this custom content."
+msgstr "CSS ID dieses benutzerdefinierten Inhaltes."
+
+#: content_types/custom.inc:98
+msgid "CSS class"
+msgstr "CSS Klasse"
+
+#: content_types/custom.inc:99
+msgid "CSS class of this custom content."
+msgstr "CSS Klasse dieses benutzerdefinierten Inhaltes."
+
+#: content_types/node.inc:42
+msgid "Enter the title or NID of a post"
+msgstr "Den Titel oder die NID des Beitrages eingeben"
+
+#: content_types/node.inc:50
+#: ;57
+msgid "Add post"
+msgstr "Beitrag hinzufügen"
+
+#: content_types/node.inc:68
+msgid "Unable to find \"%s\""
+msgstr "„%s“ wurde nicht gefunden"
+
+#: content_types/node.inc:82
+msgid "Teaser"
+msgstr "Anrisstext"
+
+#: content_types/node.inc:85
+msgid "Check here to show only the node teaser"
+msgstr "Aktivieren, um nur den Anrisstext des Beitrages anzuzeigen."
+
+#: content_types/node.inc:90
+msgid "Display links"
+msgstr "Verweise anzeigen"
+
+#: content_types/node.inc:91
+msgid "Check here to display the links with the post."
+msgstr "Aktivieren, um die Verweise mit dem Beitrag anzuzeigen."
+
+#: content_types/node.inc:96
+msgid "Suppress node title"
+msgstr "Beitragstitel unterdrücken"
+
+#: content_types/node.inc:97
+msgid "Check here to suppress the node title."
+msgstr "Aktivieren, um den Beitragstitel zu unterdrücken."
+
+#: layouts/threecol_25_50_25.inc:8
+msgid "Three column 25/50/25"
+msgstr "Drei Spalten 25/50/25"
+
+#: layouts/threecol_25_50_25_stacked.inc:10
+msgid "Three column 25/50/25 stacked"
+msgstr "Drei Spalten 25/50/25 gestapelt"
+
+#: layouts/threecol_33_34_33.inc:9
+msgid "Three column 33/34/33"
+msgstr "Drei Spalten 33/34/33"
+
+#: layouts/threecol_33_34_33_stacked.inc:10
+msgid "Three column 33/34/33 stacked"
+msgstr "Drei Spalten 33/34/33 gestapelt"
+
+#: layouts/twocol.inc:9
+msgid "Two column"
+msgstr "Zwei Spalten"
+
+#: layouts/twocol_stacked.inc:10
+msgid "Two column stacked"
+msgstr "Zwei Spalten gestapelt"
+
+#: panels.module:11
+msgid "
You may peruse a list of your current panels layouts and edit them, or click add to create a new page.
"
+msgstr "
Die Liste der aktuellen Panel Layouts kann überprüft, bearbeitet oder eine neue Seite erstellt werden.
"
+
+#: panels.module:13
+msgid "
Choose a layout for your new page from the list below.
"
+msgstr "
Ein Layout für die neue Seite von der unten aufgeführten Liste auswählen.
"
+
+#: panels.module:60
+#: panels.info:0
+msgid "Panels"
+msgstr "Panels"
+
+#: panels.module:63
+msgid "Create pages on your site that are 2 or 3 columns"
+msgstr "Seiten mit 2 oder 3 Spalten in der Webseite erstellen"
+
+#: panels.module:67
+msgid "List"
+msgstr "Alle anzeigen"
+
+#: panels.module:75
+#: ;82
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: panels.module:89
+msgid "Edit panels"
+msgstr "Panels bearbeiten"
+
+#: panels.module:96
+msgid "Delete panels"
+msgstr "Panels löschen"
+
+#: panels.module:105
+msgid "Autocomplete node"
+msgstr "Beitrag automatisch vervollständigen"
+
+#: panels.module:199
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: panels.module:200
+#: ;228
+msgid "Delete"
+msgstr "Löschen"
+
+#: panels.module:205
+msgid "Panel title"
+msgstr "Paneltitel"
+
+#: panels.module:206
+msgid "URL"
+msgstr "URL"
+
+#: panels.module:207
+msgid "Operations"
+msgstr "Operationen"
+
+#: panels.module:225
+msgid "Are you sure you want to delete %title?"
+msgstr "Soll %title wirklich gelöscht werden?"
+
+#: panels.module:227
+msgid "This action cannot be undone."
+msgstr "Diese Aktion kann nicht rückgängig gemacht werden."
+
+#: panels.module:228
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: panels.module:308
+msgid "Add content"
+msgstr "Inhalt hinzufügen"
+
+#: panels.module:310
+msgid "Select an area to add content to, then select a type of content and click the appropriate button. The content will be added."
+msgstr "Zuerst einen Bereich auswählen zu dem Inhalt hinzugefügt werden soll, dann einen Inhalt auswählen und den entsprechenden Knopf drücken. Der Inhalt wird hinzugefügt."
+
+#: panels.module:319
+msgid "Area"
+msgstr "Bereich"
+
+#: panels.module:358
+msgid "General information"
+msgstr "Allgemeine Information"
+
+#: panels.module:375
+msgid "Page title"
+msgstr "Seitentitel"
+
+#: panels.module:376
+msgid "The page title for this panels layout"
+msgstr "Der Seitentitel für dieses Panels Layout"
+
+#: panels.module:383
+msgid "The CSS ID to apply to this page"
+msgstr "Die CSS ID, welche auf diese Seite angewendet werden soll"
+
+#: panels.module:394
+msgid "Access"
+msgstr "Zugriff"
+
+#: panels.module:397
+msgid "Only the checked roles will be able to see this panel in any form; if no roles are checked, access will not be restricted."
+msgstr "Nur die aktivierten Rollen können dieses Panel in jeglicher Art sehen; Wenn keine Rollen aktiviert sind, wird der Zugriff nicht beschränkt."
+
+#: panels.module:403
+msgid "Path"
+msgstr "Pfad"
+
+#: panels.module:404
+msgid "The URL path to give this page, i.e, path/to/page"
+msgstr "Der URL Pfad den diese Seite erhalten soll, z.b.: pfad/zu/seite"
+
+#: panels.module:508
+msgid "Save"
+msgstr "Speichern"
+
+#: panels.module:527
+msgid "This area has no content."
+msgstr "Dieser Bereich hat keinen Inhalt."
+
+#: panels.module:550
+msgid "Configure"
+msgstr "Konfigurieren"
+
+#: panels.module:599
+msgid "The panels has been saved."
+msgstr "Das Panel wurde gespeichert."
+
+#: panels.module:607
+msgid "Delete this item"
+msgstr "Diesen Beitrag löschen"
+
+#: panels.module:613
+msgid "Move item up"
+msgstr "Beitrag nach oben verschieben"
+
+#: panels.module:614
+msgid "Move item down"
+msgstr "Beitrag nach unten verschieben"
+
+#: panels.module:749
+msgid "Unable to find requested layout %s"
+msgstr "Das Layout %s konnte nicht gefunden werden"
+
+#: panels.module:853
+msgid "by %user"
+msgstr "von %user"
+
+#: panels.module:749
+#: ;0 panels.info:0
+msgid "panels"
+msgstr "panels"
+
+#: panels.module:21
+msgid "create panels"
+msgstr "Panels erstellen"
+
+#: panels.module:21
+msgid "access all panels"
+msgstr "Zugriff auf alle Panels"
+
+#: panels.info:0
+msgid "Create pages that are divided into areas of the page."
+msgstr "Erstelle Seiten, welche in Bereiche der Seite unterteilt sind."
+
+#: content_types/views.inc:86
+msgid "Choose a view from the views module"
+msgstr "Eine Ansicht vom Ansichtenmodul wählen"
+
+#: content_types/views.inc:90
+#: ;97
+msgid "Add view"
+msgstr "Ansicht hinzufügen"
+
+#: content_types/views.inc:121
+msgid "View type"
+msgstr "Ansichtstyp"
+
+#: content_types/views.inc:122
+msgid "Select which type of the view to display."
+msgstr "Den Typ einer Ansicht auswählen, der angezeigt werden soll."
+
+#: content_types/views.inc:123
+msgid "Page"
+msgstr "Seite"
+
+#: content_types/views.inc:123
+msgid "Embedded"
+msgstr "Eingebettet"
+
+#: content_types/views.inc:128
+msgid "Pager ID"
+msgstr "Pager ID"
+
+#: content_types/views.inc:130
+msgid "Select the numeric pager ID to use, or 0 to not have use paging. Select \"1\" if you aren't sure what this means"
+msgstr "Die zu verwendende Seitenreiter ID auswählen, oder 0 um keine Seitenreiter zu verwenden. Bei Unsicherheiten \"1\" wählen."
+
+#: content_types/views.inc:136
+msgid "Posts to Display"
+msgstr "Anzuzeigende Beiträge"
+
+#: content_types/views.inc:138
+msgid "Select the number of posts to display, or 0 to display all results."
+msgstr "Die Anzahl der anzuzeigenden Beiträge auswählen, oder 0 um alle Ergebnisse anzuzeigen."
+
+#: content_types/views.inc:144
+msgid "View arguments"
+msgstr "Argumente anzeigen"
+
+#: content_types/views.inc:146
+msgid "Arguments to send to the view as if they were part of the URL in the form of arg1/arg2/arg3. You can use %0, %1, %2, etc, to use arguments from the actual URL. For example, if your panel URL is foo/bar, and someone hits foo/bar/5 use %2 to get the 5."
+msgstr "Argumente an die Ansicht übergeben, als wenn diese Teil der URL sind, in Form von arg1/arg2/arg3. Um Argumente von der aktuellen URL zu verwenden, kann %0, %1, %2, usw. verwendet werden. Sollte die Panel URL foo/bar lauten und jemand greift auf foo/bar/5 zu, kann %2 verwendet werden, um die 5 zu erhalten."
+
+#: content_types/views.inc:152
+msgid "Override URL"
+msgstr "URL überschreiben"
+
+#: content_types/views.inc:154
+msgid "If this is set, override the View URL; this can sometimes be useful to set to the panel URL"
+msgstr "Sobald aktiviert, wird die Ansichten URL überschrieben; Manchmal kann es sinnvoll sein, die Panel URL einzusetzten."
+
+#: content_types/views.inc:160
+msgid "Display view title"
+msgstr "Ansichtentitel anzeigen"
+
+#: content_types/views.inc:161
+msgid "If checked, the title of the view will be displayed."
+msgstr "Sobald aktiviert, wird der Titel der Ansicht angezeigt."
+
Index: modules/panels/panels.admin.inc
===================================================================
RCS file: modules/panels/panels.admin.inc
diff -N modules/panels/panels.admin.inc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ modules/panels/panels.admin.inc 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,621 @@
+ TRUE,
+ '#button_type' => 'submit'
+ );
+ return $type;
+}
+
+/**
+ * Theme our image button.
+ */
+function theme_panels_imagebutton($element) {
+ return '\n";
+}
+
+function _panels_imagebutton_value() {
+ // null function guarantees default_value doesn't get moved to #value.
+}
+
+/**
+ * Add a single button to a form.
+ */
+function _panels_add_button($image, $name, $text) {
+ $module_path = base_path() . drupal_get_path('module', 'panels');
+
+ return array(
+ '#type' => 'panels_imagebutton',
+ '#image' => $module_path .'/images/'. $image,
+ '#title' => $text,
+ '#default_value' => $name,
+ );
+}
+
+/**
+ * Set a button to a blank image -- used for placeholders when buttons are
+ * not relevant but just removing it would be visually unappealing.
+ */
+function _panels_set_blank(&$form) {
+ $form['#type'] = 'markup';
+ $form['#value'] = theme('image', drupal_get_path('module', 'panels') .'/images/blank.gif');
+}
+
+// ---------------------------------------------------------------------------
+// panels administrative pages
+
+/**
+ * Provide a list of panels, with links to edit or delete them.
+ */
+function _panels_list_page() {
+ $result = db_query("SELECT * FROM {panels_info} ORDER BY title");
+ $items = array();
+ while ($panels = db_fetch_object($result)) {
+ $item = array();
+ $item[] = check_plain($panels->title);
+ $item[] = l($panels->path, $panels->path);
+ $item[] = implode(' | ', array(
+ l(t('Edit'), "admin/build/panels/edit/$panels->did"),
+ l(t('Delete'), "admin/build/panels/delete/$panels->did"),
+ ));
+ $items[] = $item;
+ }
+ $header = array(
+ t('Panel title'),
+ t('URL'),
+ t('Operations'),
+ );
+ $output = theme('table', $header, $items);
+ return $output;
+}
+
+/*
+ * Provide a form to confirm deletion of a panel page.
+ */
+function panels_delete_form(&$form_state, $panel) {
+ $form['title'] = array('#type' => 'hidden', '#value' => $panel->title);
+ $form['did'] = array('#type' => 'hidden', '#value' => $panel->did);
+
+ return confirm_form(
+ $form,
+ t('Delete panel %title?', array('%title' => $panel->title)),
+ 'admin/build/panels',
+ '
'. t('Are you sure you want to delete %title?', array('%title' => $panel->title)) .'
',
+ t('Delete'),
+ t('Cancel')
+ );
+}
+
+function panels_delete_form_submit($form, &$form_state) {
+ _panels_delete_panels((object) $form_state['values']);
+ drupal_set_message(t('The panel %title has been deleted.', array('%title' => $form_state['values']['title'])));
+ $form_state['redirect'] = 'admin/build/panels';
+ return;
+}
+
+/**
+ * Handle the add panels page
+ */
+function panels_add_page_form(&$form_state, $layout = NULL) {
+
+ $layouts = _panels_get_layouts();
+ $form = array();
+ drupal_add_css(drupal_get_path('module', 'panels') .'/panels_admin.css');
+
+ if (empty($layout)) {
+ $form['layout'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Layouts'),
+ '#collapsible' => false,
+ '#description' => t('Choose a layout for your new page from the list below.')
+ );
+ foreach ($layouts as $id => $layout) {
+ if (empty($default_id)) {
+ // grab the first one for our default.
+ $default_id = $id;
+ }
+ $file = _panels_get_file_path($layout['module'], $layout['icon'], false);
+ $form['layout'][$id] = array(
+ '#type' => 'image_button',
+ '#title' => t('Layout @title', array('@title' => $layout['title'])),
+ '#src' => $file,
+ '#prefix' => '
',
+ '#suffix' => '
'. $layout['title'] .'
',
+ '#layout' => $id,
+ );
+ }
+ return $form;
+ }
+
+ if (empty($layouts[$layout])) {
+ return drupal_not_found();
+ }
+
+ $panels->layout = $layout;
+ // TODO: return drupal_get_form('panels_edit_form', $panels);
+ return array_merge($form, panels_edit_form($form_state, $panels));
+}
+
+function panels_add_page_form_submit($form, &$form_state) {
+ $form_state['redirect'] = 'admin/build/panels/add/'. check_plain($form_state['clicked_button']['#layout']) .'/page';
+}
+
+// ---------------------------------------------------------------------------
+// panels administrative pages
+
+/**
+ * shortcut to ease the syntax of the various form builder tricks we use.
+ */
+function _panels_form_builder($form, &$form_state, $form_id = 'panels_edit_form') {
+ $form['#post'] = $_POST;
+ $form = form_builder($form_id, $form, $form_state);
+}
+
+/**
+ * Edit an already loaded panels.
+ */
+function panels_edit_form(&$form_state, $panels) {
+
+ drupal_add_css(drupal_get_path('module', 'panels') .'/panels_admin.css');
+ $layouts = _panels_get_layouts();
+ $layout = $layouts[$panels->layout];
+ $content_types = _panels_get_content_types();
+
+ // Process all our add button stuff first so we can add stuff to the
+ // form semi dynamically.
+ $form['add'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Add content'),
+ '#collapsible' => false,
+ '#description' => t('Select an area to add content to, then select a type of content and click the appropriate button. The content will be added.'),
+ );
+
+ // Drop the array keys into a temporary in order to protect references.
+ $temp = array_keys($layout['content areas']);
+ $default_radio = array_shift($temp);
+
+ $form['add']['area'] = array(
+ '#type' => 'radios',
+ '#title' => t('Area'),
+ '#options' => $layout['content areas'],
+ '#prefix' => '
',
+ );
+
+ $form['info']['layout-display'] = array(
+ '#value' => 'Layout: '. $layout['title'],
+ );
+
+ $form['info']['title'] = array(
+ '#type' => 'textfield',
+ '#default_value' => (!empty($panels->title) ? $panels->title : ''),
+ '#title' => t('Page title'),
+ '#description' => t('The page title for this panels layout'),
+ );
+
+ $form['info']['css_id'] = array(
+ '#type' => 'textfield',
+ '#default_value' => (!empty($panels->css_id) ? $panels->css_id : ''),
+ '#title' => t('CSS ID'),
+ '#description' => t('The CSS ID to apply to this page'),
+ );
+
+ $rids = array();
+ $result = db_query("SELECT r.rid, r.name FROM {role} r ORDER BY r.name");
+ while ($obj = db_fetch_object($result)) {
+ $rids[$obj->rid] = $obj->name;
+ }
+
+ $form['info']['access'] = array(
+ '#type' => 'checkboxes',
+ '#title' => t('Access'),
+ '#default_value' => (!empty($panels->access) ? $panels->access : ''),
+ '#options' => $rids,
+ '#description' => t('Only the checked roles will be able to see this panel in any form; if no roles are checked, access will not be restricted.'),
+ );
+
+ $form['info']['path'] = array(
+ '#type' => 'textfield',
+ '#default_value' => (!empty($panels->path) ? $panels->path : NULL),
+ '#title' => t('Path'),
+ '#description' => t('The URL path to give this page, i.e, path/to/page'),
+ '#required' => TRUE,
+ );
+
+ $form['content'] = array(
+ '#tree' => true,
+ );
+
+ // Go through our content areas and display what we have.
+ foreach ($layout['content areas'] as $area => $title) {
+ $list = array();
+ $form['content'][$area] = array(
+ '#tree' => true,
+ );
+
+ // Construct the order, feeding it the default order for what
+ // we know about. When we pull it back out, it may well be
+ // different due to past submits.
+ $order = array();
+ if (!empty($panels->content[$area])) {
+ $order = array_keys($panels->content[$area]);
+ }
+ $form['content'][$area]['order'] = array(
+ '#type' => 'hidden',
+ '#default_value' => serialize($order),
+ '#parents' => array('content', $area, 'order'),
+ '#programmed' => FALSE, // Fix for core D6 bug
+ );
+
+ // If an add button has added an item to the area, put it in and update
+ // the $order.
+ _panels_form_builder($form['content'][$area]['order'], $form_state);
+ // $order = unserialize($form['content'][$area]['order']['#value']);
+ $order = array();
+ if (!empty($form['content'][$area]['order']['#value'])) {
+ $order = unserialize($form['content'][$area]['order']['#value']);
+ }
+ if ($add->area == $area) {
+ // say THIS 5 times real fast
+ if (!empty($panels->content[$area]) && $order) {
+ $position = max(max(array_keys($order)), max(array_keys($panels->content[$area]))) + 1;
+ }
+ else if ($order) {
+ $position = max(array_keys($order)) + 1;
+ }
+ else {
+ $position = 0;
+ }
+
+ $panels->content[$area][$position] = $add;
+ $order[] = $position;
+ $form['content'][$area]['order']['#value'] = serialize($order);
+ }
+
+ // Go through each item in the area and render it.
+ $count = count($order);
+ foreach ($order as $position => $id) {
+ // place buttons to re-order content.
+ $form['content'][$area][$id]['buttons'] = array(
+ '#parents' => array('content', $area, $id, 'buttons'),
+ '#tree' => TRUE,
+ '#programmed' => FALSE, // Fix for core D6 bug
+ );
+ _panels_add_buttons($form['content'][$area][$id]['buttons'], $count, $position);
+
+ // figure out if one of those buttons was pressed
+ _panels_form_builder($form['content'][$area][$id]['buttons'], $form_state);
+ $deleted = false;
+ // FIXME: needs testing if $form_state['values'] works.
+ // foreach ($GLOBALS['form_values']['content'][$area][$id]['buttons'] as $button => $value) {
+ foreach ($form_state['values']['content'][$area][$id]['buttons'] as $button => $value) {
+ if ($value) {
+ $function = '_panels_move_'. $button;
+ $function($order, $position);
+ $form['content'][$area]['order']['#value'] = serialize($order);
+ if ($button == 'delete')
+ $deleted = true;
+ }
+ }
+ // If a content item was deleted, it still has buttons. Get rid of them.
+ // It had buttons because we needed to give it buttons to see if its
+ // buttons were clicked.
+ if ($deleted) {
+ unset($form['content'][$area][$id]['buttons']);
+ }
+ else {
+ // we finally get to add the conent item's content to the form.
+ $area_record = $panels->content[$area][$id];
+ $form['content'][$area][$id]['type'] = array(
+ '#type' => 'hidden',
+ '#default_value' => $area_record->type,
+ '#parents' => array('content', $area, $id, 'type'),
+ '#programmed' => FALSE, // Fix for core D6 bug
+ );
+ // retrieve what was already there -- so we can retain edits and
+ // content items that were added.
+ _panels_form_builder($form['content'][$area][$id]['type'], $form_state);
+ $type = $form['content'][$area][$id]['type']['#value'];
+ $function = $content_types[$type]['admin'];
+ if (function_exists($function)) {
+ $array = array(
+ '#tree' => true,
+ '#parents' => array('content', $area, $id, 'configuration'),
+ '#programmed' => FALSE, // Fix for core D6 bug
+ );
+ $form['content'][$area][$id]['configuration'] = array_merge($array, $function('edit', $area_record->configuration, array('content', $area, $id, 'configuration')));
+ _panels_form_builder($form['content'][$area][$id]['configuration'], $form_state);
+ }
+ }
+ }
+ }
+
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Save'),
+ );
+
+ return $form;
+}
+
+/**
+ * Display the form to edit a panels.
+ */
+function theme_panels_edit_form($form) {
+ $layouts = _panels_get_layouts();
+ $layout = $layouts[$form['layout']['#value']];
+
+ $content_types = _panels_get_content_types();
+
+ $content = array();
+ $output = '';
+ $output .= drupal_render($form['info']);
+ foreach ($layout['content areas'] as $area => $title) {
+ $order = unserialize($form['content'][$area]['order']['#value']);
+ $area_content = '';
+ $area_description = '';
+ if (!$order) {
+ $area_description = t('This area has no content.');
+ }
+ else {
+ $count = count($order);
+ foreach ($order as $position => $id) {
+ if ($count > 1) {
+ if ($position == 0 ) {
+ _panels_set_blank($form['content'][$area][$id]['buttons']['up']);
+ }
+ else if ($position == ($count - 1)) {
+ _panels_set_blank($form['content'][$area][$id]['buttons']['down']);
+ }
+ }
+ $type = NULL;
+ $function = NULL;
+ if (!empty($form['content'][$area][$id]['type']['#value'])) {
+ $type = $form['content'][$area][$id]['type']['#value'];
+ $function = $content_types[$type]['admin'];
+ }
+ if (function_exists($function)) {
+ // figure out the actual values; using the global because we need it
+ // to be in the same format it'll be in 'submit'.
+ global $form_values;
+ $conf_form = $form_values['content'][$area][$id]['configuration'];
+ $conf = $function('save', $conf_form);
+ $fieldset = array(
+ '#title' => t('Configure'),
+ '#children' => drupal_render($form['content'][$area][$id]['configuration']),
+ '#collapsible' => true,
+ '#collapsed' => true
+ );
+ $buttons = drupal_render($form['content'][$area][$id]['buttons']);
+ $area_content .= $buttons .' '. $function('list', $conf) . theme('fieldset', $fieldset);
+ }
+ }
+ }
+ $content[$area] = theme('fieldset', array(
+ '#title' => check_plain($title),
+ '#description' => $area_description,
+ '#value' => $area_content,
+ '#collapsible' => true,
+ '#collapsed' => false,
+ )
+ );
+ }
+
+ $output .= _panels_get_layout($layout, $content);
+
+ $output .= drupal_render($form);
+ return $output;
+}
+
+function panels_edit_form_validate($form, &$form_state) {
+ $content_types = _panels_get_content_types();
+ foreach ($form_state['values']['content'] as $area => $content) {
+ foreach ($content as $id => $item) {
+ if (is_numeric($id)) {
+ $function = $content_types[$item['type']]['admin'];
+ if (function_exists($function)) {
+ $function('validate', $item['configuration'], $form_state['values']['content'][$area][$id]['configuration']);
+ }
+ }
+ }
+ }
+}
+
+function panels_edit_form_submit($form, &$form_state) {
+ $panels = (object) $form_state['values'];
+ // be sure we get the order right.
+ foreach ($form_state['values']['content'] as $area => $content) {
+ $array = array();
+ $order = unserialize($content['order']);
+ if (is_array($order)) {
+ foreach ($order as $id) {
+ $array[] = $content[$id];
+ }
+ }
+ $panels->content[$area] = $array;
+ }
+ $panels->access = array_keys(array_filter($panels->access));
+ _panels_save_panels($panels);
+ drupal_set_message(t('The panels has been saved.'));
+ $form_state['redirect'] = 'admin/build/panels';
+}
+
+/**
+ * add the buttons to a content item
+ */
+function _panels_add_buttons(&$form, $count, $position) {
+ $form['delete'] = _panels_add_button('user-trash.png', 'delete', t('Delete this item'));
+ // Leaving these in but commented out as I'm not convinced we don't want them.
+// if ($count > 2) {
+// $form['top'] = _panels_add_button('go-top.png', 'top', t('Move item to top'));
+// }
+ if ($count > 1) {
+ $form['up'] = _panels_add_button('go-up.png', 'up', t('Move item up'));
+ $form['down'] = _panels_add_button('go-down.png', 'down', t('Move item down'));
+ }
+// if ($count > 2) {
+// $form['bottom'] = _panels_add_button('go-bottom.png', 'bottom', t('Move item to bottom'));
+// }
+// if ($count > 1) {
+// $form['spacer'] = panels_add_blank();
+// }
+ return $form;
+}
+
+/**
+ * move an item in an array to the top
+ */
+function _panels_move_top(&$array, &$position) {
+ $value = $array[$position];
+ unset($array[$position]);
+ array_unshift($array, $value);
+ // reindex the array now
+ $array = array_values($array);
+}
+
+/**
+ * move an item in an array to the bottom
+ */
+function _panels_move_bottom(&$array, &$position) {
+ $value = $array[$position];
+ unset($array[$position]);
+ $array[] = $value;
+ // reindex the array now
+ $array = array_values($array);
+}
+
+/**
+ * move an item in an array up one position
+ */
+function _panels_move_up(&$array, &$position) {
+ $value = $array[$position];
+ $array[$position] = $array[$position - 1];
+ $array[$position - 1] = $value;
+}
+
+/**
+ * move an item in an array up one position
+ */
+function _panels_move_down(&$array, &$position) {
+ $value = $array[$position];
+ $array[$position] = $array[$position + 1];
+ $array[$position + 1] = $value;
+}
+
+/**
+ * Remove an item from an array
+ */
+function _panels_move_delete(&$array, &$position) {
+ unset($array[$position]);
+ // reindex the array now
+ $array = array_values($array);
+}
+
+// ---------------------------------------------------------------------------
+// panels database functions
+
+function _panels_save_panels($panels) {
+ $panels->access = implode(', ', $panels->access);
+ if ($panels->did) {
+ db_query("UPDATE {panels_info} SET title = '%s', access = '%s', path = '%s', css_id = '%s', layout = '%s' WHERE did = %d", $panels->title, $panels->access, $panels->path, $panels->css_id, $panels->layout, $panels->did);
+ db_query("DELETE FROM {panels_area} WHERE did = %d", $panels->did);
+ }
+ else {
+ db_query("INSERT INTO {panels_info} (title, access, path, css_id, layout) VALUES ('%s', '%s', '%s', '%s', '%s')", $panels->title, $panels->access, $panels->path, $panels->css_id, $panels->layout);
+ // Put this in the form so modules can utilize the did of a new panel.
+ $GLOBALS['form_values']['did'] = db_last_insert_id('panels_info', 'did');
+ }
+ foreach ($panels->content as $area => $info) {
+ foreach ($info as $position => $block) {
+ if (is_numeric($position)) { // don't save some random form stuff that may've been here.
+ $block = (object) $block;
+ db_query("INSERT INTO {panels_area} (did, area, type, configuration, position) VALUES(%d, '%s', '%s', '%s', %d)", $panels->did, $area, $block->type, serialize($block->configuration), $position);
+ }
+ }
+ }
+ menu_rebuild();
+}
+
+function _panels_delete_panels($panels) {
+ db_query("DELETE FROM {panels_info} WHERE did = %d", $panels->did);
+ db_query("DELETE FROM {panels_area} WHERE did = %d", $panels->did);
+ menu_rebuild();
+}
+
+/**
+ * Helper function for autocompletion of node titles.
+ * This is mostly stolen from clipper.
+ */
+function _panels_node_autocomplete($string) {
+ if ($string != '') { // if there are node_types passed, we'll use those in a MySQL IN query.
+ $result = db_query_range(db_rewrite_sql('SELECT n.title, u.name FROM {node} n INNER JOIN {users} u ON u.uid = n.uid WHERE LOWER(title) LIKE LOWER("%%%s%%")'), $string, 0, 10);
+ $array = array(); // FIXME: looks like dead code!?
+ $prefix = count($array) ? implode(', ', $array) .', ' : '';
+
+ $matches = array();
+ while ($node = db_fetch_object($result)) {
+ $n = $node->title;
+ // Commas and quotes in terms are special cases, so encode 'em.
+ if (preg_match('/,/', $node->title) || preg_match('/"/', $node->title)) {
+ $n = '"'. preg_replace('/"/', '""', $node->title) .'"';
+ }
+ $matches[$prefix . $n] = ''. check_plain($node->title) .'('. t('by %user', array('%user' => check_plain($node->name))) .')';
+ }
+ print drupal_to_js($matches);
+ exit();
+ }
+}
Index: modules/panels/translations/panels.pot
===================================================================
RCS file: modules/panels/translations/panels.pot
diff -N modules/panels/translations/panels.pot
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ modules/panels/translations/panels.pot 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,406 @@
+# $Id: panels.pot,v 1.1.2.1 2007/06/02 10:38:29 hass Exp $
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME
+# Generated from files:
+# panels.module,v 1.10.2.9 2007/03/15 23:13:41 merlinofchaos
+# threecol_25_50_25_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
+# threecol_33_34_33.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
+# threecol_33_34_33_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
+# twocol.inc,v 1.6 2006/08/22 23:54:20 merlinofchaos
+# twocol_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2007-05-31 20:59+0100\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME \n"
+"Language-Team: LANGUAGE \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: panels.module:382 content_types/custom.inc:90
+msgid "CSS ID"
+msgstr ""
+
+#: content_types/block.inc:75 content_types/views.inc:123
+msgid "Block"
+msgstr ""
+
+#: layouts/threecol_25_50_25.inc:12 layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33.inc:13 layouts/threecol_33_34_33_stacked.inc:14
+#: layouts/twocol.inc:13 layouts/twocol_stacked.inc:14
+msgid "Left side"
+msgstr ""
+
+#: layouts/threecol_25_50_25.inc:12 layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33.inc:13 layouts/threecol_33_34_33_stacked.inc:14
+msgid "Middle column"
+msgstr ""
+
+#: layouts/threecol_25_50_25.inc:12 layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33.inc:13 layouts/threecol_33_34_33_stacked.inc:14
+#: layouts/twocol.inc:13 layouts/twocol_stacked.inc:14
+msgid "Right side"
+msgstr ""
+
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33_stacked.inc:14 layouts/twocol_stacked.inc:14
+msgid "Top"
+msgstr ""
+
+#: layouts/threecol_25_50_25_stacked.inc:14
+#: layouts/threecol_33_34_33_stacked.inc:14 layouts/twocol_stacked.inc:14
+msgid "Bottom"
+msgstr ""
+
+#: content_types/block.inc:79;86
+msgid "Add block"
+msgstr ""
+
+#: content_types/block.inc:107
+msgid "Override title"
+msgstr ""
+
+#: content_types/block.inc:108
+msgid ""
+"If checked, the block title will be overridden with the override title text."
+msgstr ""
+
+#: content_types/block.inc:113
+msgid "Override title text"
+msgstr ""
+
+#: content_types/custom.inc:50
+msgid "Enter an optional title for custom content you define"
+msgstr ""
+
+#: content_types/custom.inc:57;64
+msgid "Add custom"
+msgstr ""
+
+#: content_types/custom.inc:73;74
+msgid "Title"
+msgstr ""
+
+#: content_types/custom.inc:78
+msgid "Body"
+msgstr ""
+
+#: content_types/custom.inc:91
+msgid "CSS ID of this custom content."
+msgstr ""
+
+#: content_types/custom.inc:98
+msgid "CSS class"
+msgstr ""
+
+#: content_types/custom.inc:99
+msgid "CSS class of this custom content."
+msgstr ""
+
+#: content_types/node.inc:42
+msgid "Enter the title or NID of a post"
+msgstr ""
+
+#: content_types/node.inc:50;57
+msgid "Add post"
+msgstr ""
+
+#: content_types/node.inc:68
+msgid "Unable to find \"%s\""
+msgstr ""
+
+#: content_types/node.inc:82
+msgid "Teaser"
+msgstr ""
+
+#: content_types/node.inc:85
+msgid "Check here to show only the node teaser"
+msgstr ""
+
+#: content_types/node.inc:90
+msgid "Display links"
+msgstr ""
+
+#: content_types/node.inc:91
+msgid "Check here to display the links with the post."
+msgstr ""
+
+#: content_types/node.inc:96
+msgid "Suppress node title"
+msgstr ""
+
+#: content_types/node.inc:97
+msgid "Check here to suppress the node title."
+msgstr ""
+
+#: layouts/threecol_25_50_25.inc:8
+msgid "Three column 25/50/25"
+msgstr ""
+
+#: layouts/threecol_25_50_25_stacked.inc:10
+msgid "Three column 25/50/25 stacked"
+msgstr ""
+
+#: layouts/threecol_33_34_33.inc:9
+msgid "Three column 33/34/33"
+msgstr ""
+
+#: layouts/threecol_33_34_33_stacked.inc:10
+msgid "Three column 33/34/33 stacked"
+msgstr ""
+
+#: layouts/twocol.inc:9
+msgid "Two column"
+msgstr ""
+
+#: layouts/twocol_stacked.inc:10
+msgid "Two column stacked"
+msgstr ""
+
+#: panels.module:11
+msgid ""
+"
You may peruse a list of your current panels layouts and edit them, or "
+"click add to create a new page.
"
+msgstr ""
+
+#: panels.module:13
+msgid "
Choose a layout for your new page from the list below.
"
+msgstr ""
+
+#: panels.module:60 panels.info:0
+msgid "Panels"
+msgstr ""
+
+#: panels.module:63
+msgid "Create pages on your site that are 2 or 3 columns"
+msgstr ""
+
+#: panels.module:67
+msgid "List"
+msgstr ""
+
+#: panels.module:75;82
+msgid "Add"
+msgstr ""
+
+#: panels.module:89
+msgid "Edit panels"
+msgstr ""
+
+#: panels.module:96
+msgid "Delete panels"
+msgstr ""
+
+#: panels.module:105
+msgid "Autocomplete node"
+msgstr ""
+
+#: panels.module:199
+msgid "Edit"
+msgstr ""
+
+#: panels.module:200;228
+msgid "Delete"
+msgstr ""
+
+#: panels.module:205
+msgid "Panel title"
+msgstr ""
+
+#: panels.module:206
+msgid "URL"
+msgstr ""
+
+#: panels.module:207
+msgid "Operations"
+msgstr ""
+
+#: panels.module:225
+msgid "Are you sure you want to delete %title?"
+msgstr ""
+
+#: panels.module:227
+msgid "This action cannot be undone."
+msgstr ""
+
+#: panels.module:228
+msgid "Cancel"
+msgstr ""
+
+#: panels.module:308
+msgid "Add content"
+msgstr ""
+
+#: panels.module:310
+msgid ""
+"Select an area to add content to, then select a type of content and click "
+"the appropriate button. The content will be added."
+msgstr ""
+
+#: panels.module:319
+msgid "Area"
+msgstr ""
+
+#: panels.module:358
+msgid "General information"
+msgstr ""
+
+#: panels.module:375
+msgid "Page title"
+msgstr ""
+
+#: panels.module:376
+msgid "The page title for this panels layout"
+msgstr ""
+
+#: panels.module:383
+msgid "The CSS ID to apply to this page"
+msgstr ""
+
+#: panels.module:394
+msgid "Access"
+msgstr ""
+
+#: panels.module:397
+msgid ""
+"Only the checked roles will be able to see this panel in any form; if no "
+"roles are checked, access will not be restricted."
+msgstr ""
+
+#: panels.module:403
+msgid "Path"
+msgstr ""
+
+#: panels.module:404
+msgid "The URL path to give this page, i.e, path/to/page"
+msgstr ""
+
+#: panels.module:508
+msgid "Save"
+msgstr ""
+
+#: panels.module:527
+msgid "This area has no content."
+msgstr ""
+
+#: panels.module:550
+msgid "Configure"
+msgstr ""
+
+#: panels.module:599
+msgid "The panels has been saved."
+msgstr ""
+
+#: panels.module:607
+msgid "Delete this item"
+msgstr ""
+
+#: panels.module:613
+msgid "Move item up"
+msgstr ""
+
+#: panels.module:614
+msgid "Move item down"
+msgstr ""
+
+#: panels.module:749
+msgid "Unable to find requested layout %s"
+msgstr ""
+
+#: panels.module:853
+msgid "by %user"
+msgstr ""
+
+#: panels.module:749;0 panels.info:0
+msgid "panels"
+msgstr ""
+
+#: panels.module:21
+msgid "create panels"
+msgstr ""
+
+#: panels.module:21
+msgid "access all panels"
+msgstr ""
+
+#: panels.info:0
+msgid "Create pages that are divided into areas of the page."
+msgstr ""
+
+#: content_types/views.inc:86
+msgid "Choose a view from the views module"
+msgstr ""
+
+#: content_types/views.inc:90;97
+msgid "Add view"
+msgstr ""
+
+#: content_types/views.inc:121
+msgid "View type"
+msgstr ""
+
+#: content_types/views.inc:122
+msgid "Select which type of the view to display."
+msgstr ""
+
+#: content_types/views.inc:123
+msgid "Page"
+msgstr ""
+
+#: content_types/views.inc:123
+msgid "Embedded"
+msgstr ""
+
+#: content_types/views.inc:128
+msgid "Pager ID"
+msgstr ""
+
+#: content_types/views.inc:130
+msgid ""
+"Select the numeric pager ID to use, or 0 to not have use paging. Select \"1"
+"\" if you aren't sure what this means"
+msgstr ""
+
+#: content_types/views.inc:136
+msgid "Posts to Display"
+msgstr ""
+
+#: content_types/views.inc:138
+msgid "Select the number of posts to display, or 0 to display all results."
+msgstr ""
+
+#: content_types/views.inc:144
+msgid "View arguments"
+msgstr ""
+
+#: content_types/views.inc:146
+msgid ""
+"Arguments to send to the view as if they were part of the URL in the form of "
+"arg1/arg2/arg3. You can use %0, %1, %2, etc, to use arguments from the "
+"actual URL. For example, if your panel URL is foo/bar, and someone hits foo/"
+"bar/5 use %2 to get the 5."
+msgstr ""
+
+#: content_types/views.inc:152
+msgid "Override URL"
+msgstr ""
+
+#: content_types/views.inc:154
+msgid ""
+"If this is set, override the View URL; this can sometimes be useful to set "
+"to the panel URL"
+msgstr ""
+
+#: content_types/views.inc:160
+msgid "Display view title"
+msgstr ""
+
+#: content_types/views.inc:161
+msgid "If checked, the title of the view will be displayed."
+msgstr ""