예제 #1
0
 public static function get_for_xml()
 {
     $galleries = array();
     $gallery_names = array();
     foreach (Content_Image::get_tags() as $tag) {
         if ($tag['name'] == 'gallery') {
             foreach ($tag['values'] as $tag_value) {
                 if (!in_array($tag_value, $gallery_names)) {
                     $name = '';
                     $sort = 0;
                     $show_in_menu = 'no';
                     $category = '';
                     // Get some content
                     $contents = Content_Content::get_contents_by_tags(array('gallery' => $tag_value));
                     foreach ($contents as $content) {
                         if ($content['tags']['type'][0] == 'name') {
                             $name = $content['content'];
                         } elseif ($content['tags']['type'][0] == 'sort') {
                             $sort = $content['content'];
                         } elseif ($content['tags']['type'][0] == 'category') {
                             $category = $content['content'];
                         } elseif ($content['tags']['type'][0] == 'description') {
                             $description = $content['content'];
                         } elseif ($content['tags']['type'][0] == 'show_in_menu') {
                             $show_in_menu = $content['content'];
                         }
                     }
                     if ($name == '') {
                         $name = $tag_value;
                     }
                     $images = array();
                     $counter = 0;
                     foreach (Content_image::get_images(NULL, array('gallery' => array($tag_value))) as $image_name => $image_data) {
                         @($tmp_image_sort = intval($image_data['sort'][0]));
                         if ($tag_value == 'all') {
                             $tmp_sort = 0;
                             foreach ($image_data['gallery'] as $tmp_gallery_name) {
                                 if ($tmp_gallery_name != 'all') {
                                     $tmp_contents = Content_Content::get_contents_by_tags(array('gallery' => $tmp_gallery_name, 'type' => 'sort'));
                                     foreach ($tmp_contents as $tmp_content) {
                                         $tmp_sort = $tmp_content['content'];
                                     }
                                 }
                             }
                             $image_sort = intval($tmp_sort) * 10000 + $tmp_image_sort;
                         } else {
                             $image_sort = $tmp_image_sort;
                         }
                         $images[$counter . 'image'] = array('name' => $image_name, '@sort' => $image_sort);
                         $counter++;
                     }
                     $galleries[] = array('URI' => $tag_value, 'name' => $name, 'description' => $description, 'show_in_menu' => $show_in_menu, '@sort' => $sort, 'category' => $category, 'images' => $images);
                 }
                 $gallery_names[] = $tag_value;
             }
         }
     }
     return $galleries;
 }
예제 #2
0
 function __construct($options = false)
 {
     // Set Options
     self::$spark_options = $options ? array_merge(self::$spark_options, $options) : self::$spark_options;
     //Add Actions
     add_action('init', array($this, 'initAction'));
     add_action('wp_enqueue_scripts', array($this, 'enqueueScripts'));
 }
예제 #3
0
<?php

defined('SYSPATH') or die('No direct script access.');
// Get all galleries
$galleries = array();
$categories = array();
foreach (Content_Image::get_tags() as $tag) {
    if ($tag['name'] == 'gallery') {
        foreach ($tag['values'] as $tag_value) {
            if (!in_array($tag_value, $galleries)) {
                $galleries[] = $tag_value;
                $category = '';
                $contents = Content_Content::get_contents_by_tags(array('gallery' => $tag_value, 'type' => 'category'));
                foreach ($contents as $content) {
                    $category = URL::title($content['content'], '-', TRUE);
                }
                if ($category != '') {
                    if (!in_array($category, $categories)) {
                        $categories[] = $category;
                    }
                }
            }
        }
    }
}
if (count($galleries)) {
    Route::set('galleries', '<gallery>', array('gallery' => implode('|', $galleries)))->defaults(array('controller' => 'generic', 'action' => 'gallery'));
}
if (count($categories)) {
    Route::set('categories', '<category>', array('category' => implode('|', $categories)))->defaults(array('controller' => 'generic', 'action' => 'category'));
}
예제 #4
0
 public function action_rm_content()
 {
     $content = new Content_Content($this->request->param('options'));
     $content->rm_content();
     $this->redirect();
 }
예제 #5
0
 /**
  * Set the database driver
  *
  * @return boolean
  */
 public static function set_driver()
 {
     $driver_name = 'Driver_Content_' . ucfirst(Kohana::$config->load('content.driver'));
     return self::$driver = new $driver_name();
 }
