/**
  * 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);
         }
     }
 }
Example #2
0
 /** 
  * 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;
 }
Example #3
0
 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;
 }
Example #5
0
 /**
  * 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');
 }
Example #6
0
 /**
  * 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);
         }
     }
 }
Example #7
0
 /**
  * Set the categories after loading
  *
  * @return $this
  */
 protected function _afterLoad()
 {
     parent::_afterLoad();
     $this->getResource()->preparePosts(array($this));
     return $this;
 }
Example #8
0
 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);
 }
Example #10
0
 public function hasTags(Fishpig_Wordpress_Model_Post_Abstract $object)
 {
     return count($object->getTags()) > 0;
 }