/** * Apply the Vimeo short code * * @param string &$content * @param Fishpig_Wordpress_Model_Post_Abstract $object * @return void */ protected function _apply(&$content, Fishpig_Wordpress_Model_Post_Abstract $object) { if (($shortcodes = $this->_getShortcodes($content)) !== false) { foreach ($shortcodes as $it => $shortcode) { $args = $shortcode->getParams(); if (!$args->getColumns()) { $args->setColumns(3); } if (!$args->getSize()) { $args->setSize('thumbnail'); } if (!$args->getLink()) { $args->setLink('attachment'); } if ($args->getPostId()) { if ($args->getPostId() !== $params['object']->getId()) { $post = Mage::getModel('catalog/post')->load($args->getPostId()); } } if (($ids = trim($args->getIds(), ',')) !== '') { $images = new Varien_Data_Collection(); foreach (explode(',', $ids) as $imageId) { $image = Mage::getModel('wordpress/image')->load($imageId); if ($image->getId()) { $images->addItem($image); } } } else { $images = $object->getImages(); } $html = $this->_createBlock('wordpress/template')->setImageCollection($images)->setColumns($args->getColumns())->setPost($object)->setSize($args->getSize())->setLink($args->getLink())->setGalleryIt($it + 1)->setTemplate('wordpress/shortcode/gallery.phtml')->setAfterGalleryScript(Mage::helper('wp_addon_lightboxgallery')->getAfterGalleryScript($it + 1))->toHtml(); $content = str_replace($shortcode->getHtml(), $html, $content); } } }
/** * Retrieve a collection of products assocaited with the post * * @param Fishpig_Wordpress_Model_Post $post * @return Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection */ public function getAssociatedProductsByPost(Fishpig_Wordpress_Model_Post_Abstract $post) { if (!$post instanceof Fishpig_Wordpress_Model_Post) { return false; } $associations = array_keys($this->getReverseAssociations('product/post', $post->getId())); foreach ($post->getParentCategories() as $category) { $associations = array_merge($associations, array_keys($this->getReverseAssociations('product/category', $category->getId()))); } $associations = array_unique($associations); if (count($associations) > 0) { $collection = Mage::getResourceModel('catalog/product_collection'); Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection); $collection->addAttributeToFilter('status', 1); $collection->addAttributeToFilter('entity_id', array('in' => $associations)); return $collection; } return false; }
public static function getType($type = null) { if (is_null(self::$_types)) { self::$_types = json_decode(json_encode((array) Mage::getConfig()->getNode('wordpress/post/types')), true); } if (!$type) { return self::$_types; } return isset(self::$_types[$type]) ? self::$_types[$type] : false; }
/** * Retrieve the featured image for the post * * @param Fishpig_Wordpress_Model_Post_Abstract $post * @return Fishpig_Wordpress_Model_Image $image */ public function getFeaturedImage(Fishpig_Wordpress_Model_Post_Abstract $post) { if ($images = $post->getImages()) { $select = $this->_getReadAdapter()->select()->from($this->getTable('wordpress/post_meta'), 'meta_value')->where('post_id=?', $post->getId())->where('meta_key=?', '_thumbnail_id')->limit(1); if (($imageId = $this->_getReadAdapter()->fetchOne($select)) !== false) { if (preg_match('/([a-z-]{1,})([0-9]{1,})/', $imageId, $matches)) { if (($prefix = trim($matches[1], '- ')) !== '') { $eventData = array('object' => $post, 'image_id' => $matches[2], 'original_image_id' => $imageId, 'result' => new Varien_Object()); Mage::dispatchEvent('wordpress_post_get_featured_image_' . $prefix, $eventData); if ($eventData['result']->getFeaturedImage()) { return $eventData['result']->getFeaturedImage(); } } } else { return Mage::getModel('wordpress/image')->load($imageId); } } } return false; }
/** * Retrieve the correct renderer and template for $post * * @param Fishpig_Wordpress_Model_Post_Abstract $post * @return Fishpig_Wordpress_Block_Post_List_Renderer */ public function getPostRenderer(Fishpig_Wordpress_Model_Post_Abstract $post) { $type = $post->getPostType(); if (is_null($this->_renderBlock)) { $this->_renderBlock = $this->getLayout()->createBlock('wordpress/post_list_renderer'); } $this->_renderBlock->setPost($post); if ($post->getPostListTemplate()) { return $this->_renderBlock->setTemplate($post->getPostListTemplate()); } if (isset($this->_postTypeTemplates[$type])) { // return $this->_renderBlock->setTemplate($this->_postTypeTemplates[$type]); } return $this->_renderBlock->setTemplate('wordpress/post/list/renderer/default.phtml'); }
/** * Retrieve the featured image for the post * * @param Fishpig_Wordpress_Model_Post_Abstract $post * @return Fishpig_Wordpress_Model_Image $image */ public function getFeaturedImage(Fishpig_Wordpress_Model_Post_Abstract $post) { if ($images = $post->getImages()) { $select = $this->_getReadAdapter()->select()->from(Mage::helper('wordpress/db')->getTableName('postmeta'), 'meta_value')->where('post_id=?', $post->getId())->where('meta_key=?', '_thumbnail_id')->limit(1); if ($featuredImageId = $this->_getReadAdapter()->fetchOne($select)) { return Mage::getModel('wordpress/image')->load($featuredImageId); } } }
/** * Set the categories after loading * * @return $this */ protected function _afterLoad() { parent::_afterLoad(); $this->getResource()->preparePosts(array($this)); return $this; }
public function getThumbnailImage(Fishpig_Wordpress_Model_Post_Abstract $post) { if (($image = $post->getFeaturedImage()) !== false) { return $image->getAvailableImage(); } return $this->_getData('thumbnails_default'); }
public function getMetaValue($key) { return parent::getMetaValue('_wp_attachment_' . $key); }
public function hasTags(Fishpig_Wordpress_Model_Post_Abstract $object) { return count($object->getTags()) > 0; }