예제 #6
0
 public function action_index()
 {
     $URI = $this->request->uri();
     // Empty string defaults to 'welcome'
     if ($URI == '' || $URI == '/') {
         $URI = 'welcome';
     }
     // Set the name of the template to use
     $this->xslt_stylesheet = 'generic';
     // Initiate the page model
     $content_page = new Content_Page(Content_Page::get_page_id_by_uri($URI));
     // Create the DOM node <page>
     $this->xml_content_page = $this->xml_content->appendChild($this->dom->createElement('page'));
     // And load the page data into it
     $page_data = $content_page->get_page_data();
     foreach ($page_data['tag_ids'] as $template_field_id => $tag_ids) {
         // Get contents
         $contents = array();
         foreach ($tag_ids as $tag_id) {
             foreach (Content_Content::get_contents_by_tag_id($tag_id) as $content) {
                 if (!isset($contents[$content['id'] . 'content'])) {
                     $contents[$content['id'] . 'content'] = array('@id' => $content['id'], 'raw' => $content['content'], 'tags' => array());
                     $counter = 0;
                     foreach ($content['tags'] as $tag_name => $tag_values) {
                         foreach ($tag_values as $tag_value) {
                             $counter++;
                             $contents[$content['id'] . 'content']['tags'][$counter . 'tag']['@name'] = $tag_name;
                             if ($tag_value) {
                                 $contents[$content['id'] . 'content']['tags'][$counter . 'tag']['$value'] = $tag_value;
                             }
                         }
                     }
                 }
             }
         }
         // Get images
         $images = array();
         $image_tags = array();
         foreach ($tag_ids as $tag_id) {
             $image_tags[Tags::get_name_by_id($tag_id)] = TRUE;
         }
         $larger_counter = 0;
         foreach (Content_Image::get_images(NULL, $image_tags) as $image_name => $image_tags) {
             $image = array('@name' => $image_name, 'tags' => array());
             $counter = 0;
             foreach ($image_tags as $tag_name => $tag_values) {
                 if (count($tag_values)) {
                     foreach ($tag_values as $tag_value) {
                         $image['tags'][$counter . 'tag'] = array('@name' => $tag_name, '$value' => $tag_value);
                         $counter++;
                     }
                 } else {
                     $image['tags'][$counter . 'tag'] = array('@name' => $tag_name);
                     $counter++;
                 }
             }
             $images[$larger_counter . 'image'] = $image;
             $larger_counter++;
         }
         // Put it all in the $page_data for transport to the XML
         $page_data[$template_field_id . 'template_field'] = array('@id' => $template_field_id, 'contents' => $contents, 'images' => $images);
     }
     unset($page_data['tag_ids']);
     xml::to_XML($page_data, $this->xml_content_page, NULL, array('id', 'template_field_id'));
     // We need to put some HTML in from our transformator
     // The reason for all this mess is that we must inject this directly in to the DOM, or else the <> will get destroyed
     $XPath = new DOMXpath($this->dom);
     foreach ($XPath->query('/root/content/page/template_field/contents/content/raw') as $raw_content_node) {
         $html_content = call_user_func(Kohana::$config->load('content.content_transformator'), $raw_content_node->nodeValue);
         $html_node = $raw_content_node->parentNode->appendChild($this->dom->createElement('html'));
         xml::xml_to_DOM_node($html_content, $html_node);
     }
 }
