/** * Plugin that returns the object list for DJ-Mediatools album * * Each object must contain following properties (mandatory): title, description, image * Optional properties: link, target (_blank or _self), alt (alt attribute for image) * * @param object The album params */ public function onAlbumPrepare(&$source, &$params) { // Lets check the requirements $check = $this->onCheckRequirements($source); if (is_null($check) || is_string($check)) { return null; } $app = JFactory::getApplication(); $default_image = $params->get('plg_k2_image'); require_once JPATH_BASE . '/modules/mod_k2_content/helper.php'; // fix K2 models path inclusion, we need to add path with prefix to avoid conflicts with other extensions JModelLegacy::addIncludePath(JPATH_BASE . '/components/com_k2/models', 'K2Model'); // create parameters for K2 content module helper $mparams = new JRegistry(); $mparams->def('itemCount', $params->get('max_images')); $mparams->def('source', $params->get('plg_k2_source')); $mparams->def('catfilter', $params->get('plg_k2_catfilter')); $mparams->set('category_id', $params->get('plg_k2_category_id', array())); $mparams->def('getChildren', $params->get('plg_k2_getChildren')); $mparams->def('itemsOrdering', $params->get('plg_k2_itemsOrdering')); $mparams->def('FeaturedItems', $params->get('plg_k2_FeaturedItems')); $mparams->def('popularityRange', $params->get('plg_k2_popularityRange')); $mparams->def('videosOnly', $params->get('plg_k2_videosOnly')); $mparams->def('item', $params->get('plg_k2_item')); $mparams->set('items', $params->get('plg_k2_items', array())); $mparams->def('itemImage', 1); $mparams->def('itemIntroText', 1); //JFactory::getApplication()->enqueueMessage("<pre>".print_r($mparams, true)."</pre>"); //$mparams->def('extra_fields', 1); $items = modK2ContentHelper::getItems($mparams); $slides = array(); foreach ($items as $item) { $slide = (object) array(); if (isset($item->imageXLarge)) { $slide->image = str_replace(JURI::base(true), '', $item->imageXLarge); } else { $slide->image = DJMediatoolsLayoutHelper::getImageFromText($item->introtext); } // if no image found in article images and introtext then try fulltext if (!$slide->image) { $slide->image = DJMediatoolsLayoutHelper::getImageFromText($item->fulltext); } // if no image found in fulltext then take default image if (!$slide->image) { $slide->image = $default_image; } // if no default image set then don't display this article if (!$slide->image) { continue; } $slide->title = $item->title; $slide->description = $item->introtext; if (empty($slide->description)) { $slide->description = $item->fulltext; } $slide->link = $item->link; $slides[] = $slide; } return $slides; }
public function getStyleSheetParams(&$params) { $options = parent::getStyleSheetParams($params); $options['tw'] = $params->get('thumb_width'); $options['th'] = $params->get('thumb_height'); return $options; }
public function getStyleSheetParams(&$params) { $options = parent::getStyleSheetParams($params); if ($params->get('desc_position') == 'over') { $options['dlpx'] = $params->get('desc_horizontal'); } $options['v'] = $params->get('visible_images'); $options['s'] = $params->get('space_between_images'); return $options; }
function display($tpl = null) { // Initialise variables JModelLegacy::addIncludePath(JPATH_COMPONENT . '/models'); $model = JModelLegacy::getInstance('Categories', 'DJMediaToolsModel', array('ignore_request' => true)); $model->setState('category.id', JRequest::getVar('cid', 0, '', 'int')); $id = JRequest::getVar('id', 0, '', 'int'); $params = $model->getParams(); $category = $model->getItem(); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseWarning(500, implode("\n", $errors)); return false; } if ($category === false) { JError::raiseError(404, JText::_('COM_DJMEDIATOOLS_ERROR_CATEGORY_NOT_FOUND')); return false; } // get gallery slides and layout $helper = DJMediatoolsLayoutHelper::getInstance('slideshow'); $params->def('category', $category->id . ':' . $category->alias); $params->def('source', $category->source); $params = $helper->getParams($params); $this->slides = $helper->getSlides($params); foreach ($this->slides as $key => $slide) { if ($id == (int) $slide->id) { $this->current = $key; break; } } if (is_null($this->current)) { JError::raiseError(404, JText::_('COM_DJMEDIATOOLS_ERROR_ITEM_NOT_FOUND')); return false; } //Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx')); $this->assignRef('params', $params); $this->assignRef('album', $category); // render modules // $document = JFactory::getDocument(); $renderer = $this->document->loadRenderer('module'); $position = 'djmt-item-desc'; $modules = JModuleHelper::getModules($position); $mparams = array('style' => 'xhtml'); ob_start(); foreach ($modules as $module) { echo $renderer->render($module, $mparams); } $this->modules[$position] = ob_get_clean(); $this->_prepareDocument(); parent::display($tpl); }
public function getSlides(&$params) { $slides = parent::getSlides($params); if (!$slides) { return $slides; } if ($params->get('slider_type') == 'down') { $slides = array_reverse($slides); } $this->count = count($slides); $this->setVisibleImages($params); return $slides; }
function display($tpl = null) { // Initialise variables JModelLegacy::addIncludePath(JPATH_COMPONENT . '/models'); $model = JModelLegacy::getInstance('Categories', 'DJMediaToolsModel', array('ignore_request' => false)); $params = $model->getParams(); $category = $model->getItem(); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseWarning(500, implode("\n", $errors)); return false; } if ($category === false) { JError::raiseError(404, JText::_('COM_DJMEDIATOOLS_ERROR_CATEGORY_NOT_FOUND')); return false; } // get gallery slides and layout $helper = DJMediatoolsLayoutHelper::getInstance($params->get('layout', 'slideshow')); $params->def('gallery_id', $category->id . 'c'); $params->def('category', $category->id . ':' . $category->alias); $params->def('source', $category->source); $params = $helper->getParams($params); $slides = $helper->getSlides($params); if ($slides) { $helper->addScripts($params); $helper->addStyles($params); $navigation = $helper->getNavigation($params); $this->assignRef('slides', $slides); $this->assignRef('navigation', $navigation); } if ($params->get('show_subcategories') != 'hide') { $subcategories = $model->getItems(); $pagination = $model->getPagination(); foreach ($subcategories as $item) { if (!($item->thumb = DJImageResizer::createThumbnail($item->image, 'media/djmediatools/cache', $params->get('cwidth', 200), $params->get('cheight', 150), $params->get('cresizing', 'crop'), $params->get('cquality', 80)))) { $item->thumb = 'administrator/components/com_djmediatools/assets/icon-album.png'; } if (strcasecmp(substr($item->thumb, 0, 4), 'http') != 0 && !empty($item->thumb)) { $item->thumb = JURI::root(true) . '/' . $item->thumb; } } $this->assignRef('subcategories', $subcategories); $this->assignRef('pagination', $pagination); } //Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx')); $this->assignRef('params', $params); $this->assignRef('category', $category); $this->_prepareDocument(); parent::display($tpl); }
public function getSlides(&$params) { $slides = parent::getSlides($params); $juri_root = JURI::root(true); if (is_array($slides) && count($slides) > 0) { foreach ($slides as $key => $slide) { $resized = !empty($juri_root) ? str_replace($juri_root . '/', '', $slide->resized_image) : $slide->resized_image; if (!($slide->grayscale_image = DJImageResizer::grayscaleImage($resized, 'media/djmediatools/cache'))) { $slide->grayscale_image = $resized; } // fix path for SEF links but not for external image urls if (strcasecmp(substr($slide->grayscale_image, 0, 4), 'http') != 0 && !empty($slide->grayscale_image)) { $slide->grayscale_image = $juri_root . '/' . $slide->grayscale_image; } } } return $slides; }
public function getStyleSheetParams(&$params) { $options = parent::getStyleSheetParams($params); $slide_width = $params->get('image_width'); $desc_width = $params->get('desc_width'); $desc_position = $params->get('desc_position'); if ($desc_position == 'over') { $desc_left = $params->get('desc_horizontal'); } $desc_width = $desc_width / $slide_width * 100; $desc_left = $desc_left / $slide_width * 100; $thumb_width = $params->get('thumb_width'); //$thumb_height = $params->get('thumb_height'); $options['w'] = $slide_width; $options['dw'] = $desc_width; if ($desc_position == 'over') { $options['dl'] = $desc_left; } $options['tw'] = $thumb_width; //$options['th'] = $thumb_height; return $options; }
protected function _load($cid) { if (!isset(self::$galleries[$cid])) { self::$galleries[$cid] = ''; jimport('joomla.application.module.helper'); // Include the syndicate functions only once require_once JPATH_ROOT . '/components/com_djmediatools/helpers/helper.php'; JModelLegacy::addIncludePath(JPATH_ROOT . '/components/com_djmediatools/models'); JModelLegacy::addTablePath(JPATH_ADMINISTRATOR . '/components/com_djmediatools/tables'); $model = JModelLegacy::getInstance('Categories', 'DJMediatoolsModel', array('ignore_request' => true)); $model->setState('category.id', $cid); $model->setState('filter.published', 1); $params = $model->getParams(false); $category = $model->getItem(); if ($category === false) { //JError::raiseError(404, JText::_('COM_DJMEDIATOOLS_ERROR_CATEGORY_NOT_FOUND')); return null; } $lang = JFactory::getLanguage(); $lang->load('com_djmediatools', JPATH_SITE, 'en-GB', false, false); $lang->load('com_djmediatools', JPATH_SITE . '/components/com_djmediatools', 'en-GB', false, false); $lang->load('com_djmediatools', JPATH_SITE, null, true, false); $lang->load('com_djmediatools', JPATH_SITE . '/components/com_djmediatools', null, true, false); // get gallery slides and layout $helper = DJMediatoolsLayoutHelper::getInstance($params->get('layout', 'slideshow')); $mid = $category->id . 'p'; $params->set('gallery_id', $mid); $params->set('category', $category->id); $params->set('source', $category->source); $params = $helper->getParams($params); $slides = $helper->getSlides($params); if ($slides) { $helper->addScripts($params); $helper->addStyles($params); $navigation = $helper->getNavigation($params); } else { return JText::_('COM_DJMEDIATOOLS_EMPTY_CATEGORY'); } ob_start(); require JModuleHelper::getLayoutPath('mod_djmediatools', $params->get('layout', 'slideshow')); self::$galleries[$cid] = ob_get_clean(); } return self::$galleries[$cid]; }
/** * Plugin that returns the object list for DJ-Mediatools album * * Each object must contain following properties (mandatory): title, description, image * Optional properties: link, target (_blank or _self), alt (alt attribute for image) * * @param object The album params */ public function onAlbumPrepare(&$source, &$params) { // Lets check the requirements $check = $this->onCheckRequirements($source); if (is_null($check) || is_string($check)) { return null; } $app = JFactory::getApplication(); require_once JPATH_ROOT . '/components/com_sobipro/lib/sobi.php'; Sobi::Initialise($params->get('section')); require_once dirname(__FILE__) . '/lib/emod.php'; $emod = new SPEntriesDJMTCtrl(); $default_image = $params->get('plg_sobipro_image'); // create parameters for K2 content module helper $mparams = new JRegistry(); $mparams->def('entriesLimit', $params->get('max_images')); $mparams->def('section', $params->get('section')); $mparams->def('cid', $params->get('cid')); $mparams->def('sid', $params->get('sid')); $mparams->def('autoListing', $params->get('plg_sobipro_autoListing')); $mparams->def('spOrder', $params->get('spOrder')); $mparams->def('spOrderDir', $params->get('spOrderDir')); $mparams->def('spLimit', $params->get('spLimit')); $mparams->def('engine', 'static'); $items = $emod->getSourceEntries($mparams); $slides = array(); //$this->debug($items); foreach ($items as $item) { $slide = (object) array(); $slide->title = $item['name']['_data']; $slide->description = $item['fields']['field_short_description']['_data']['data']['_data']; $slide->image = $item['fields']['field_company_logo']['_data']['data']['_attributes']['image']; if (!$slide->image) { $slide->image = DJMediatoolsLayoutHelper::getImageFromText($slide->description); } if (!$slide->image) { $slide->image = $default_image; } // if no default image set then don't display this entry if (!$slide->image) { continue; } $slide->id = $item->id; $slide->canonical = $slide->link = $item['url']; if ($comments = $params->get('commnets', 0)) { $host = str_replace(JURI::root(true), '', JURI::root()); $host = preg_replace('/\\/$/', '', $host); switch ($comments) { case 1: // jcomments $slide->comments = array('id' => $item->id, 'group' => 'com_sobipro'); break; case 2: // disqus $disqus_shortname = $params->get('disqus_shortname', ''); if (!empty($disqus_shortname)) { $slide->comments = array(); $slide->comments['url'] = $host . $slide->link; $slide->comments['identifier'] = substr(md5($disqus_shortname), 0, 10) . "_id" . $item->id; } break; case 3: // facebook $slide->comments = $host . $slide->link; break; case 4: //komento // not implemented break; } } $slides[] = $slide; } return $slides; }
$lang->load('com_djmediatools', JPATH_SITE . '/components/com_djmediatools', 'en-GB', false, false); $lang->load('com_djmediatools', JPATH_SITE, null, true, false); $lang->load('com_djmediatools', JPATH_SITE . '/components/com_djmediatools', null, true, false); $model = JModelLegacy::getInstance('Categories', 'DJMediatoolsModel', array('ignore_request' => true)); $model->setState('category.id', $params->get('catid')); $model->setState('filter.published', 1); $cparams = $model->getParams(false); $category = $model->getItem($params->get('catid')); $cparams->merge($params); $params = $cparams; if ($category === false) { //JError::raiseError(404, JText::_('COM_DJMEDIATOOLS_ERROR_CATEGORY_NOT_FOUND')); return false; } // get gallery slides and layout $helper = DJMediatoolsLayoutHelper::getInstance($params->get('layout', 'slideshow')); $mid = $category->id . 'm' . $module->id; $params->set('gallery_id', $mid); $params->set('category', $category->id); $params->set('source', $category->source); $params = $helper->getParams($params); $slides = $helper->getSlides($params); if ($slides) { $helper->addScripts($params); $helper->addStyles($params); $navigation = $helper->getNavigation($params); } else { echo JText::_('COM_DJMEDIATOOLS_EMPTY_CATEGORY'); return false; } require JModuleHelper::getLayoutPath('mod_djmediatools', $params->get('layout', 'slideshow'));
public function getStyleSheetParams(&$params) { $options = parent::getStyleSheetParams($params); $options['s'] = $params->get('space_between_images'); return $options; }
/** * Plugin that returns the object list for DJ-Mediatools album * * Each object must contain following properties (mandatory): title, description, image * Optional properties: link, target (_blank or _self), alt (alt attribute for image) * * @param object The album params */ public function onAlbumPrepare(&$source, &$params) { // Lets check the requirements $check = $this->onCheckRequirements($source); if (is_null($check) || is_string($check)) { return null; } $app = JFactory::getApplication(); $max = $params->get('max_images'); $catid = (int) $params->get('plg_content_id', 0); $default_image = $params->get('plg_content_image'); require_once JPATH_BASE . '/components/com_content/helpers/route.php'; JModelLegacy::addIncludePath(JPATH_BASE . '/components/com_content/models', 'ContentModel'); $model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true)); $model->setState('params', $app->getParams('com_content')); $model->setState('list.select', 'a.id, a.title, a.alias, a.introtext, a.fulltext, ' . 'a.checked_out, a.checked_out_time, ' . 'a.catid, a.created, a.created_by, a.created_by_alias, ' . 'CASE WHEN a.modified = 0 THEN a.created ELSE a.modified END as modified, ' . 'a.modified_by, uam.name as modified_by_name,' . 'CASE WHEN a.publish_up = 0 THEN a.created ELSE a.publish_up END as publish_up,' . 'a.publish_down, a.images, a.urls, a.attribs, a.metadata, a.metakey, a.metadesc, a.access, ' . 'a.hits, a.xreference, a.featured'); $model->setState('list.start', 0); $model->setState('list.limit', $max); if ($params->get('sort_by')) { $model->setState('list.ordering', $params->get('plg_content_order', 'a.ordering')); $model->setState('list.direction', $params->get('plg_content_order_dir', 'ASC')); } else { $model->setState('list.ordering', 'RAND()'); } $user = JFactory::getUser(); if (!$user->authorise('core.edit.state', 'com_content') && !$user->authorise('core.edit', 'com_content')) { // filter on published for those who do not have edit or edit.state rights. $model->setState('filter.published', 1); } $model->setState('filter.language', $app->getLanguageFilter()); // check for category selection if ($catid) { $model->setState('filter.category_id', $catid); } if ($params->get('plg_content_type') == 'featured') { $model->setState('filter.featured', 'only'); } $showSubcategories = $params->get('plg_content_maxlevel', '0'); if ($showSubcategories) { $model->setState('filter.subcategories', true); $model->setState('filter.max_category_levels', $params->get('plg_content_maxlevel', '1')); } $items = $model->getItems(); $slides = array(); foreach ($items as $item) { $slide = (object) array(); $images = new JRegistry($item->images); if ($images->get('image_intro')) { $slide->image = $images->get('image_intro'); } else { if ($images->get('image_fulltext')) { $slide->image = $images->get('image_fulltext'); } else { $slide->image = DJMediatoolsLayoutHelper::getImageFromText($item->introtext); } } //djdebug($item->fulltext); // if no image found in article images and introtext then try fulltext if (!$slide->image) { $slide->image = DJMediatoolsLayoutHelper::getImageFromText($item->fulltext); } // if no image found in fulltext then take default image if (!$slide->image) { $slide->image = $default_image; } // if no default image set then don't display this article if (!$slide->image) { continue; } $slide->title = $item->title; $slide->description = $item->introtext; if (empty($slide->description)) { $slide->description = $item->fulltext; } $slide->id = $item->alias ? $item->id . ':' . $item->alias : $item->id; $slide->canonical = $slide->link = JRoute::_(ContentHelperRoute::getArticleRoute($slide->id, $item->catid)); if ($comments = $params->get('commnets', 0)) { $host = str_replace(JURI::root(true), '', JURI::root()); $host = preg_replace('/\\/$/', '', $host); switch ($comments) { case 1: // jcomments $slide->comments = array('id' => $item->id, 'group' => 'com_content'); break; case 2: // disqus $disqus_shortname = $params->get('disqus_shortname', ''); if (!empty($disqus_shortname)) { $slide->comments = array(); $slide->comments['url'] = $host . $slide->link; $slide->comments['identifier'] = substr(md5($disqus_shortname), 0, 10) . "_id" . $item->id; } break; case 3: // facebook $slide->comments = $host . $slide->link; break; case 4: //komento // not implemented break; } } $slides[] = $slide; } return $slides; }
/** * Plugin that returns the object list for DJ-Mediatools album * * Each object must contain following properties (mandatory): title, description, image * Optional properties: link, target (_blank or _self), alt (alt attribute for image) * * @param object The album params */ public function onAlbumPrepare(&$source, &$params) { // Lets check the requirements $check = $this->onCheckRequirements($source); if (is_null($check) || is_string($check)) { return null; } $app = JFactory::getApplication(); $default_image = $params->get('plg_easyblog_image'); $path = JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_easyblog' . DIRECTORY_SEPARATOR . 'helpers' . DIRECTORY_SEPARATOR . 'helper.php'; if (!JFile::exists($path)) { return null; } require_once $path; require_once EBLOG_HELPERS . DIRECTORY_SEPARATOR . 'router.php'; JFactory::getLanguage()->load('com_easyblog', JPATH_ROOT); $mparams = new JRegistry(); $count = $params->get('max_images'); $sort = array(); $sort[0] = $params->get('plg_easyblog_order'); $sort[1] = $params->get('plg_easyblog_order_dir'); $featured = $params->get('plg_easyblog_usefeatured'); $type = 'latest'; $model = EasyBlogHelper::getModel('Blog'); $categories = EasyBlogHelper::getCategoryInclusion($params->get('plg_easyblog_catid')); $catIds = array(); if (!empty($categories)) { if (!is_array($categories)) { $categories = array($categories); } foreach ($categories as $item) { $category = new stdClass(); $category->id = trim($item); $catIds[] = $category->id; if ($params->get('plg_easyblog_includesubcategory', 0)) { $category->childs = null; EasyBlogHelper::buildNestedCategories($category->id, $category, false, true); EasyBlogHelper::accessNestedCategoriesId($category, $catIds); } } $catIds = array_unique($catIds); } $cid = $catIds; if (!empty($cid)) { $type = 'category'; } $posts = $model->getBlogsBy($type, $cid, $sort, $count, EBLOG_FILTER_PUBLISHED, null, $featured, array(), false, false, true, array(), $cid); $slides = array(); foreach ($posts as $item) { $slide = (object) array(); $row = EasyBlogHelper::getTable('Blog', 'Table'); $row->bind($item); $image = $row->getImage(); if (!empty($image)) { $slide->image = str_replace(JURI::base(), '', $image->getSource('original')); } else { $slide->image = DJMediatoolsLayoutHelper::getImageFromText($item->intro); } // if no image found in images and introtext then try fulltext if (empty($slide->image)) { $slide->image = DJMediatoolsLayoutHelper::getImageFromText($item->content); } // if no image found in fulltext then take default image if (empty($slide->image)) { $slide->image = $default_image; } // if no default image set then don't display this article if (empty($slide->image)) { continue; } $slide->title = $item->title; $slide->description = $item->intro; if (empty($slide->description)) { $slide->description = $item->content; } $slide->canonical = $slide->link = EasyBlogRouter::_('index.php?option=com_easyblog&view=entry&id=' . $item->id); //.'&Itemid='. EasyBlogRouter::getItemIdByCategories( $item->category_id ) ); $slide->id = $item->id . ':' . $item->permalink; //$this->dd($item); if ($comments = $params->get('commnets', 0)) { $host = str_replace(JURI::root(true), '', JURI::root()); $host = preg_replace('/\\/$/', '', $host); switch ($comments) { case 1: // jcomments $slide->comments = array('id' => $item->id, 'group' => 'com_easyblog'); break; case 2: // disqus $disqus_shortname = $params->get('disqus_shortname', ''); if (!empty($disqus_shortname)) { $slide->comments = array(); $slide->comments['url'] = $host . $slide->link; $slide->comments['identifier'] = $disqus_shortname . '-easyblog-' . $item->id; // ?? } break; case 3: // facebook $slide->comments = $host . $slide->link; break; case 4: //komento // not implemented break; } } $slides[] = $slide; } return $slides; }
/** * Plugin that returns the object list for DJ-Mediatools album * * Each object must contain following properties (mandatory): title, description, image * Optional properties: link, target (_blank or _self), alt (alt attribute for image) * * @param object The album params */ public function onAlbumPrepare(&$source, &$params) { // Lets check the requirements $check = $this->onCheckRequirements($source); if (is_null($check) || is_string($check)) { return null; } $app = JFactory::getApplication(); require_once JPATH_ADMINISTRATOR . '/components/com_hikashop/helpers/helper.php'; require_once JPATH_BASE . '/components/com_hikashop/views/product/view.html.php'; $view = new ProductViewProduct(array('base_path' => HIKASHOP_FRONT)); $view->setLayout('listing'); // create params for hikashop view $mparams = new JRegistry(); $mparams->set('show_limit', 0); $mparams->set('from_module', 'djmediatools'); $mparams->set('content_type', 'product'); $mparams->set('add_to_wishlist', 0); $mparams->set('link_to_product_page', 0); $mparams->set('show_vote_product', 0); $mparams->set('display_custom_item_fields', 0); $mparams->set('display_filters', 0); $mparams->set('display_badges', 0); // get options from album $mparams->def('limit', $params->get('max_images')); $mparams->def('content_synchronize', (int) $params->get('plg_hikashop_content_synchronize')); $mparams->def('product_synchronize', $params->get('plg_hikashop_product_synchronize')); $mparams->def('recently_viewed', (int) $params->get('plg_hikashop_recently_viewed')); $mparams->def('selectparentlisting', $params->get('plg_hikashop_selectparentlisting')); $mparams->def('filter_type', $params->get('plg_hikashop_filter_type')); $mparams->def('product_order', $params->get('plg_hikashop_product_order')); $mparams->def('order_dir', $params->get('plg_hikashop_order_dir')); $mparams->def('itemid', $params->get('plg_hikashop_itemid')); $mparams->def('add_to_cart', $params->get('plg_hikashop_add_to_cart')); $mparams->def('show_quantity_field', $params->get('plg_hikashop_show_quantity_field')); $mparams->def('show_out_of_stock', $params->get('plg_hikashop_show_out_of_stock')); $mparams->def('show_price', $params->get('plg_hikashop_show_price')); $mparams->def('random', $mparams->get('product_order') == 'random' ? 1 : 0); $show_price = (bool) $mparams->get('show_price'); $show_addtocart = (bool) $mparams->get('add_to_cart'); $default_image = $params->get('plg_hikashop_image'); /* hikashop authors force me to do it, because their component is not object oriented and there is no other way * to get listing of the products unless we will rewrite the whole component logic, what is nonsens :) */ ob_start(); $view->display(null, $mparams); $js = @$view->js; ob_get_clean(); // we don't need this, just $view object after view rendering //$this->debug($view->row); $slides = array(); foreach ($view->rows as $item) { $slide = (object) array(); $slide->image = $item->file_path; $slide->alt = $item->file_name; if (empty($slide->image)) { $slide->image = DJMediatoolsLayoutHelper::getImageFromText($item->product_description); } // if no image found in product description then take default image if (empty($slide->image)) { $slide->image = $default_image; } else { $slide->image = str_replace(JURI::root(true), '', $view->image->uploadFolder_url) . $slide->image; } // if no default image set then don't display this product if (empty($slide->image)) { continue; } $slide->title = $item->product_name; $slide->description = $item->product_description; $slide->canonical = $slide->link = hikashop_contentLink('product&task=show&cid=' . $item->product_id . '&name=' . $item->alias . $view->itemid . $view->category_pathway, $item); $slide->id = $item->product_id . ':' . $item->alias; if ($comments = $params->get('commnets', 0)) { $host = str_replace(JURI::root(true), '', JURI::root()); $host = preg_replace('/\\/$/', '', $host); switch ($comments) { case 1: // jcomments $slide->comments = array('id' => $item->product_id, 'group' => 'com_hikashop'); break; case 2: // disqus $disqus_shortname = $params->get('disqus_shortname', ''); if (!empty($disqus_shortname)) { $slide->comments = array(); $slide->comments['url'] = $host . $slide->link; $slide->comments['identifier'] = $disqus_shortname . '-hikashop-' . $item->product_id; // ?? } break; case 3: // facebook $slide->comments = $host . $slide->link; break; case 4: //komento // not implemented break; } } $view->row =& $item; if ($show_price) { $view->setLayout('listing_price'); $slide->extra = $view->loadTemplate(); } if ($show_addtocart) { if (!isset($slide->extra)) { $slide->extra = ''; } $view->setLayout('add_to_cart_listing'); $slide->extra .= $view->loadTemplate(); } $slides[] = $slide; } return $slides; }
public function addModal(&$params) { if (self::$_modal) { return; } $close = 'function(){ var s = window.getScroll(); window.location.hash = ""; window.scrollTo(s.x, s.y); setTimeout(function(){window.fireEvent(\'resize\');}, 500);'; if ($params->get('window_size') == 'fluid') { $modal_options = '{handler: \'iframe\', size: {x: \'100%\', y: \'100%\'}, classWindow: \'djmtmodal-window\', classOverlay: \'djmtmodal-overlay\', onOpen: function() { window.addEvent(\'resize\', function(){ var space = (window.getSize().x < 768 ? 30 : 70); this.resize({x: window.getSize().x - space, y: window.getSize().y - space}, true); }.bind(this) ); window.fireEvent(\'resize\'); }, onClose: ' . $close . ' }}'; } else { $modal_options = '{handler: \'iframe\', size: {x: ' . $params->get('window_width', '850') . ', y: ' . $params->get('window_height', '510') . '}, classWindow: \'djmtmodal-window\', classOverlay: \'djmtmodal-overlay\', onClose: ' . $close . ' }}'; } JHTML::_('behavior.modal', 'a.modal'); $document = JFactory::getDocument(); $document->addStyleSheet(JURI::root(true) . '/components/com_djmediatools/assets/css/modal.css'); $document->addScript(JURI::root(true) . '/components/com_djmediatools/assets/js/album.js'); $document->addScriptDeclaration("\n\t\twindow.addEvent('domready', function() {\n\t\t\tif(Browser.ie && Browser.version < 9) {\n\t\t\t\t\$\$('a.djmodal').each(function(link){\n\t\t\t\t\tlink.setProperty('target','_blank');\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tSqueezeBox.assign(\$\$('a.djmodal'), {$modal_options} );\n\t\t\t}\n\t\t});\n\t\t"); //djdebug(JURI::getInstance()->current()); self::$_modal = true; }
protected function _getLinkedCover($match) { $id = $match[1]; preg_match('/src="([^"]+)"/i', $match[0], $tmp); $src = isset($tmp[1]) ? $tmp[1] : ''; preg_match('/style="([^"]+)"/i', $match[0], $tmp); $style = isset($tmp[1]) ? $tmp[1] : ''; preg_match('/title="([^"]+)"/i', $match[0], $tmp); $title = isset($tmp[1]) ? $tmp[1] : ''; preg_match('/width="([^"]+)"/i', $match[0], $tmp); $width = isset($tmp[1]) ? $tmp[1] : '600'; if (!isset(self::$covers[$id])) { $app = JFactory::getApplication(); $document = JFactory::getDocument(); $model = JModelLegacy::getInstance('Categories', 'DJMediatoolsModel', array('ignore_request' => true)); $model->setState('category.id', $id); $model->setState('filter.published', 1); $params = $model->getParams(false); $category = $model->getItem(); if ($category === false) { return ''; // no category } // get layout helper $helper = DJMediatoolsLayoutHelper::getInstance($params->get('layout', 'slideshow')); $mid = $category->id . 'p'; $params->set('gallery_id', $mid); $params->set('category', $category->id . ':' . $category->alias); $params->set('source', $category->source); $params = $helper->getParams($params); $slides = $helper->getSlides($params); if (!isset($slides[0])) { return ''; // no items } $helper->addModal($params); $document->addStyleSheet('components/com_djmediatools/assets/css/default.css'); $juri_root = JURI::root(true); $src = !empty($juri_root) ? str_replace($juri_root . '/', '', $src) : $src; if (!($image = DJImageResizer::createThumbnail($src, 'media/djmediatools/cache', $width, 0, 'toWidth', 75))) { $image = $src; } if (strcasecmp(substr($image, 0, 4), 'http') != 0 && !empty($image)) { $image = JURI::root(true) . '/' . $image; } $link = JRoute::_(DJMediatoolsHelperRoute::getItemRoute($slides[0]->id, $params->get('category'))); self::$covers[$id] = '<img class="djalbum_img" src="' . $image . '" alt="' . $title . '" width="' . $width . '" />'; self::$covers[$id] = '<a class="djmodal" href="' . $link . '">' . self::$covers[$id] . '<span class="djalbum_link_tip">' . JText::_('COM_DJMEDIATOOLS_SHOW_GALLERY') . '</span>' . '</a>'; self::$covers[$id] = '<span class="djalbum_link" style="' . $style . ' width:' . $width . 'px;">' . self::$covers[$id] . '</span>'; } return self::$covers[$id]; }