PageRenderTime 23ms CodeModel.GetById 16ms app.highlight 6ms RepoModel.GetById 0ms app.codeStats 0ms

/library/Zend/Service/Technorati/BlogInfoResult.php

https://bitbucket.org/hamidrezas/melobit
PHP | 161 lines | 50 code | 20 blank | 91 comment | 10 complexity | e7c8924edb85cb5dd6fe30403dfcac43 MD5 | raw file
Possible License(s): AGPL-1.0
  1<?php
  2/**
  3 * Zend Framework
  4 *
  5 * LICENSE
  6 *
  7 * This source file is subject to the new BSD license that is bundled
  8 * with this package in the file LICENSE.txt.
  9 * It is also available through the world-wide-web at this URL:
 10 * http://framework.zend.com/license/new-bsd
 11 * If you did not receive a copy of the license and are unable to
 12 * obtain it through the world-wide-web, please send an email
 13 * to license@zend.com so we can send you a copy immediately.
 14 *
 15 * @category   Zend
 16 * @package    Zend_Service
 17 * @subpackage Technorati
 18 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
 19 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 20 * @version    $Id: BlogInfoResult.php 24594 2012-01-05 21:27:01Z matthew $
 21 */
 22
 23
 24/**
 25 * @see Zend_Service_Technorati_Utils
 26 */
 27require_once 'Zend/Service/Technorati/Utils.php';
 28
 29
 30/**
 31 * Represents a single Technorati BlogInfo query result object.
 32 *
 33 * @category   Zend
 34 * @package    Zend_Service
 35 * @subpackage Technorati
 36 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
 37 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 38 */
 39class Zend_Service_Technorati_BlogInfoResult
 40{
 41    /**
 42     * Technorati weblog url, if queried URL is a valid weblog.
 43     *
 44     * @var     Zend_Uri_Http
 45     * @access  protected
 46     */
 47    protected $_url;
 48
 49    /**
 50     * Technorati weblog, if queried URL is a valid weblog.
 51     *
 52     * @var     Zend_Service_Technorati_Weblog
 53     * @access  protected
 54     */
 55    protected $_weblog;
 56
 57    /**
 58     * Number of unique blogs linking this blog
 59     *
 60     * @var     integer
 61     * @access  protected
 62     */
 63    protected $_inboundBlogs;
 64
 65    /**
 66     * Number of incoming links to this blog
 67     *
 68     * @var     integer
 69     * @access  protected
 70     */
 71    protected $_inboundLinks;
 72
 73
 74    /**
 75     * Constructs a new object object from DOM Document.
 76     *
 77     * @param   DomDocument $dom the ReST fragment for this object
 78     */
 79    public function __construct(DomDocument $dom)
 80    {
 81        $xpath = new DOMXPath($dom);
 82        /**
 83         * @see Zend_Service_Technorati_Weblog
 84         */
 85        require_once 'Zend/Service/Technorati/Weblog.php';
 86
 87        $result = $xpath->query('//result/weblog');
 88        if ($result->length == 1) {
 89            $this->_weblog = new Zend_Service_Technorati_Weblog($result->item(0));
 90        } else {
 91            // follow the same behavior of blogPostTags
 92            // and raise an Exception if the URL is not a valid weblog
 93            /**
 94             * @see Zend_Service_Technorati_Exception
 95             */
 96            require_once 'Zend/Service/Technorati/Exception.php';
 97            throw new Zend_Service_Technorati_Exception(
 98                "Your URL is not a recognized Technorati weblog");
 99        }
100
101        $result = $xpath->query('//result/url/text()');
102        if ($result->length == 1) {
103            try {
104                // fetched URL often doens't include schema
105                // and this issue causes the following line to fail
106                $this->_url = Zend_Service_Technorati_Utils::normalizeUriHttp($result->item(0)->data);
107            } catch(Zend_Service_Technorati_Exception $e) {
108                if ($this->getWeblog() instanceof Zend_Service_Technorati_Weblog) {
109                    $this->_url = $this->getWeblog()->getUrl();
110                }
111            }
112        }
113
114        $result = $xpath->query('//result/inboundblogs/text()');
115        if ($result->length == 1) $this->_inboundBlogs = (int) $result->item(0)->data;
116
117        $result = $xpath->query('//result/inboundlinks/text()');
118        if ($result->length == 1) $this->_inboundLinks = (int) $result->item(0)->data;
119
120    }
121
122
123    /**
124     * Returns the weblog URL.
125     *
126     * @return  Zend_Uri_Http
127     */
128    public function getUrl() {
129        return $this->_url;
130    }
131
132    /**
133     * Returns the weblog.
134     *
135     * @return  Zend_Service_Technorati_Weblog
136     */
137    public function getWeblog() {
138        return $this->_weblog;
139    }
140
141    /**
142     * Returns number of unique blogs linking this blog.
143     *
144     * @return  integer the number of inbound blogs
145     */
146    public function getInboundBlogs()
147    {
148        return (int) $this->_inboundBlogs;
149    }
150
151    /**
152     * Returns number of incoming links to this blog.
153     *
154     * @return  integer the number of inbound links
155     */
156    public function getInboundLinks()
157    {
158        return (int) $this->_inboundLinks;
159    }
160
161}