* @copyright 2007-2013 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!defined('_PS_VERSION_'))
exit;
class AddShareThis extends Module
{
public function __construct()
{
$this->name = 'addsharethis';
$this->author = 'Custom';
$this->tab = 'front_office_features';
$this->need_instance = 0;
$this->version = '0.1';
$this->bootstrap = true;
$this->_directory = dirname(__FILE__);
parent::__construct();
$this->displayName = $this->l('Add Sharethis');
$this->description = $this->l('Display social count button on the home page');
}
public function install()
{
return (
parent::install() &&
$this->registerHook('Extraright') &&
$this->registerHook('header') &&
$this->registerHook('actionObjectProductUpdateAfter') &&
$this->registerHook('actionObjectProductDeleteAfter') &&
$this->registerHook('actionObjectProductAddAfter') &&
Configuration::updateValue('CONF_ROW', 'ea22d519-9f98-4018-99a9-5b5f1b100fa8') &&
Configuration::updateValue('ADDTHISSHARE_TWITTER', 1) &&
Configuration::updateValue('ADDTHISSHARE_GOOGLE', 1) &&
Configuration::updateValue('ADDTHISSHARE_PINTEREST', 1) &&
Configuration::updateValue('ADDTHISSHARE_FACEBOOK', 1)
);
}
public function uninstall()
{
return (
parent::uninstall() &&
Configuration::deleteByName('CONF_ROW') &&
Configuration::deleteByName('ADDTHISSHARE_TWITTER') &&
Configuration::deleteByName('ADDTHISSHARE_GOOGLE') &&
Configuration::deleteByName('ADDTHISSHARE_PINTEREST') &&
Configuration::deleteByName('ADDTHISSHARE_FACEBOOK') &&
$this->unregisterHook('Extraright') &&
$this->unregisterHook('header')
);
}
public function getContent()
{
$this->_html = '
'.$this->l('Configuration').'
';
return $this->_html;
}
public function updateCog()
{
Configuration::updateValue('ADDTHISSHARE_TWITTER', (int)Tools::getValue('Twitter'));
Configuration::updateValue('ADDTHISSHARE_GOOGLE', (int)Tools::getValue('Google'));
Configuration::updateValue('ADDTHISSHARE_PINTEREST', (int)Tools::getValue('Pinterest'));
Configuration::updateValue('ADDTHISSHARE_FACEBOOK', (int)Tools::getValue('Facebook'));
$this->_clearCache('addsharethis.tpl');
}
public function hookDisplayHeader($params)
{
if ($this->context->controller->php_self != 'product')
return;
$product = $this->context->controller->getProduct();
$cache_id = 'addsharethis_header|'.(int)$product->id.'|'.(int)Tools::usingSecureMode().'|'.(int)$this->context->shop->id.'|'.(int)$this->context->language->id;
if (!$this->isCached('addsharethis_header.tpl', $cache_id))
{
$id_lang = (int)$this->context->language->id;
$images = $product->getImages((int)$id_lang);
foreach ($images AS $k => $image)
if ($image['cover'])
{
$cover['id_image'] = (int)$product->id.'-'.(int)$image['id_image'];
$cover['legend'] = $image['legend'];
break;
}
if (!isset($cover))
$cover = array('id_image' => Language::getIsoById((int)$id_lang).'-default', 'legend' => 'No picture');
$this->context->smarty->assign(array(
'cover' => $cover,
'product' => $product,
'this_path' => $this->_path
)
);
}
return $this->display(__FILE__, 'addsharethis_header.tpl', $cache_id);
}
public function hookExtraRight($params)
{
$cache_id = 'addsharethis_content|'.(int)$this->context->shop->id;
if (!$this->isCached('addsharethis.tpl', $cache_id))
{
$data = array();
if (Configuration::get('ADDTHISSHARE_TWITTER'))
$data['twitter'] = '';
if (Configuration::get('ADDTHISSHARE_GOOGLE'))
$data['google'] = '
';
if (Configuration::get('ADDTHISSHARE_PINTEREST'))
$data['pinterest'] = '
';
if (Configuration::get('ADDTHISSHARE_FACEBOOK'))
$data['facebook'] = '
';
$this->context->smarty->assign(array(
'addsharethis_data' => $data,
'conf_row' => Configuration::get('CONF_ROW')
)
);
}
return $this->display(__FILE__, 'addsharethis.tpl', $cache_id);
}
public function hookLeftColumn($params)
{
return $this->hookExtraRight($params);
}
public function hookFooter($params)
{
return $this->hookExtraRight($params);
}
public function hookHome($params)
{
return $this->hookExtraRight($params);
}
public function hookExtraleft($params)
{
return $this->hookExtraRight($params);
}
public function hookProductActions($params)
{
return $this->hookExtraRight($params);
}
public function hookProductFooter($params)
{
return $this->hookExtraRight($params);
}
public function hookActionObjectProductUpdateAfter($params)
{
return $this->_clearCache('addsharethis_header.tpl', 'addsharethis_header|'.(int)$params['object']->id);
}
public function hookActionObjectProductDeleteAfter($params)
{
return $this->hookActionObjectProductUpdateAfter($params);
}
public function hookActionObjectProductAddAfter($params)
{
return $this->hookActionObjectProductUpdateAfter($params);
}
}