| Current Path : /home/zieirix/www/components/com_roksprocket/lib/RokSprocket/Provider/Simple/Storage/ |
| Current File : /home/zieirix/www/components/com_roksprocket/lib/RokSprocket/Provider/Simple/Storage/Wordpress.php |
<?php
/**
* @version $Id: Wordpress.php 19473 2014-03-04 23:28:33Z btowles $
* @author RocketTheme http://www.rockettheme.com
* @copyright Copyright (C) 2007 - 2020 RocketTheme, LLC
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/
class RokSprocket_Provider_Simple_Storage_Wordpress extends RokSprocket_Provider_Simple_Storage_Abstract
{
/**
*
* @param $module_id
*
* @throws RokSprocket_Exception
* @return RokSprocket_ItemCollection
*/
protected function getItemsFromDB($module_id, $displayedIds = array())
{
global $wpdb;
$query = 'SELECT i.provider_id as id, i.order, i.params';
$query .= ' FROM #__roksprocket_items as i';
$query .= ' WHERE i.widget_id = "' . $module_id . '"';
$query .= ' AND i.provider = "' . RokSprocket_Provider_Simple_Storage_Interface::PROVIDER_NAME . '"';
if(count($displayedIds) > 0){
$query .= ' and i.provider_id NOT IN (' . implode(',', $displayedIds) . ')';
}
$query = str_replace('#__', $wpdb->prefix, $query); //add wp db prefix
$sprocket_items = $wpdb->get_results($query, OBJECT_K);
if ($sprocket_items === false) {
throw new RokSprocket_Exception($wpdb->last_error);
}
$converted = $this->convertRawToItems($sprocket_items);
$this->mapPerItemData($converted, $module_id);
return $converted;
}
/**
* @param RokSprocket_ItemCollection $items
*
* @param $module_id
*
* @throws RokSprocket_Exception
*/
protected function mapPerItemData(RokSprocket_ItemCollection &$items, $module_id)
{
global $wpdb;
$query = 'SELECT i.provider_id as id, i.order, i.params';
$query .= ' FROM #__roksprocket_items as i';
$query .= ' WHERE i.widget_id = "' . $module_id . '"';
$query .= ' AND i.provider = "' . RokSprocket_Provider_Simple_Storage_Interface::PROVIDER_NAME . '"';
$query = str_replace('#__', $wpdb->prefix, $query); //add wp db prefix
$sprocket_items = $wpdb->get_results($query, OBJECT_K);
if ($sprocket_items === false) {
throw new RokSprocket_Exception($wpdb->last_error);
}
/** @var $items RokSprocket_Item[] */
foreach ($items as $item_id => &$item) {
list($provider, $id) = explode('-', $item_id);
if (array_key_exists($id, $sprocket_items)) {
$items[$item_id]->setOrder((int)$sprocket_items[$id]->order);
if (!is_null($sprocket_items[$id]->params)) {
$items[$item_id]->setParams(RokCommon_Utils_ArrayHelper::fromObject(RokCommon_JSON::decode($sprocket_items[$id]->params)));
} else {
$items[$item_id]->setParams(array());
}
}
}
}
protected function isAdmin()
{
if (is_admin()){
if (defined('ROKSPROCKET_AJAX_ADMIN'))
{
return ROKSPROCKET_AJAX_ADMIN;
}
else
{
return is_admin();
}
}
else {
return is_admin();
}
}
}