1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
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@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Downloadable
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Downloadable link model
29: *
30: * @method Mage_Downloadable_Model_Resource_Link _getResource()
31: * @method Mage_Downloadable_Model_Resource_Link getResource()
32: * @method int getProductId()
33: * @method Mage_Downloadable_Model_Link setProductId(int $value)
34: * @method int getSortOrder()
35: * @method Mage_Downloadable_Model_Link setSortOrder(int $value)
36: * @method int getNumberOfDownloads()
37: * @method Mage_Downloadable_Model_Link setNumberOfDownloads(int $value)
38: * @method int getIsShareable()
39: * @method Mage_Downloadable_Model_Link setIsShareable(int $value)
40: * @method string getLinkUrl()
41: * @method Mage_Downloadable_Model_Link setLinkUrl(string $value)
42: * @method string getLinkFile()
43: * @method Mage_Downloadable_Model_Link setLinkFile(string $value)
44: * @method string getLinkType()
45: * @method Mage_Downloadable_Model_Link setLinkType(string $value)
46: * @method string getSampleUrl()
47: * @method Mage_Downloadable_Model_Link setSampleUrl(string $value)
48: * @method string getSampleFile()
49: * @method Mage_Downloadable_Model_Link setSampleFile(string $value)
50: * @method string getSampleType()
51: * @method Mage_Downloadable_Model_Link setSampleType(string $value)
52: *
53: * @category Mage
54: * @package Mage_Downloadable
55: * @author Magento Core Team <core@magentocommerce.com>
56: */
57: class Mage_Downloadable_Model_Link extends Mage_Core_Model_Abstract
58: {
59: const XML_PATH_LINKS_TITLE = 'catalog/downloadable/links_title';
60: const XML_PATH_DEFAULT_DOWNLOADS_NUMBER = 'catalog/downloadable/downloads_number';
61: const XML_PATH_TARGET_NEW_WINDOW = 'catalog/downloadable/links_target_new_window';
62: const XML_PATH_CONFIG_IS_SHAREABLE = 'catalog/downloadable/shareable';
63:
64: const LINK_SHAREABLE_YES = 1;
65: const LINK_SHAREABLE_NO = 0;
66: const LINK_SHAREABLE_CONFIG = 2;
67:
68: /**
69: * Initialize resource model
70: *
71: */
72: protected function _construct()
73: {
74: $this->_init('downloadable/link');
75: parent::_construct();
76: }
77:
78: /**
79: * Return link files path
80: *
81: * @return string
82: */
83: public static function getLinkDir()
84: {
85: return Mage::getBaseDir();
86: }
87:
88: /**
89: * Enter description here...
90: *
91: * @return Mage_Downloadable_Model_Link
92: */
93: protected function _afterSave()
94: {
95: $this->getResource()->saveItemTitleAndPrice($this);
96: return parent::_afterSave();
97: }
98:
99: /**
100: * Retrieve base temporary path
101: *
102: * @return string
103: */
104: public static function getBaseTmpPath()
105: {
106: return Mage::getBaseDir('media') . DS . 'downloadable' . DS . 'tmp' . DS . 'links';
107: }
108:
109: /**
110: * Retrieve Base files path
111: *
112: * @return string
113: */
114: public static function getBasePath()
115: {
116: return Mage::getBaseDir('media') . DS . 'downloadable' . DS . 'files' . DS . 'links';
117: }
118:
119: /**
120: * Retrieve base sample temporary path
121: *
122: * @return string
123: */
124: public static function getBaseSampleTmpPath()
125: {
126: return Mage::getBaseDir('media') . DS . 'downloadable' . DS . 'tmp' . DS . 'link_samples';
127: }
128:
129: /**
130: * Retrieve base sample path
131: *
132: * @return string
133: */
134: public static function getBaseSamplePath()
135: {
136: return Mage::getBaseDir('media') . DS . 'downloadable' . DS . 'files' . DS . 'link_samples';
137: }
138:
139: /**
140: * Retrieve links searchable data
141: *
142: * @param int $productId
143: * @param int $storeId
144: * @return array
145: */
146: public function getSearchableData($productId, $storeId)
147: {
148: return $this->_getResource()
149: ->getSearchableData($productId, $storeId);
150: }
151: }
152: