/** * Display the view */ public function display($tpl = null) { // get the data from the model $this->form = $this->get('Form'); $this->item = $this->get('Item'); $this->state = $this->get('State'); // get the image $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); $this->image = $imageHelper->getImage($this->item->id, 'users'); // get params $this->params = JComponentHelper::getParams('com_jkit'); // create the toolbar JKitHelper::getToolbar(); // display the view template parent::display($tpl); }
/** * Display the view */ public function display($tpl = null) { // get the data from the model $this->form = $this->get('Form'); $this->item = $this->get('Item'); $this->state = $this->get('State'); // get the tags $this->tags = $this->get('Tags'); $this->tag_list = $this->get('TagList'); $this->item_tags = $this->get('ItemTags'); $this->item_tag_list = $this->get('ItemTagList'); // get the types $this->types = $this->get('Types'); $this->item_type = $this->get('ItemType'); // get params $this->params = JComponentHelper::getParams('com_jkit'); // get the image $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); $this->image = $imageHelper->getImage($this->item->id, 'items'); // create the toolbar JKitHelper::getToolbar(false, $this->item->id, $this->item->title); // display the view template parent::display($tpl); }
/** * Get the item * * @param int $item_id id of the item to be loaded * @param bool $prepare_content apply content plugins to item body and intro * * @return object */ public function getItem($item_id = null, $prepare_content = true) { if (isset($this->item)) { return $this->item; } // helpers $db = $this->_db; $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); // determine item id $id = $item_id ? $item_id : JRequest::getInt('id'); // get the item $query_item = $db->getQuery(true)->select('a.*')->from('#__jkit_items AS a')->where("a.id = {$id}")->where('a.state = 1'); $query_item->select('c.title AS category')->leftJoin('#__categories AS c ON c.id = a.catid'); $query_item->select('u.title AS user, u.alias AS user_alias')->leftJoin('#__jkit_users AS u ON u.id = a.user_id'); $this->item = $db->setQuery($query_item)->loadObject(); // check item if (!$this->item) { if (!$item_id) { // component view throw new Exception(JText::_('COM_JKIT_ERROR_ITEM_NOT_FOUND'), 404); } else { // item loaded by a module return null; } } // set item params and image $this->item->params = $this->item ? json_decode($this->item->params) : array(); $this->item->image = $imageHelper->getImage($id, 'items'); // get the item images $query_images = $db->getQuery(true)->select('*')->from('#__jkit_images')->where("item_id = {$id}")->where('state = 1')->order('ordering'); $images = $db->setQuery($query_images)->loadObjectList(); foreach ($images as $image) { $image->params = json_decode($image->params); if (isset($image->params->tags)) { $image->params->tags = array_keys(get_object_vars($image->params->tags)); } } $this->item->images = $images; // get the item tags $query_tags = $db->getQuery(true)->select('a.id, a.title, a.alias')->from('#__jkit_tags AS a')->innerJoin('#__jkit_tags_item AS t ON t.tag_id = a.id')->where("a.state = 1")->where("t.item_id = {$id}")->order('a.id'); $this->item->tags = $db->setQuery($query_tags)->loadObjectList(); // get item translation $lang = $db->quote(JFactory::getLanguage()->getTag()); $query_translation = $db->getQuery(true)->select('*')->from('#__jkit_translations')->where("ref_table = 'items'")->where("lang = {$lang}")->where("ref_id = {$id}"); $translation = $db->setQuery($query_translation)->loadObject(); if ($translation) { $this->item = JKit::applyTranslation($this->item, $translation); } // get tags translations $tags_ids = array(); $tags_translations = array(); foreach ($this->item->tags as $tag) { $tags_ids[] = $tag->id; } if ($tags_ids) { $query_tags_translations = $db->getQuery(true)->select('*')->from('#__jkit_translations')->where("ref_table = 'tags'")->where("lang = {$lang}")->where("ref_id IN (" . implode(',', $tags_ids) . ")"); $tags_translations = $db->setQuery($query_tags_translations)->loadObjectList(); } if ($tags_translations) { foreach ($this->item->tags as $i => $tag) { foreach ($tags_translations as $tag_translation) { if ($tag->id == $tag_translation->ref_id) { $this->item->tags[$i]->title = $tag_translation->title; $this->item->tags[$i]->alias = $tag_translation->alias; } } } } // prepare content if ($prepare_content) { $this->item->intro = JHtml::_('content.prepare', $this->item->intro); $this->item->body = JHtml::_('content.prepare', $this->item->body); } return $this->item; }
/** * Override delete method to add the image processing */ public function delete(&$pks) { // standard joomla delete $delete = parent::delete($pks); if (!$delete) { return false; } // delete images $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); foreach ($pks as $pk) { $imageHelper->deleteImage($pk, 'users'); } return true; }
/** * @package JKit * @copyright Copyright (C) CloudHotelier. All rights reserved. * @license GNU GPLv2 <http://www.gnu.org/licenses/gpl.html> * @author Xavier Pallicer <*****@*****.**> */ // defined('_JEXEC') or die; JHtml::_('formbehavior.chosen', 'select'); $context = 'users'; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $archived = $this->state->get('filter.state') == 2 ? true : false; $trashed = $this->state->get('filter.state') == -2 ? true : false; $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); $image_path = JURI::root() . "/images/jkit/{$context}/"; ?> <!-- adminForm --> <form action="<?php echo JRoute::_('index.php?option=com_jkit&view=' . $context); ?> " method="post" name="adminForm" id="adminForm"> <!-- sidebar --> <div id="j-sidebar-container" class="span2"> <?php echo $this->sidebar; ?> </div>
/** * Prepare items: decode params and preapre to assign tags and images * @param type $items * @return type */ private function loadProperties($items) { // load image helper $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); // get ids and arrange params $ids = array(); foreach ($items as $item) { $ids[] = $item->id; $item->intro = JHtml::_('content.prepare', $item->intro); $item->body = JHtml::_('content.prepare', $item->body); $item->params = json_decode($item->params); $item->image = $imageHelper->getImage($item->id, 'items'); $item->images = array(); $item->tags = array(); } // global items_ids $this->items_ids = $ids; return $items; }
/** * Override delete method to add the image processing */ public function delete(&$pks) { // standard joomla delete $delete = parent::delete($pks); if (!$delete) { return false; } // delete images $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); foreach ($pks as $pk) { // delete item image file $imageHelper->deleteImage($pk, 'items'); // delete item gallery images $query_images = $this->_db->getQuery(true)->select('id')->from('#__jkit_images')->where("`item_id` = " . (int) $pk); $images_ids = $this->_db->setQuery($query_images)->loadColumn(); if (count($images_ids)) { // delete images files foreach ($images_ids as $image_id) { $imageHelper->deleteImage($image_id, 'images'); } // db delete images $query_delete_images = $this->_db->getQuery(true)->delete('#__jkit_images')->where("`item_id` = " . (int) $pk); $this->_db->setQuery($query_delete_images)->query(); } } // delete item translations $this->_db->setQuery("DELETE FROM `#__jkit_translations` WHERE `ref_table` = 'items' AND `ref_id` IN(" . implode(',', $pks) . ")")->query(); // delete item tags $this->_db->setQuery('DELETE FROM `#__jkit_tags_item` WHERE `item_id` IN(' . implode(',', $pks) . ')')->query(); return true; }
/** * Extend save method to add J! User actions */ public function save($data) { // get the table $table = $this->getTable(); // check isNew $key = $table->getKeyName(); $pk = !empty($data[$key]) ? $data[$key] : (int) $this->getState($this->getName() . '.id'); $isNew = true; if ($pk > 0) { $table->load($pk); $isNew = false; } // bind if (!$table->bind($data)) { $this->setError($table->getError()); return false; } // check if (!$table->check()) { $this->setError($table->getError()); return false; } // check if the user exists $jid = $table->jid ? $table->jid : 0; // check, save or update joomla user before store $juser = $this->saveJoomlaUser($jid, $data); if (!$juser) { return false; } // save jkit user $table->jid = $juser->id; if (!$table->store()) { $this->setError($table->getError()); // TODO delete prev created joomla user return false; } // set state $pkName = $table->getKeyName(); if (isset($table->{$pkName})) { $this->setState($this->getName() . '.id', $table->{$pkName}); } $this->setState($this->getName() . '.new', $isNew); // save or delete image $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); $file = $_FILES['image']; if ($file['size']) { $imageHelper->uploadImage($file, $this->getState('user.id'), 'users'); } else { if (JRequest::getInt('image_delete')) { $imageHelper->deleteImage($this->getState('user.id'), 'users'); } } return true; }
<?php /** * @package JKit * @copyright Copyright (C) CloudHotelier. All rights reserved. * @license GNU GPLv2 <http://www.gnu.org/licenses/gpl.html> * @author Xavier Pallicer <*****@*****.**> */ // defined('_JEXEC') or die; $langs = JKitHelperLangs::getLangs(); $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); $path_items = JURI::root() . "/images/jkit/items/"; $path_images = JURI::root() . "/images/jkit/images/"; $types = JKitHelper::defaultTypes(); ?> <!-- adminForm --> <form action="<?php echo JRoute::_('index.php?option=com_jkit&view=items'); ?> " method="post" name="adminForm" id="adminForm"> <!-- sidebar --> <div id="j-sidebar-container" class="span2"> <?php echo $this->sidebar; ?> <!-- categories -->