aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jquery_gallery_view.admin.inc69
-rw-r--r--jquery_gallery_view.module33
2 files changed, 102 insertions, 0 deletions
diff --git a/jquery_gallery_view.admin.inc b/jquery_gallery_view.admin.inc
new file mode 100644
index 0000000..5388509
--- /dev/null
+++ b/jquery_gallery_view.admin.inc
@@ -0,0 +1,69 @@
+<?php
+
+/**
+ * @file
+ * Admin callbacks.
+ */
+
+/**
+ * Menu callback.
+ */
+function jquery_gallery_view() {
+ $output = t('jQuery Gallery View.');
+ $output .= drupal_get_form('jquery_gallery_view_form');
+ return $output;
+}
+
+/**
+ * Mass import form.
+ */
+function jquery_gallery_view_form(&$form_state) {
+ $form['node_type'] = array(
+ '#type' => 'select',
+ '#title' => t('Node type'),
+ '#options' => jquery_gallery_view_types(),
+ '#default_value' => variable_get('jquery_gallery_view_node_type', array()),
+ '#description' => t('Select node type to import images. For CCK, if node type contains more than one filefield, make sure that the imagefield is the first one.'),
+ );
+
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Save'),
+ );
+
+ return $form;
+}
+
+/**
+ * Return the existing content types.
+ *
+ * @return
+ * Content types.
+ */
+function jquery_gallery_view_types() {
+ $node_types = node_get_types();
+ $node_codes = array();
+
+ foreach ($node_types as $item) {
+ $node_codes[$item->type] = $item->name;
+ }
+
+ return $node_codes;
+}
+
+/**
+ * Implementation of hook_validate().
+ */
+function jquery_gallery_view_form_validate($form, $form_state) {
+ if (!isset($form_state['values']['node_type'])) {
+ form_set_error('node_type', t('Please choose a content type'));
+ }
+ else {
+ $type = $form_state['values']['node_type'];
+ $types = node_get_types();
+
+ if (!isset($types[$type])) {
+ form_set_error('node_type', t('Invalid content type'));
+ }
+ }
+}
diff --git a/jquery_gallery_view.module b/jquery_gallery_view.module
index 539433a..6ac2c58 100644
--- a/jquery_gallery_view.module
+++ b/jquery_gallery_view.module
@@ -7,6 +7,39 @@
*/
/**
+ * Implementation of hook_menu().
+ */
+function jquery_gallery_view_menu() {
+ $items['admin/settings/jquery_gallery_view'] = array(
+ 'title' => t('jQuery Gallery View'),
+ 'description' => t('Configure settings for jQuery Gallery View.'),
+ 'page callback' => 'jquery_gallery_view',
+ 'access arguments' => array('administer content'),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'jquery_gallery_view.admin.inc',
+ );
+
+ return $items;
+}
+
+/**
+ * Get the first filefield from a content type.
+ *
+ * @param $fields
+ * Content type fields.
+ *
+ * @return
+ * Field name.
+ */
+function jquery_gallery_view_field($fields) {
+ foreach ($fields as $field) {
+ if ($field['type'] == 'filefield') {
+ return $field['field_name'];
+ }
+ }
+}
+
+/**
* Setup photos for a view.
*
* @param $view