예제 #7
0
 public function action_index()
 {
     $this->xslt_stylesheet = 'admin/galleries';
     xml::to_XML(array('admin_page' => 'Galleries'), $this->xml_meta);
     if (!empty($_POST)) {
         if (!empty($_POST['gallery'])) {
             foreach ($_POST['gallery'] as $counter => $gallery_URI) {
                 $contents = Content_Content::get_contents_by_tags(array('gallery' => $gallery_URI, 'type' => 'sort'));
                 if (count($contents)) {
                     list($sort_content_id) = array_keys($contents);
                     list($sort_content_content) = array_values($contents);
                     $content = new Content_Content($sort_content_id);
                     $content->update_content($counter);
                 } else {
                     Content_Content::new_content($counter, array('gallery' => array($gallery_URI), 'type' => array('sort')));
                 }
             }
             foreach ($_POST['category'] as $counter => $category_name) {
                 $contents = Content_Content::get_contents_by_tags(array('category' => $category_name, 'type' => 'sort'));
                 if (count($contents)) {
                     list($sort_content_id) = array_keys($contents);
                     list($sort_content_content) = array_values($contents);
                     $content = new Content_Content($sort_content_id);
                     $content->update_content($counter);
                 } else {
                     Content_Content::new_content($counter, array('category' => array($category_name), 'type' => array('sort')));
                 }
             }
         }
         if (!empty($_POST['new_gallery_name'])) {
             $this->redirect('admin/gallery?uri=' . url::title($_POST['new_gallery_name'], '-', TRUE));
         }
     }
     // Get all galleries
     $galleries = array();
     $gallery_names = array();
     $categories = array();
     foreach (Content_Image::get_tags() as $tag) {
         if ($tag['name'] == 'gallery') {
             foreach ($tag['values'] as $tag_value) {
                 if (!in_array($tag_value, $gallery_names)) {
                     $name = '';
                     $sort = 0;
                     $category = '';
                     // Get some content
                     $contents = Content_Content::get_contents_by_tags(array('gallery' => $tag_value));
                     foreach ($contents as $content) {
                         if ($content['tags']['type'][0] == 'name') {
                             $name = $content['content'];
                         } elseif ($content['tags']['type'][0] == 'sort') {
                             $sort = $content['content'];
                         } elseif ($content['tags']['type'][0] == 'category') {
                             $category = $content['content'];
                         }
                     }
                     if ($name == '') {
                         $name = $tag_value;
                     }
                     if (!in_array($category, $categories)) {
                         $categories[] = $category;
                     }
                     $galleries[] = array('URI' => $tag_value, 'name' => $name, '@sort' => $sort, 'category' => $category);
                 }
                 $gallery_names[] = $tag_value;
             }
         }
     }
     $this->xml_content_galleries = $this->xml_content->appendChild($this->dom->createElement('galleries'));
     xml::to_XML($galleries, $this->xml_content_galleries, 'gallery');
     foreach ($categories as $nr => $category_real_name) {
         if ($category_real_name != '') {
             $sort = 0;
             foreach (Content_Content::get_contents_by_tags(array('category' => $category_real_name, 'type' => 'sort')) as $content) {
                 $sort = $content['content'];
             }
             $categories[$nr . 'category'] = array('URI' => URL::title($category_real_name, '-', TRUE), 'name' => $category_real_name, 'sort' => $sort);
         }
         unset($categories[$nr]);
     }
     $this->xml_content_categories = $this->xml_content->appendChild($this->dom->createElement('categories'));
     xml::to_XML($categories, $this->xml_content_categories);
 }
예제 #8
0
 public function action_index()
 {
     if ($_GET['uri'] == 'all') {
         $this->redirect();
     }
     // Set all-gallery-settings and sort
     if (isset($_POST['show_in_all']) && isset($_POST['sort'])) {
         foreach ($_POST['sort'] as $order => $name) {
             $image = new Content_Image($name);
             $tags = array('sort' => array($order), 'gallery' => array($_GET['uri']));
             if (in_array($name, $_POST['show_in_all'])) {
                 $tags['gallery'][] = 'all';
             }
             $image->set_data($tags);
         }
     }
     // Remove an image
     if (isset($_GET['rm'])) {
         $image = new Content_Image($_GET['rm']);
         $image->rm_image();
         $this->redirect();
     }
     // Set gallery name
     if (isset($_POST['name'])) {
         $contents = Content_Content::get_contents_by_tags(array('gallery' => $_GET['uri'], 'type' => 'name'));
         if (count($contents)) {
             list($name_content_id) = array_keys($contents);
             list($name_content_content) = array_values($contents);
             $content = new Content_Content($name_content_id);
             $content->update_content($_POST['name']);
         } else {
             Content_Content::new_content($_POST['name'], array('gallery' => array($_GET['uri']), 'type' => array('name')));
         }
     }
     // Set gallery category
     if (isset($_POST['category'])) {
         $contents = Content_Content::get_contents_by_tags(array('gallery' => $_GET['uri'], 'type' => 'category'));
         if (count($contents)) {
             list($category_content_id) = array_keys($contents);
             list($category_content_content) = array_values($contents);
             $content = new Content_Content($category_content_id);
             $content->update_content($_POST['category']);
         } else {
             Content_Content::new_content($_POST['category'], array('gallery' => array($_GET['uri']), 'type' => array('category')));
         }
     }
     // Set gallery description
     if (isset($_POST['description'])) {
         $contents = Content_Content::get_contents_by_tags(array('gallery' => $_GET['uri'], 'type' => 'description'));
         if (count($contents)) {
             list($description_content_id) = array_keys($contents);
             list($description_content_content) = array_values($contents);
             $content = new Content_Content($description_content_id);
             $content->update_content($_POST['description']);
         } else {
             Content_Content::new_content($_POST['description'], array('gallery' => array($_GET['uri']), 'type' => array('description')));
         }
     }
     // Set show in menu
     if (isset($_POST['show_in_menu'])) {
         $contents = Content_Content::get_contents_by_tags(array('gallery' => $_GET['uri'], 'type' => 'show_in_menu'));
         if (count($contents)) {
             list($description_content_id) = array_keys($contents);
             list($description_content_content) = array_values($contents);
             $content = new Content_Content($description_content_id);
             $content->update_content('yes');
         } else {
             Content_Content::new_content('yes', array('gallery' => array($_GET['uri']), 'type' => array('show_in_menu')));
         }
     } elseif (!empty($_POST)) {
         $contents = Content_Content::get_contents_by_tags(array('gallery' => $_GET['uri'], 'type' => 'show_in_menu'));
         if (count($contents)) {
             list($description_content_id) = array_keys($contents);
             list($description_content_content) = array_values($contents);
             $content = new Content_Content($description_content_id);
             $content->update_content('no');
         } else {
             Content_Content::new_content('no', array('gallery' => array($_GET['uri']), 'type' => array('show_in_menu')));
         }
     }
     // Add image
     if (isset($_POST['upload_image'])) {
         foreach ($_FILES['image']['name'] as $nr => $name) {
             if ($name != '') {
                 $pathinfo = pathinfo($_FILES['image']['name'][$nr]);
                 if (strtolower($pathinfo['extension']) == 'jpg' || strtolower($pathinfo['extension']) == 'png') {
                     $filename = URL::title($_GET['uri'], '-', TRUE) . '.' . strtolower($pathinfo['extension']);
                     $new_filename = $filename;
                     $counter = 1;
                     while (!Content_Image::image_name_available($new_filename)) {
                         $new_filename = substr($filename, 0, strlen($filename) - 4) . '_' . $counter . '.' . strtolower($pathinfo['extension']);
                         $counter++;
                     }
                     if (move_uploaded_file($_FILES['image']['tmp_name'][$nr], APPPATH . '/user_content/images/' . $new_filename)) {
                         if (strtolower($pathinfo['extension']) == 'jpg') {
                             $gd_img_object = ImageCreateFromJpeg(Kohana::$config->load('user_content.dir') . '/images/' . $new_filename);
                         } elseif (strtolower($pathinfo['extension']) == 'png') {
                             $gd_img_object = ImageCreateFromPng(Kohana::$config->load('user_content.dir') . '/images/' . $new_filename);
                         }
                         $details = array('width' => array(imagesx($gd_img_object)), 'height' => array(imagesy($gd_img_object)), 'gallery' => array('all', URL::title($_GET['uri'], '-', TRUE)));
                         Content_Image::new_image($new_filename, $details);
                     } else {
                         $this->add_error('Unknown error uploading image(s)');
                     }
                 }
             }
         }
     }
     // Images
     $images = array();
     foreach (Content_image::get_images(NULL, array('gallery' => array($_GET['uri']))) as $image_name => $image_data) {
         $images[] = array('name' => $image_name, 'sort' => @$image_data['sort'][0], 'all' => strval(@in_array('all', $image_data['gallery'])));
     }
     $this->xml_content_images = $this->xml_content->appendChild($this->dom->createElement('images'));
     xml::to_XML($images, $this->xml_content_images, 'image');
     // Get some content
     $contents = Content_Content::get_contents_by_tags(array('gallery' => $_GET['uri']));
     foreach ($contents as $content) {
         if ($content['tags']['type'][0] == 'name') {
             xml::to_XML(array('gallery_real_name' => $content['content']), $this->xml_content);
         } elseif ($content['tags']['type'][0] == 'description') {
             xml::to_XML(array('gallery_description' => $content['content']), $this->xml_content);
         } elseif ($content['tags']['type'][0] == 'category') {
             xml::to_XML(array('gallery_category' => $content['content']), $this->xml_content);
         } elseif ($content['tags']['type'][0] == 'show_in_menu') {
             xml::to_XML(array('gallery_show_in_menu' => $content['content']), $this->xml_content);
         }
     }
 }