function paymentReturn() { $app = JFactory::getApplication(); $id = JRequest::getInt("id", ""); $cid = JRequest::getInt("cid", ""); $itemid = JRequest::getInt("Itemid", ""); $r = JRequest::getVar("r", ""); if ($r == 'ok') { //$redirect= 'index.php?option=com_djclassifieds&view=item&id='.$id.'&cid='.$cid.'&Itemid='.$itemid; $message = JTExt::_('COM_DJCLASSIFIEDS_THANKS_FOR_PAYMENT_WAIT_FOR_CONFIRMATION'); } else { $message = JTExt::_('COM_DJCLASSIFIEDS_PAYMENT_CANCELED'); } //$redirect= 'index.php?option=com_djclassifieds&view=items&cid=0&Itemid='.$itemid; $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message); }
public function display($cachable = false, $urlparams = array()) { $app = JFactory::getApplication(); /* $menus = JSite::getMenu(); $menu_item = $menus->getItems('link','index.php?option=com_djclassifieds&view=items&cid=0',1); $menu_item_blog = $menus->getItems('link','index.php?option=com_djclassifieds&view=items&layout=blog&cid=0',1); $itemid = ''; if($menu_item){ $itemid='&Itemid='.$menu_item->id; }else if($menu_item_blog){ $itemid='&Itemid='.$menu_item_blog->id; } */ JRequest::setVar('view', 'item'); $user = JFactory::getUser(); $id = JRequest::getVar('id', 0, '', 'int'); $db = JFactory::getDBO(); $query = "SELECT date_exp, user_id, published FROM #__djcf_items WHERE id=" . $id; $db->setQuery($query); $item = $db->loadObject(); if ($item->published == 0) { $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $message = JText::_("COM_DJCLASSIFIEDS_ITEM_NOT_AVAILABLE"); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message); } $date_now = JFactory::getDate(); if ($date_now < $item->date_exp || $item->user_id == $user->id) { $query = "UPDATE `#__djcf_items` SET display=display+1 WHERE id=" . $id; $db->setQuery($query); $db->query(); parent::display(); } else { $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $message = JText::_("COM_DJCLASSIFIEDS_ITEM_NOT_AVAILABLE"); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message); } }
function getItem($id) { $db = JFactory::getDBO(); $app = JFactory::getApplication(); $date_now = date("Y-m-d H:i:s"); $quantity = JRequest::getInt('quantity', 0); $query = "SELECT i.*, c.name as c_name, c.alias as c_alias FROM #__djcf_items i " . "LEFT JOIN #__djcf_categories c ON c.id=i.cat_id " . "WHERE i.id=" . $id . " AND i.published=1 AND c.published=1 AND i.date_start <= '" . $date_now . "' AND i.date_exp >= '" . $date_now . "' LIMIT 1"; $db->setQuery($query); $item = $db->loadObject(); if (!$item) { $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $message = JText::_("COM_DJCLASSIFIEDS_ITEM_NOT_AVAILABLE"); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message); } else { if ($quantity > $item->quantity) { $redirect = DJClassifiedsSEO::getItemRoute($item->id . ':' . $item->alias, $item->cat_id . ':' . $item->c_alias); $message = JText::_("COM_DJCLASSIFIEDS_NUMBER_OF_PRODUCTS_IS_LESS_THEN_SELECTED"); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message); } } return $item; }
if ($cid == $c->id) { $cl = 'active current'; } else { $cl = 'active'; } if ($c->have_childs) { $cl .= ' deeper'; } } if ($c->have_childs) { if ($cl) { $cl .= ' '; } $cl .= 'parent'; } echo '<li class="' . $cl . '"><a href="' . JRoute::_(DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias)) . '">' . $c->name . '</a>'; $c_count++; } if ($prev_l > 0) { for ($i = 0; $i < $prev_l; $i++) { echo '</li></ul>'; } } ?> </ul> <?php } if ($params->get('new_ad_link', '0') == 2) { echo '<div class="newad_link_bottom"><a class="button" href="' . $new_ad_link . '">' . JText::_('MOD_DJCLASSIFIEDS_MENU_NEW_ADD') . '</a></div>'; }
} echo '</div>'; } } if ($icon_fav) { echo ' <img src="' . JURI::base() . '/components/com_djclassifieds/assets/images/fav_a.png" width="16px" class="fav_ico"/>'; } if ($icon_new) { echo ' <span class="new_icon">' . JText::_('COM_DJCLASSIFIEDS_NEW') . '</span>'; } if (strstr($i->promotions, 'p_special')) { echo ' <img src="' . JURI::base() . '/components/com_djclassifieds/themes/' . $this->theme . '/images/promo_star.png" width="31px" class="prom_ico"/>'; } echo '</td>'; if ($par->get('column_category', '1')) { echo '<td class="cat_name"><a href="' . DJClassifiedsSEO::getCategoryRoute($i->cat_id . ':' . $i->c_alias) . '" >' . $i->c_name . '</a></td>'; } if ($par->get('column_desc', '1')) { echo '<td class="description"><a class="title" href="' . DJClassifiedsSEO::getItemRoute($i->id . ':' . $i->alias, $i->cat_id . ':' . $i->c_alias) . $anch . '">'; echo mb_substr(strip_tags($i->intro_desc), 0, $par->get('introdesc_char_limit', '120'), 'UTF-8'); echo '</a></td>'; } if ($par->get('column_loc', '1') && $par->get('show_regions', '1')) { echo '<td class="region"><a href="index.php?option=com_djclassifieds&view=items&se=1&se_regs[]=' . $i->region_id . '&Itemid=' . $Itemid . '">' . $i->r_name . '</td>'; } if ($par->get('column_price', '1') && $par->get('show_price', '1')) { echo '<td class="price">'; if ($i->price) { echo DJClassifiedsTheme::priceFormat($i->price, $i->currency); } else { echo '---';
function _paymentError($msg) { $app = JFactory::getApplication(); $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $redirect = JRoute::_($redirect); $app->redirect($redirect, $msg); }
function display($tpl = null) { $model = $this->getModel(); $par = JComponentHelper::getParams('com_djclassifieds'); $document = JFactory::getDocument(); $app = JFactory::getApplication(); $dispatcher = JDispatcher::getInstance(); $theme = $par->get('theme', 'default'); $item = $model->getItem(); $item_images = DJClassifiedsImage::getAdsImages($item->id); $category = $model->getCategory($item->cat_id); $fields = $model->getFields($item->cat_id); $fields_contact = $model->geContactFields(); $item_payments = $model->getItemPayment($item->id); if ($item->user_id != 0) { $user_items_c = $model->getUserItemsCount($item->user_id); $this->assignRef('user_items_c', $user_items_c); } $menus = $app->getMenu('site'); $m_active = $menus->getActive(); $cat_menu_path = array(); $cid_menu = 0; if ($m_active) { if (strstr($m_active->link, 'com_djclassifieds') && strstr($m_active->link, 'items')) { $cid_menu = $m_active->query['cid']; if ($cid_menu > 0) { $cat_menu_path = DJClassifiedsCategory::getParentPath(1, $cid_menu); } } } $main_cat_id = $item->cat_id; $pathway = $app->getPathway(); $cat_path = array(); $cat_theme = ''; if ($category->id != 0) { $cat_path = DJClassifiedsCategory::getParentPath(1, $category->id); $main_cat_id = $cat_path[count($cat_path) - 1]->id; for ($c = count($cat_path); $c > 0; $c--) { $to_b = 1; if (count($cat_menu_path)) { foreach ($cat_menu_path as $cm) { if ($cm->id == $cat_path[$c - 1]->id) { $to_b = 0; break; } } } if ($to_b) { $pathway->addItem($cat_path[$c - 1]->name, DJClassifiedsSEO::getCategoryRoute($cat_path[$c - 1]->id . ':' . $cat_path[$c - 1]->alias)); } } foreach ($cat_path as $cp) { if ($cp->theme) { $cat_theme = $cp->theme; } } } DJClassifiedsTheme::includeCSSfiles($cat_theme); if ($cat_theme) { $this->_addPath('template', JPATH_COMPONENT . '/themes/' . $cat_theme . '/views/item'); $theme = $cat_theme; } $regions = $model->getRegions(); $country = ''; $city = ''; $region_name = ''; if ($item->region_id != 0 && $par->get('show_regions', '1')) { $address = ''; $rid = $item->region_id; if ($rid != 0) { while ($rid != 0) { foreach ($regions as $li) { if ($li->id == $rid) { $rid = $li->parent_id; $address .= $li->name . ', '; if ($li->country) { $country = $li->name; } if ($li->city) { $city = $li->name; } if (!$region_name) { $region_name = $li->name; } break; } } if ($rid == $item->region_id) { break; } } } $address = substr($address, 0, -2); } $profile = ''; if ($item->user_id) { $profile = $model->getProfile($item->user_id); } if ($item->metakey != '') { $document->setMetaData('keywords', $item->metakey); } else { if ($category->metakey != '') { $document->setMetaData('keywords', $category->metakey); } else { if ($m_active) { if ($m_active->params->get('menu-meta_description')) { $document->setMetaData('keywords', $m_active->params->get('menu-meta_description')); } } } } if ($item->metadesc != '') { $document->setDescription($item->metadesc); } else { if ($par->get('seo_item_metadesc', '0') == 0) { $document->setDescription($item->intro_desc); } else { if ($category->metadesc != '') { $document->setDescription($category->metadesc); } else { if ($m_active) { if ($m_active->params->get('menu-meta_keywords')) { $document->setDescription($m_active->params->get('menu-meta_keywords')); } } } } } $c_title = $document->getTitle(); $cat_name = $category->name; $item_name = $item->name; $seo_cat_path = ''; $seo_title_separator = $par->get('seo_title_separator', ' - '); foreach ($cat_path as $cp) { if ($seo_cat_path) { $seo_cat_path .= $seo_title_separator; } $seo_cat_path .= $cp->name; } $seo_title_from = array('|', '<default_title>', '<category_name>', '<category_path>', '<item_name>', '<region_name>'); $seo_title_to = array($seo_title_separator, $c_title, $cat_name, $seo_cat_path, $item_name, $region_name); $seo_title = str_ireplace($seo_title_from, $seo_title_to, $par->get('seo_title_item', '<item_name>|<category_name>|<default_title>')); $document->setTitle($seo_title); $document->setMetaData('og:title', $item->name); $document->setMetaData('og:description', $item->intro_desc); if ($item->image_url != '') { $images = explode(";", $item->image_url); $document->setMetaData('og:image', JURI::base() . 'components/com_djclassifieds/images/' . $images[0]); } /* plugins */ JPluginHelper::importPlugin('djclassifieds'); $results = $dispatcher->trigger('onPrepareItemDescription', array(&$item, &$par)); $item->event = new stdClass(); $resultsAfterTitle = $dispatcher->trigger('onAfterDJClassifiedsDisplayTitle', array(&$item, &$par)); $item->event->afterDJClassifiedsDisplayTitle = trim(implode("\n", $resultsAfterTitle)); $resultsBeforeContent = $dispatcher->trigger('onBeforeDJClassifiedsDisplayContent', array(&$item, &$par)); $item->event->beforeDJClassifiedsDisplayContent = trim(implode("\n", $resultsBeforeContent)); $resultsAfterContent = $dispatcher->trigger('onAfterDJClassifiedsDisplayContent', array(&$item, &$par)); $item->event->afterDJClassifiedsDisplayContent = trim(implode("\n", $resultsAfterContent)); $pathway->addItem($item->name); $this->assignRef('item', $item); $this->assignRef('item_images', $item_images); $this->assignRef('fields', $fields); $this->assignRef('fields_contact', $fields_contact); $this->assignRef('country', $country); $this->assignRef('city', $city); $this->assignRef('address', $address); $this->assignRef('main_cat_id', $main_cat_id); $this->assignRef('item_payments', $item_payments); $this->assignRef('category', $category); $this->assignRef('profile', $profile); $this->assignRef('theme', $theme); parent::display($tpl); }
echo '<li class="' . $cl . '" >'; echo '<div class="title">'; echo '<a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . '">' . $cat_img . '</a>'; echo '<div class="cat_title_desc">'; echo '<h2><a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . '">' . $c->name . $items_in_c . '</a></h2>'; if ($c->description) { echo '<div class="cat_desc">' . $c->description . '</div>'; } echo '</div>'; echo '</div>'; } else { if ($cl) { $cl = 'class="' . $cl . '"'; } echo '<li ' . $cl . '>'; echo '<a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . '">'; echo $cat_img . '<span class="cat_name">' . $c->name . $items_in_c . '</span>'; echo '</a>'; echo $ll_coma; } $c_count++; } if ($prev_l > 0) { for ($i = 0; $i < $prev_l; $i++) { echo '</li></ul>'; } } ?> </ul> <div class="clear_both"></div>
/** * Plugin that returns the object list for DJ-Mediatools album * * Each object must contain following properties (mandatory): title, description, image * Optional properties: link, target (_blank or _self), alt (alt attribute for image) * * @param object The album params */ public function onAlbumPrepare(&$source, &$params) { // Lets check the requirements $check = $this->onCheckRequirements($source); if (is_null($check) || is_string($check)) { return null; } $app = JFactory::getApplication(); $default_image = $params->get('plg_classifieds_image'); require_once JPATH_BASE . '/modules/mod_djclassifieds_items/helper.php'; require_once JPATH_BASE . DS . 'administrator' . DS . 'components' . DS . 'com_djclassifieds' . DS . 'lib' . DS . 'djtheme.php'; require_once JPATH_BASE . DS . 'administrator' . DS . 'components' . DS . 'com_djclassifieds' . DS . 'lib' . DS . 'djseo.php'; $mparams = new JRegistry(); foreach ($params->toArray() as $key => $value) { if (strpos($key, 'plg_classifieds_') !== FALSE) { $nkey = substr($key, 16); switch ($nkey) { case 'catid': $mparams->set('cat_id', $value); break; case 'follow_category': $mparams->set('fallow_category', $value); break; case 'follow_region': $mparams->set('fallow_region', $value); break; case 'only_promoted': foreach ($value as $promo) { $mparams->set('only_' . $promo, 1); } break; default: $mparams->set($nkey, $value); break; } } } // override number of items $mparams->set('items_nr', $params->get('max_images')); // we need ads only with images if (empty($default_image)) { $mparams->set('only_with_img', 1); } //$this->debug($mparams); $items = modDjClassifiedsItems::getItems($mparams); $types = modDjClassifiedsItems::getTypes(); $slides = array(); if ($items) { foreach ($items as $i) { $slide = (object) array(); if (!empty($i->img_path) && !empty($i->img_name) && !empty($i->img_ext)) { // DJ-Classifieds 3.2+ $slide->image = $i->img_path . $i->img_name . '_thb.' . $i->img_ext; } else { if (!empty($i->image_url)) { // DJ-Classifieds version < 3.2 $images = explode(';', $i->image_url); $slide->image = 'components/com_djclassifieds/images/' . $images[0]; } else { if (!empty($default_image)) { $slide->image = $default_image; } else { continue; } } } // we got image now take extra information $slide->extra = ''; if ($mparams->get('show_date') == 1) { $slide->extra .= '<div class="date">'; if (method_exists('DJClassifiedsTheme', 'formatDate')) { $slide->extra .= DJClassifiedsTheme::formatDate(strtotime($i->date_start)); } else { $slide->extra .= DJClassifiedsTheme::dateFormatFromTo(strtotime($i->date_start)); } $slide->extra .= '</div>'; } if ($mparams->get('show_cat') == 1) { $slide->extra .= '<div class="category">'; if ($mparams->get('cat_link') == 1) { $slide->extra .= '<a class="title_cat" href="' . JRoute::_(DJClassifiedsSEO::getCategoryRoute($i->cat_id . ':' . $i->c_alias)) . '">' . $i->c_name . '</a>'; } else { $slide->extra .= $i->c_name; } $slide->extra .= '</div>'; } if ($mparams->get('show_type') && $i->type_id > 0) { if (isset($types[$i->type_id])) { $slide->extra .= '<div class="type">'; $type = $types[$i->type_id]; if ($type->params->bt_class) { $bt_class = ' ' . $type->params->bt_class; } else { $bt_class = ''; } if ($type->params->bt_use_styles) { if ($mparams->get('show_type') == 2) { $style = 'style="display:inline-block;' . 'border:' . (int) $type->params->bt_border_size . 'px solid ' . $type->params->bt_border_color . ';' . 'background:' . $type->params->bt_bg . ';' . 'color:' . $type->params->bt_color . ';' . $type->params->bt_style . '"'; $slide->extra .= '<div class="type_button' . $bt_class . '" ' . $style . ' >' . $type->name . '</div>'; } else { $slide->extra .= '<div class="type_label' . $bt_class . '" >' . $type->name . '</div>'; } } else { $slide->extra .= '<div class="type_label' . $bt_class . '" >' . $type->name . '</div>'; } $slide->extra .= '</div>'; } } if ($mparams->get('show_region') == 1) { $slide->extra .= '<div class="region">'; $slide->extra .= $i->r_name; $slide->extra .= '</div>'; } if ($mparams->get('show_price') == 1 && $i->price) { $slide->extra .= '<div class="price">'; $slide->extra .= DJClassifiedsTheme::priceFormat($i->price, $i->currency); $slide->extra .= '</div>'; } // finish getting extra information $slide->title = $i->name; $slide->description = $i->intro_desc; if (empty($slide->description)) { $slide->description = $i->description; } $slide->full_desc = $i->description; $slide->link = JRoute::_(DJClassifiedsSEO::getItemRoute($i->id . ':' . $i->alias, $i->cat_id . ':' . $i->c_alias)); $slides[] = $slide; } } return $slides; }
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with DJ Classifieds. If not, see <http://www.gnu.org/licenses/>. * */ defined('_JEXEC') or die('Restricted access'); $par = JComponentHelper::getParams('com_djclassifieds'); $max_level = $params->get('max_level', '0'); $config = JFactory::getConfig(); if ($params->get('results_itemid', 0)) { $se_results_link = 'index.php?option=com_djclassifieds&view=items&cid=0&Itemid=' . $params->get('results_itemid', 0); $se_results_link = JRoute::_($se_results_link); } else { $se_results_link = JRoute::_(DJClassifiedsSEO::getCategoryRoute('0:all')); } if ($config->get('sef')) { $se_results_link .= '?se=1&re=1&se_regs='; } else { $se_results_link .= '&se=1&re=1&se_regs='; } ?> <div class="djcf_menu djcf_regions"> <?php if ($regs) { ?> <ul class="menu nav"> <?php $r_count = 0;
function display($tpl = null) { $model = $this->getModel(); $par = JComponentHelper::getParams('com_djclassifieds'); $document = JFactory::getDocument(); $app = JFactory::getApplication(); $dispatcher = JDispatcher::getInstance(); $theme = $par->get('theme', 'default'); $user = JFactory::getUser(); $item = $model->getItem(); if ($item->user_id != $user->id) { $groups_acl = ',' . implode(',', $user->getAuthorisedViewLevels()) . ','; if (!strstr($groups_acl, ',' . $item->c_access_view . ',') || !$item) { DJClassifiedsTheme::djAccessRestriction('category'); } else { if ($item->access_view == 0) { if (!strstr($groups_acl, ',' . $item->c_access_item_view . ',')) { DJClassifiedsTheme::djAccessRestriction(); } } else { if (!strstr($groups_acl, ',' . $item->access_view . ',')) { DJClassifiedsTheme::djAccessRestriction(); } } } } $item_images = DJClassifiedsImage::getAdsImages($item->id); $category = $model->getCategory($item->cat_id); $fields = $model->getFields($item->cat_id); $fields_contact = $model->geContactFields(); $item_payments = $model->getItemPayment($item->id); $item_options = $model->getItemOptions($item->id); $bids = $model->getBids($item->id, $par->get('bids_displayed', 5)); if ($item->user_id != 0) { $user_items_c = $model->getUserItemsCount($item->user_id); $this->assignRef('user_items_c', $user_items_c); } $menus = $app->getMenu('site'); $m_active = $menus->getActive(); $cat_menu_path = array(); $cid_menu = 0; if ($m_active) { if (strstr($m_active->link, 'com_djclassifieds') && strstr($m_active->link, 'items')) { $cid_menu = $m_active->query['cid']; if ($cid_menu > 0) { $cat_menu_path = DJClassifiedsCategory::getParentPath(1, $cid_menu); } } } $warning18 = ''; $main_cat_id = $item->cat_id; $pathway = $app->getPathway(); $cat_path = array(); $cat_theme = ''; if ($category->id != 0) { $cat_path = DJClassifiedsCategory::getParentPath(1, $category->id); $main_cat_id = $cat_path[count($cat_path) - 1]->id; for ($c = count($cat_path); $c > 0; $c--) { $to_b = 1; if (count($cat_menu_path)) { foreach ($cat_menu_path as $cm) { if ($cm->id == $cat_path[$c - 1]->id) { $to_b = 0; break; } } } if ($to_b) { $pathway->addItem($cat_path[$c - 1]->name, DJClassifiedsSEO::getCategoryRoute($cat_path[$c - 1]->id . ':' . $cat_path[$c - 1]->alias)); } } foreach ($cat_path as $cp) { if ($cp->theme) { $cat_theme = $cp->theme; } if ($cp->restriction_18) { $warning18 = 1; } } } DJClassifiedsTheme::includeCSSfiles($cat_theme); if ($cat_theme) { $this->_addPath('template', JPATH_COMPONENT . '/themes/' . $cat_theme . '/views/item'); $theme = $cat_theme; } $regions = $model->getRegions(); $country = ''; $city = ''; $region_name = ''; if ($item->region_id != 0 && $par->get('show_regions', '1')) { $address = ''; $rid = $item->region_id; if ($rid != 0) { while ($rid != 0) { foreach ($regions as $li) { if ($li->id == $rid) { $rid = $li->parent_id; $address .= $li->name . ', '; if ($li->country) { $country = $li->name; } if ($li->city) { $city = $li->name; } if (!$region_name) { $region_name = $li->name; } break; } } if ($rid == $item->region_id) { break; } } } $address = substr($address, 0, -2); } $profile = ''; if ($item->user_id) { $profile = $model->getProfile($item->user_id); } $custom_ask_seller = $model->getCustomAskSellerFields(); if ($item->metakey != '') { $document->setMetaData('keywords', $item->metakey); } else { if ($category->metakey != '') { $document->setMetaData('keywords', $category->metakey); } else { if ($m_active) { if ($m_active->params->get('menu-meta_description')) { $document->setMetaData('keywords', $m_active->params->get('menu-meta_description')); } } } } if ($item->metadesc != '') { $document->setDescription($item->metadesc); } else { if ($par->get('seo_item_metadesc', '0') == 0) { $document->setDescription($item->intro_desc); } else { if ($category->metadesc != '') { $document->setDescription($category->metadesc); } else { if ($m_active) { if ($m_active->params->get('menu-meta_keywords')) { $document->setDescription($m_active->params->get('menu-meta_keywords')); } } } } } $c_title = $document->getTitle(); $cat_name = $category->name; $item_name = $item->name; $seo_cat_path = ''; $seo_title_separator = $par->get('seo_title_separator', ' - '); foreach ($cat_path as $cp) { if ($seo_cat_path) { $seo_cat_path .= $seo_title_separator; } $seo_cat_path .= $cp->name; } $seo_title_from = array('|', '<default_title>', '<category_name>', '<category_path>', '<item_name>', '<region_name>'); $seo_title_to = array($seo_title_separator, $c_title, $cat_name, $seo_cat_path, $item_name, $region_name); $seo_title = str_ireplace($seo_title_from, $seo_title_to, $par->get('seo_title_item', '<item_name>|<category_name>|<default_title>')); $document->setTitle($seo_title); $document->setMetaData('og:title', $item->name); $document->setMetaData('og:description', $item->intro_desc); if ($item_images) { $document->setMetaData('og:image', JURI::base() . $item_images[0]->thumb_b); } if ($par->get('comments', '0') == 1 && $par->get('fb_comments_admin', '') != '') { $document->addCustomTag('<meta property="fb:admins" content="' . $par->get('fb_comments_admin', '') . '" />'); } $anch = $par->get('showitem_jump', 0) ? '#dj-classifieds' : ''; $correct_link = JRoute::_(DJClassifiedsSEO::getItemRoute($item->id . ':' . $item->alias, $item->cat_id . ':' . $item->c_alias)) . $anch; $document->setMetaData('canonical', $correct_link); /* plugins */ if ($category) { $item->c_alias = $category->alias; } $results = $dispatcher->trigger('onPrepareItemDescription', array(&$item, &$par, 'item')); $item->event = new stdClass(); $resultsAfterTitle = $dispatcher->trigger('onAfterDJClassifiedsDisplayTitle', array(&$item, &$par, 'item')); $item->event->afterDJClassifiedsDisplayTitle = trim(implode("\n", $resultsAfterTitle)); $resultsBeforeContent = $dispatcher->trigger('onBeforeDJClassifiedsDisplayContent', array(&$item, &$par, 'item')); $item->event->beforeDJClassifiedsDisplayContent = trim(implode("\n", $resultsBeforeContent)); $resultsAfterContent = $dispatcher->trigger('onAfterDJClassifiedsDisplayContent', array(&$item, &$par, 'item')); $item->event->afterDJClassifiedsDisplayContent = trim(implode("\n", $resultsAfterContent)); $resultsAfterAuthorProfile = $dispatcher->trigger('onAfterDJClassifiedsDisplayAdvertAuthor', array(&$item, &$par, 'item')); $item->event->onAfterDJClassifiedsDisplayAdvertAuthor = trim(implode("\n", $resultsAfterAuthorProfile)); $pathway->addItem($item->name); $this->assignRef('item', $item); $this->assignRef('item_images', $item_images); $this->assignRef('item_options', $item_options); $this->assignRef('fields', $fields); $this->assignRef('fields_contact', $fields_contact); $this->assignRef('country', $country); $this->assignRef('city', $city); $this->assignRef('address', $address); $this->assignRef('main_cat_id', $main_cat_id); $this->assignRef('item_payments', $item_payments); $this->assignRef('category', $category); $this->assignRef('profile', $profile); $this->assignRef('theme', $theme); $this->assignRef('bids', $bids); $this->assignRef('custom_ask_seller', $custom_ask_seller); if ($warning18 && !isset($_COOKIE["djcf_warning18"])) { $warning18_link = ''; if ($par->get('restriction_18_art_id', 0)) { require_once JPATH_SITE . '/components/com_content/helpers/route.php'; $terms_article = $model->getTermsLink($par->get('restriction_18_art_id', 0)); if ($terms_article) { $slug = $terms_article->id . ':' . $terms_article->alias; $cslug = $terms_article->catid . ':' . $terms_article->c_alias; $warning18_link = ContentHelperRoute::getArticleRoute($slug, $cslug); if ($par->get('restriction_18_art', 0) == 2) { $warning18_link .= '&tmpl=component'; } $warning18_link = JRoute::_($warning18_link); } } $this->assignRef('terms_link', $warning18_link); parent::display('terms'); } else { parent::display($tpl); } }
function deleteToken() { $app = JFactory::getApplication(); $user = JFactory::getUser(); $db = JFactory::getDBO(); $token = JRequest::getCmd('token', ''); $query = "SELECT i.* FROM #__djcf_items i " . "WHERE i.user_id=0 AND i.token=" . $db->Quote($db->escape($token)); $db->setQuery($query); $item = $db->loadObject(); if (!$item) { $message = JText::_("COM_DJCLASSIFIEDS_WRONG_AD"); $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message, 'error'); } $query = "SELECT * FROM #__djcf_images WHERE item_id=" . $item->id . " AND type='item' "; $db->setQuery($query); $item_images = $db->loadObjectList('id'); if ($item_images) { foreach ($item_images as $item_img) { $path_to_delete = JPATH_ROOT . $item_img->path . $item_img->name; if (JFile::exists($path_to_delete . '.' . $item_img->ext)) { JFile::delete($path_to_delete . '.' . $item_img->ext); } if (JFile::exists($path_to_delete . '_ths.' . $item_img->ext)) { JFile::delete($path_to_delete . '_ths.' . $item_img->ext); } if (JFile::exists($path_to_delete . '_thm.' . $item_img->ext)) { JFile::delete($path_to_delete . '_thm.' . $item_img->ext); } if (JFile::exists($path_to_delete . '_thb.' . $item_img->ext)) { JFile::delete($path_to_delete . '_thb.' . $item_img->ext); } } } $query = "DELETE FROM #__djcf_items WHERE id = " . $item->id; $db->setQuery($query); $db->query(); $query = "DELETE FROM #__djcf_fields_values WHERE item_id = " . $item->id; $db->setQuery($query); $db->query(); $query = "DELETE FROM #__djcf_payments WHERE item_id = " . $item->id; $db->setQuery($query); $db->query(); $query = "DELETE FROM #__djcf_images WHERE item_id=" . $item->id . " AND type='item' "; $db->setQuery($query); $db->query(); $message = JText::_('COM_DJCLASSIFIEDS_AD_DELETED'); $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $redirect = JRoute::_($redirect, false); $app->redirect($redirect, $message); }
public static function djAccessRestriction($type = '') { $app = JFactory::getApplication(); $par = JComponentHelper::getParams('com_djclassifieds'); if ($type == 'category') { $message = JText::_("COM_DJCLASSIFIEDS_YOU_ARE_NOT_AUTHORIZED_TO_VIEW_THIS_CATEGORY"); } else { $message = JText::_("COM_DJCLASSIFIEDS_YOU_ARE_NOT_AUTHORIZED_TO_VIEW_THIS_ADVERT"); } if ($par->get('acl_redirect', '0') == 1) { JError::raiseWarning(403, $message); $redirect = JURI::base(); } else { if ($par->get('acl_redirect', '0') == 2 && $par->get('acl_red_article_id', '0') > 0) { $db = JFactory::getDBO(); $query = "SELECT a.id, a.alias, a.catid, c.alias as c_alias FROM #__content a " . "LEFT JOIN #__categories c ON c.id=a.catid " . "WHERE a.state=1 AND a.id=" . $par->get('acl_red_article_id', '0'); $db->setQuery($query); $acl_article = $db->loadObject(); if ($acl_article) { require_once JPATH_ROOT . '/components/com_content/helpers/route.php'; $slug = $acl_article->id . ':' . $acl_article->alias; $cslug = $acl_article->catid . ':' . $acl_article->c_alias; $article_link = ContentHelperRoute::getArticleRoute($slug, $cslug); $redirect = JRoute::_($article_link); } else { $redirect = JURI::base(); } } else { $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); } } $redirect = JRoute::_($redirect); $app->redirect($redirect, $message, 'error'); return null; }
function getItem() { $app = JFactory::getApplication(); $id = JRequest::getVar('id', 0, '', 'int'); $user = JFactory::getUser(); $db = JFactory::getDBO(); $query = "SELECT i.*,c.alias as c_alias FROM #__djcf_items i " . "LEFT JOIN #__djcf_categories c ON c.id=i.cat_id " . "WHERE i.user_id=" . $user->id . " AND i.id=" . $id . " "; $db->setQuery($query); $item = $db->loadObject(); if (!$item) { $message = JText::_("COM_DJCLASSIFIEDS_WRONG_AD"); $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message, 'error'); } return $item; }
if ($title_c > 0 && strlen($i->name) > $title_c) { $i->name = mb_substr($i->name, 0, $title_c, 'utf-8') . ' ...'; } echo '<a class="title" href="' . JRoute::_(DJClassifiedsSEO::getItemRoute($i->id . ':' . $i->alias, $i->cat_id . ':' . $i->c_alias)) . '">' . $i->name . '</a>'; } if ($params->get('show_date') == 1 || $params->get('show_cat') == 1 || $params->get('show_price') == 1 || $params->get('show_type', '1')) { echo '<div class="date_cat">'; if ($params->get('show_date') == 1) { echo '<span class="date">'; echo DJClassifiedsTheme::formatDate(strtotime($i->date_start), '', $cfpar->get('date_format_type_modules', 0)); echo '</span>'; } if ($params->get('show_cat') == 1) { echo '<span class="category">'; if ($params->get('cat_link') == 1) { echo '<a class="title_cat" href="' . JRoute::_(DJClassifiedsSEO::getCategoryRoute($i->cat_id . ':' . $i->c_alias)) . '">' . $i->c_name . '</a>'; } else { echo $i->c_name; } echo '</span>'; } if ($params->get('show_type', '1') && $i->type_id > 0) { if (isset($types[$i->type_id])) { echo '<span class="type">'; $type = $types[$i->type_id]; if ($type->params->bt_class) { $bt_class = ' ' . $type->params->bt_class; } else { $bt_class = ''; } if ($type->params->bt_use_styles) {
function display($tpl = null) { JHTML::_('behavior.modal'); $document = JFactory::getDocument(); $par = JComponentHelper::getParams('com_djclassifieds'); $app = JFactory::getApplication(); $user = JFactory::getUser(); $model = $this->getModel(); $dispatcher = JDispatcher::getInstance(); $config = JFactory::getConfig(); $cat_id = JRequest::getVar('cid', 0, '', 'int'); $uid = JRequest::getVar('uid', 0, '', 'int'); $se = JRequest::getVar('se', 0, '', 'int'); $reset = JRequest::getVar('reset', 0, '', 'int'); $layout = JRequest::getVar('layout', ''); $order = JRequest::getCmd('order', $par->get('items_ordering', 'date_e')); $ord_t = JRequest::getCmd('ord_t', $par->get('items_ordering_dir', 'desc')); $theme = $par->get('theme', 'default'); if ($layout == 'favourites') { if ($user->id == '0') { $uri = JFactory::getURI(); $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN')); } JRequest::setVar('fav', '1'); } if ($reset) { $items = $model->resetSearchFilters(); } $catlist = ''; if ($cat_id > 0) { $cats = DJClassifiedsCategory::getSubCatIemsCount($cat_id, 1, $par->get('subcats_ordering', 'ord'), $par->get('subcats_hide_empty', 0)); $catlist = $cat_id; foreach ($cats as $c) { $catlist .= ',' . $c->id; } } else { $cats = DJClassifiedsCategory::getCatAllItemsCount(1, $par->get('subcats_ordering', 'ord'), $par->get('subcats_hide_empty', 0)); } $subcats = ''; $cat_images = ''; foreach ($cats as $c) { if ($c->parent_id == $cat_id) { $subcats .= $c->id . ','; } } if ($subcats) { $subcats = substr($subcats, 0, -1); $cat_images = $model->getCatImages($subcats); } $items = $model->getItems($catlist); $countitems = $model->getCountItems($catlist); $menus = $app->getMenu('site'); $m_active = $menus->getActive(); $cat_menu_path = array(); $cid_menu = 0; if ($m_active) { if (strstr($m_active->link, 'com_djclassifieds') && strstr($m_active->link, 'items')) { if (isset($m_active->query['cid'])) { $cid_menu = $m_active->query['cid']; if ($cid_menu > 0) { $cat_menu_path = DJClassifiedsCategory::getParentPath(1, $cid_menu); } } } } if ($uid > 0 || $se || $order != $par->get('items_ordering', 'date_e') || $ord_t != $par->get('items_ordering_dir', 'desc')) { $document->setMetaData('robots', 'NOINDEX, FOLLOW'); } $warning18 = ''; $cat_id = JRequest::getVar('cid', 0, '', 'int'); $main_cat = ''; if ($cat_id > 0) { $main_cat = $model->getMainCat($cat_id); if (!$main_cat) { DJClassifiedsTheme::djAccessRestriction('category'); } if ($main_cat->metakey != '') { $document->setMetaData('keywords', $main_cat->metakey); } else { if ($m_active) { if ($m_active->params->get('menu-meta_keywords')) { $document->setMetaData('keywords', $m_active->params->get('menu-meta_keywords')); } } } if ($main_cat->metadesc != '') { $document->setDescription($main_cat->metadesc); } else { if ($m_active) { if ($m_active->params->get('menu-meta_description')) { $document->setDescription($m_active->params->get('menu-meta_description')); } } } $cat_path = array(); $pathway = $app->getPathway(); if ($main_cat->parent_id == 0) { if ($cid_menu != $cat_id) { $pathway->addItem($main_cat->name); } $cat_path[] = $main_cat; } else { $cat_path = DJClassifiedsCategory::getParentPath(1, $main_cat->id); for ($c = count($cat_path); $c > 0; $c--) { $to_b = 1; if (count($cat_menu_path)) { foreach ($cat_menu_path as $cm) { if ($cm->id == $cat_path[$c - 1]->id) { $to_b = 0; break; } } } if ($to_b) { $pathway->addItem($cat_path[$c - 1]->name, DJClassifiedsSEO::getCategoryRoute($cat_path[$c - 1]->id . ':' . $cat_path[$c - 1]->alias)); } } } $cat_theme = ''; foreach ($cat_path as $cp) { if ($cp->theme) { $cat_theme = $cp->theme; } if ($cp->restriction_18) { $warning18 = 1; } } DJClassifiedsTheme::includeCSSfiles($cat_theme); if ($cat_theme) { $this->_addPath('template', JPATH_COMPONENT . '/themes/' . $cat_theme . '/views/items'); $theme = $cat_theme; } $c_title = $document->getTitle(); $cat_name = $main_cat->name; $seo_cat_path = ''; $seo_title_separator = $par->get('seo_title_separator', ' - '); foreach ($cat_path as $cp) { if ($seo_cat_path) { $seo_cat_path .= $seo_title_separator; } $seo_cat_path .= $cp->name; } $seo_title_from = array('|', '<default_title>', '<category_name>', '<category_path>'); $seo_title_to = array($seo_title_separator, $c_title, $cat_name, $seo_cat_path); $seo_title = str_ireplace($seo_title_from, $seo_title_to, $par->get('seo_title_items', '<category_path>|<default_title>')); $document->setTitle($seo_title); } else { if ($se && isset($_GET['se_cats'])) { if (is_array($_GET['se_cats'])) { $se_cat_id = end($_GET['se_cats']); if ($se_cat_id == '' && count($_GET['se_cats']) > 2) { $se_cat_id = $_GET['se_cats'][count($_GET['se_cats']) - 2]; } } else { $se_cat_ids = explode(',', JRequest::getVar('se_cats')); $se_cat_id = end($se_cat_ids); } $se_cat_id = (int) str_ireplace('p', '', $se_cat_id); if ($se_cat_id > 0) { $main_cat = $model->getMainCat($se_cat_id); } } } $re = JRequest::getVar('re', 0, '', 'int'); $reg_id = 0; if (isset($_GET['se_regs'])) { if (is_array($_GET['se_regs'])) { $reg_id = end($_GET['se_regs']); if ($reg_id == '' && count($_GET['se_regs']) > 2) { $reg_id = $_GET['se_regs'][count($_GET['se_regs']) - 2]; } } else { $reg_ids = explode(',', JRequest::getVar('se_regs')); $reg_id = end($reg_ids); } $reg_id = (int) $reg_id; } if ($reg_id) { $main_reg = $model->getMainRegions($reg_id); } else { $main_reg = ''; } $se_results_link = JRoute::_(DJClassifiedsSEO::getCategoryRoute('0:all')); if ($config->get('sef')) { $se_results_link .= '?se=1&re=1&se_regs='; } else { $se_results_link .= '&se=1&re=1&se_regs='; } if ($uid > 0) { $u_name = $model->getUserName($uid); $this->assignRef('u_name', $u_name); } if ($par->get('show_types', '0')) { $types = $model->getTypes(); $this->assignRef('types', $types); } $limit = JRequest::getVar('limit', $par->get('limit_djitem_show'), '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); $pagination = new JPagination($countitems, $limitstart, $limit); // $main_name = $model->makePathway($cat_list); if ($par->get('rss_feed', 1) == 1) { $link = '&format=feed&limitstart='; $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0'); $document->addHeadLink(JRoute::_($link . '&type=rss'), 'alternate', 'rel', $attribs); $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0'); $document->addHeadLink(JRoute::_($link . '&type=atom'), 'alternate', 'rel', $attribs); } if (!isset($_COOKIE["djcf_warning18"])) { $cats_all = DJClassifiedsCategory::getCategories(); foreach ($items as $item) { if (isset($cats_all[$item->cat_id])) { if ($cats_all[$item->cat_id]->restriction_18) { $warning18 = 1; break; } } } } if ($warning18 && !isset($_COOKIE["djcf_warning18"])) { $warning18_link = ''; if ($par->get('restriction_18_art_id', 0)) { require_once JPATH_SITE . '/components/com_content/helpers/route.php'; $terms_article = $model->getTermsLink($par->get('restriction_18_art_id', 0)); if ($terms_article) { $slug = $terms_article->id . ':' . $terms_article->alias; $cslug = $terms_article->catid . ':' . $terms_article->c_alias; $warning18_link = ContentHelperRoute::getArticleRoute($slug, $cslug); if ($par->get('restriction_18_art', 0) == 2) { $warning18_link .= '&tmpl=component'; } $warning18_link = JRoute::_($warning18_link); } } $this->assignRef('terms_link', $warning18_link); $this->assignRef('theme', $theme); parent::display('terms'); } else { if ($cat_id > 0) { $correct_link = DJClassifiedsSEO::getCategoryRoute($main_cat->id . ':' . $main_cat->alias); $document->setMetaData('canonical', JRoute::_($correct_link)); } /* plugins */ if ($layout == 'blog') { $event_view = 'items.blog'; } else { $event_view = 'items.table'; } JPluginHelper::importPlugin('djclassifieds'); foreach ($items as $item) { $results = $dispatcher->trigger('onPrepareItemDescription', array(&$item, &$par, 'items')); $item->event = new stdClass(); $resultsAfterTitle = $dispatcher->trigger('onAfterDJClassifiedsDisplayTitle', array(&$item, &$par, $event_view)); $item->event->afterDJClassifiedsDisplayTitle = trim(implode("\n", $resultsAfterTitle)); $resultsBeforeContent = $dispatcher->trigger('onBeforeDJClassifiedsDisplayContent', array(&$item, &$par, $event_view)); $item->event->beforeDJClassifiedsDisplayContent = trim(implode("\n", $resultsBeforeContent)); $resultsAfterContent = $dispatcher->trigger('onAfterDJClassifiedsDisplayContent', array(&$item, &$par, $event_view)); $item->event->afterDJClassifiedsDisplayContent = trim(implode("\n", $resultsAfterContent)); } if (!$tpl && $layout != 'blog') { $itemid = JRequest::getVar('Itemid', ''); $menu_tpl = -1; if ($itemid) { $menu = $app->getMenu('site'); $menu_item = $menu->getItem($itemid); if ($menu_item) { $menu_tpl = $menu_item->params->get('table_type', '-1'); } } if ($menu_tpl != -1) { if ($menu_tpl != 'classic') { $tpl = $menu_tpl; } } else { if ($menu_tpl == -1 && $par->get('table_type', '')) { $tpl = $par->get('table_type', ''); } } } $custom_fields = $model->getCustomFields(); $this->assignRef('cats', $cats); $this->assignRef('cat_path', $cat_path); $this->assignRef('cat_images', $cat_images); $this->assignRef('items', $items); $this->assignRef('custom_fields', $custom_fields); $this->assignRef('countitems', $countitems); $this->assignRef('main_cat', $main_cat); $this->assignRef('main_reg', $main_reg); $this->assignRef('se_results_link', $se_results_link); $this->assignRef('pagination', $pagination); $this->assignRef('theme', $theme); parent::display('cat'); parent::display($tpl); } }
} $cl .= 'cat' . $c->id . ' lvl' . $c->level; if ($cl) { $cl = 'class="' . $cl . '"'; } $cat_img = ''; if ($c->level < $img_level && isset($this->cat_images[$c->id])) { $cat_img = '<img class="cat_tree_icon" alt="' . $c->name . '" src="' . JURI::base() . $this->cat_images[$c->id]->path . $this->cat_images[$c->id]->name . '_ths.' . $this->cat_images[$c->id]->ext . '" />'; } $ll_coma = ''; if ($ll_type && $level_limit > 1 && $c->level == $level_limit - 1) { if (isset($this->cats[$ci + 1])) { $ll_coma = $c->level == $this->cats[$ci + 1]->level ? ',' : ''; } } echo '<li ' . $cl . '><a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . '">' . $cat_img . $c->name . $items_in_c . '</a>' . $ll_coma; $c_count++; } if ($prev_l > 0) { for ($i = 0; $i < $prev_l; $i++) { echo '</li></ul>'; } } ?> </ul> <div style="clear:both"></div> </div> </div> <?php $modules_djcf =& JModuleHelper::getModules('djcf-cattree-bottom');
function save() { $app = JFactory::getApplication(); $user = JFactory::getUser(); $db = JFactory::getDBO(); $par = JComponentHelper::getParams('com_djclassifieds'); if ($user->id == '0') { $uri = DJClassifiedsSEO::getCategoryRoute('0:all'); $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN')); } $del_avatar_id = JRequest::getInt('del_avatar', 0); if ($del_avatar_id) { $query = "SELECT * FROM #__djcf_images WHERE item_id=" . $user->id . " AND type='profile' ORDER BY ordering LIMIT 1"; $db->setQuery($query); $avatar = $db->loadObject(); if ($avatar) { $path_to_delete = JPATH_SITE . $avatar->path . $avatar->name; $del_avatar_ext = $avatar->ext; if (JFile::exists($path_to_delete . '.' . $del_avatar_ext)) { JFile::delete($path_to_delete . '.' . $del_avatar_ext); } if (JFile::exists($path_to_delete . '_th.' . $del_avatar_ext)) { JFile::delete($path_to_delete . '_th.' . $del_avatar_ext); } if (JFile::exists($path_to_delete . '_ths.' . $del_avatar_ext)) { JFile::delete($path_to_delete . '_ths.' . $del_avatar_ext); } $query = "DELETE FROM #__djcf_images WHERE type='profile' AND item_id=" . $user->id . " AND id=" . $avatar->id . " "; $db->setQuery($query); $db->query(); } } $new_avatar = $_FILES['new_avatar']; if (substr($new_avatar['type'], 0, 5) == "image") { $query = "SELECT * FROM #__djcf_images WHERE item_id=" . $user->id . " AND type='profile' ORDER BY ordering LIMIT 1"; $db->setQuery($query); $avatar = $db->loadObject(); if ($avatar) { $path_to_delete = JPATH_SITE . $avatar->path . $avatar->name; $del_avatar_ext = $avatar->ext; if (JFile::exists($path_to_delete . '.' . $del_avatar_ext)) { JFile::delete($path_to_delete . '.' . $del_avatar_ext); } if (JFile::exists($path_to_delete . '_th.' . $del_avatar_ext)) { JFile::delete($path_to_delete . '_th.' . $del_avatar_ext); } if (JFile::exists($path_to_delete . '_ths.' . $del_avatar_ext)) { JFile::delete($path_to_delete . '_ths.' . $del_avatar_ext); } $query = "DELETE FROM #__djcf_images WHERE type='profile' AND item_id=" . $user->id . " AND id=" . $avatar->id . " "; $db->setQuery($query); $db->query(); } $lang = JFactory::getLanguage(); $icon_name = str_ireplace(' ', '_', $new_avatar['name']); $icon_name = $lang->transliterate($icon_name); $icon_name = strtolower($icon_name); $icon_name = JFile::makeSafe($icon_name); $icon_name = $user->id . '_' . $icon_name; $icon_url = $icon_name; $path = JPATH_SITE . "/components/com_djclassifieds/images/profile/" . $icon_name; move_uploaded_file($new_avatar['tmp_name'], $path); $nw = $par->get('profth_width', 120); $nh = $par->get('profth_height', 120); $nws = $par->get('prof_smallth_width', 50); $nhs = $par->get('prof_smallth_height', 50); $name_parts = pathinfo($path); $img_name = $name_parts['filename']; $img_ext = $name_parts['extension']; $new_path = JPATH_SITE . "/components/com_djclassifieds/images/profile/"; //DJClassifiedsImage::makeThumb($path, $nw, $nh, 'ths'); DJClassifiedsImage::makeThumb($path, $new_path . $img_name . '_th.' . $img_ext, $nw, $nh); DJClassifiedsImage::makeThumb($path, $new_path . $img_name . '_ths.' . $img_ext, $nws, $nhs); $query = "INSERT INTO #__djcf_images(`item_id`,`type`,`name`,`ext`,`path`,`caption`,`ordering`) VALUES "; $query .= "('" . $user->id . "','profile','" . $img_name . "','" . $img_ext . "','/components/com_djclassifieds/images/profile/','','1'); "; $db->setQuery($query); $db->query(); } $query = "DELETE FROM #__djcf_fields_values_profile WHERE user_id= " . $user->id . " "; $db->setQuery($query); $db->query(); $query = "SELECT f.* FROM #__djcf_fields f WHERE f.source=2 "; $db->setQuery($query); $fields_list = $db->loadObjectList(); //echo '<pre>'; print_r($db);print_r($fields_list);die(); $a_tags_cf = ''; if ((int) $par->get('allow_htmltags_cf', '0')) { $allowed_tags_cf = explode(';', $par->get('allowed_htmltags_cf', '')); for ($a = 0; $a < count($allowed_tags_cf); $a++) { $a_tags_cf .= '<' . $allowed_tags_cf[$a] . '>'; } } $ins = 0; if (count($fields_list) > 0) { $query = "INSERT INTO #__djcf_fields_values_profile(`field_id`,`user_id`,`value`,`value_date`) VALUES "; foreach ($fields_list as $fl) { if ($fl->type == 'checkbox') { if (isset($_POST[$fl->name])) { $field_v = $_POST[$fl->name]; $f_value = ';'; for ($fv = 0; $fv < count($field_v); $fv++) { $f_value .= $field_v[$fv] . ';'; } $query .= "('" . $fl->id . "','" . $user->id . "','" . $db->escape($f_value) . "',''), "; $ins++; } } else { if ($fl->type == 'date') { if (isset($_POST[$fl->name])) { $f_var = JRequest::getVar($fl->name, '', '', 'string'); $query .= "('" . $fl->id . "','" . $user->id . "','','" . $db->escape($f_var) . "'), "; $ins++; } } else { if (isset($_POST[$fl->name])) { if ($a_tags_cf) { $f_var = JRequest::getVar($fl->name, '', '', 'string', JREQUEST_ALLOWRAW); $f_var = strip_tags($f_var, $a_tags_cf); } else { $f_var = JRequest::getVar($fl->name, '', '', 'string'); } $query .= "('" . $fl->id . "','" . $user->id . "','" . $db->escape($f_var) . "',''), "; $ins++; } } } } } //print_r($query);die(); if ($ins > 0) { $query = substr($query, 0, -2) . ';'; $db->setQuery($query); $db->query(); } $menus = JSite::getMenu(); $menu_profile = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=profile', 1); $menu_item = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&cid=0', 1); $menu_item_blog = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&layout=blog&cid=0', 1); $redirect = 'index.php?option=com_djclassifieds&view=profile'; if ($menu_profile) { $redirect .= '&Itemid=' . $menu_profile->id; } else { if ($menu_item) { $redirect .= '&Itemid=' . $menu_item->id; } else { if ($menu_item_blog) { $redirect .= '&Itemid=' . $menu_item_blog->id; } } } $message = JTExt::_('COM_DJCLASSIFIEDS_PROFILE_SAVED_SUCCESSFULLY'); $redirect = JRoute::_($redirect, false); $app->redirect($redirect, $message); }
function display($tpl = null) { JHTML::_('behavior.modal'); $document = JFactory::getDocument(); $par = JComponentHelper::getParams('com_djclassifieds'); $app = JFactory::getApplication(); $user = JFactory::getUser(); $model = $this->getModel(); $cat_id = JRequest::getVar('cid', 0, '', 'int'); $uid = JRequest::getVar('uid', 0, '', 'int'); $se = JRequest::getVar('se', 0, '', 'int'); $reset = JRequest::getVar('reset', 0, '', 'int'); $layout = JRequest::getVar('layout', ''); $order = JRequest::getCmd('order', $par->get('items_ordering', 'date_e')); $ord_t = JRequest::getCmd('ord_t', $par->get('items_ordering_dir', 'desc')); $theme = $par->get('theme', 'default'); if ($layout == 'favourites') { if ($user->id == '0') { $uri = JFactory::getURI(); $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN')); } JRequest::setVar('fav', '1'); } if ($reset) { $items = $model->resetSearchFilters(); } $catlist = ''; if ($cat_id > 0) { $cats = DJClassifiedsCategory::getSubCatIemsCount($cat_id, 1, $par->get('subcats_ordering', 'ord'), $par->get('subcats_hide_empty', 0)); $catlist = $cat_id; foreach ($cats as $c) { $catlist .= ',' . $c->id; } } else { $cats = DJClassifiedsCategory::getCatAllItemsCount(1, $par->get('subcats_ordering', 'ord'), $par->get('subcats_hide_empty', 0)); } $subcats = ''; $cat_images = ''; foreach ($cats as $c) { if ($c->parent_id == $cat_id) { $subcats .= $c->id . ','; } } if ($subcats) { $subcats = substr($subcats, 0, -1); $cat_images = $model->getCatImages($subcats); } $items = $model->getItems($catlist); $countitems = $model->getCountItems($catlist); $menus = $app->getMenu('site'); $m_active = $menus->getActive(); $cat_menu_path = array(); $cid_menu = 0; if ($m_active) { if (strstr($m_active->link, 'com_djclassifieds') && strstr($m_active->link, 'items')) { if (isset($m_active->query['cid'])) { $cid_menu = $m_active->query['cid']; if ($cid_menu > 0) { $cat_menu_path = DJClassifiedsCategory::getParentPath(1, $cid_menu); } } } } if ($uid > 0 || $se || $order != $par->get('items_ordering', 'date_e') || $ord_t != $par->get('items_ordering_dir', 'desc')) { $document->setMetaData('robots', 'NOINDEX, FOLLOW'); } $cat_id = JRequest::getVar('cid', 0, '', 'int'); $main_cat = ''; if ($cat_id > 0) { $main_cat = $model->getMainCat($cat_id); if ($main_cat->metakey != '') { $document->setMetaData('keywords', $main_cat->metakey); } else { if ($m_active) { if ($m_active->params->get('menu-meta_description')) { $document->setMetaData('keywords', $m_active->params->get('menu-meta_description')); } } } if ($main_cat->metadesc != '') { $document->setDescription($main_cat->metadesc); } else { if ($m_active) { if ($m_active->params->get('menu-meta_keywords')) { $document->setDescription($m_active->params->get('menu-meta_keywords')); } } } $cat_path = array(); $pathway = $app->getPathway(); if ($main_cat->parent_id == 0) { if ($cid_menu != $cat_id) { $pathway->addItem($main_cat->name); } $cat_path[] = $main_cat; } else { $cat_path = DJClassifiedsCategory::getParentPath(1, $main_cat->id); for ($c = count($cat_path); $c > 0; $c--) { $to_b = 1; if (count($cat_menu_path)) { foreach ($cat_menu_path as $cm) { if ($cm->id == $cat_path[$c - 1]->id) { $to_b = 0; break; } } } if ($to_b) { $pathway->addItem($cat_path[$c - 1]->name, DJClassifiedsSEO::getCategoryRoute($cat_path[$c - 1]->id . ':' . $cat_path[$c - 1]->alias)); } } } $cat_theme = ''; foreach ($cat_path as $cp) { if ($cp->theme) { $cat_theme = $cp->theme; } } DJClassifiedsTheme::includeCSSfiles($cat_theme); if ($cat_theme) { $this->_addPath('template', JPATH_COMPONENT . '/themes/' . $cat_theme . '/views/items'); $theme = $cat_theme; } $c_title = $document->getTitle(); $cat_name = $main_cat->name; $seo_cat_path = ''; $seo_title_separator = $par->get('seo_title_separator', ' - '); foreach ($cat_path as $cp) { if ($seo_cat_path) { $seo_cat_path .= $seo_title_separator; } $seo_cat_path .= $cp->name; } $seo_title_from = array('|', '<default_title>', '<category_name>', '<category_path>'); $seo_title_to = array($seo_title_separator, $c_title, $cat_name, $seo_cat_path); $seo_title = str_ireplace($seo_title_from, $seo_title_to, $par->get('seo_title_items', '<category_path>|<default_title>')); $document->setTitle($seo_title); } else { if ($se && isset($_GET['se_cats'])) { $se_cat_id = end($_GET['se_cats']); if ($se_cat_id == '' && count($_GET['se_cats']) > 2) { $se_cat_id = $_GET['se_cats'][count($_GET['se_cats']) - 2]; } $se_cat_id = str_ireplace('p', '', $se_cat_id); if ($se_cat_id > 0) { $main_cat = $model->getMainCat($se_cat_id); } } } $re = JRequest::getVar('re', 0, '', 'int'); $reg_id = 0; if (isset($_GET['se_regs'])) { if (count($_GET['se_regs']) > 1) { $main_reg = ''; } else { $reg_id = end($_GET['se_regs']); if ($reg_id == '' && count($_GET['se_regs']) > 2) { $reg_id = $_GET['se_regs'][count($_GET['se_regs']) - 2]; } $reg_id = (int) $reg_id; if ($reg_id) { $main_reg = $model->getMainRegions($reg_id); } else { $main_reg = ''; } } } if ($uid > 0) { $u_name = $model->getUserName($uid); $this->assignRef('u_name', $u_name); } if ($par->get('show_types', '0')) { $types = $model->getTypes(); $this->assignRef('types', $types); } $limit = JRequest::getVar('limit', $par->get('limit_djitem_show'), '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); $pagination = new JPagination($countitems, $limitstart, $limit); // $main_name = $model->makePathway($cat_list); if ($par->get('rss_feed', 1) == 1) { $link = '&format=feed&limitstart='; $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0'); $document->addHeadLink(JRoute::_($link . '&type=rss'), 'alternate', 'rel', $attribs); $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0'); $document->addHeadLink(JRoute::_($link . '&type=atom'), 'alternate', 'rel', $attribs); } $custom_fields = $model->getCustomFields(); $this->assignRef('cats', $cats); $this->assignRef('cat_path', $cat_path); $this->assignRef('cat_images', $cat_images); $this->assignRef('items', $items); $this->assignRef('custom_fields', $custom_fields); $this->assignRef('countitems', $countitems); $this->assignRef('main_cat', $main_cat); $this->assignRef('main_reg', $main_reg); $this->assignRef('pagination', $pagination); $this->assignRef('theme', $theme); parent::display('cat'); parent::display($tpl); }
function save() { $app = JFactory::getApplication(); JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . DS . 'tables'); jimport('joomla.database.table'); JPluginHelper::importPlugin('djclassifieds'); $row = JTable::getInstance('Items', 'DJClassifiedsTable'); $par = JComponentHelper::getParams('com_djclassifieds'); $user = JFactory::getUser(); $lang = JFactory::getLanguage(); $dispatcher = JDispatcher::getInstance(); $db = JFactory::getDBO(); $id = JRequest::getVar('id', 0, '', 'int'); $token = JRequest::getCMD('token', ''); $redirect = ''; $menus = $app->getMenu('site'); $menu_item = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&cid=0', 1); $menu_item_blog = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&layout=blog&cid=0', 1); $itemid = ''; if ($menu_item) { $itemid = '&Itemid=' . $menu_item->id; } else { if ($menu_item_blog) { $itemid = '&Itemid=' . $menu_item_blog->id; } } $menu_newad_itemid = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=additem', 1); $new_ad_link = 'index.php?option=com_djclassifieds&view=additem'; if ($menu_newad_itemid) { $new_ad_link .= '&Itemid=' . $menu_newad_itemid->id; } $new_ad_link = JRoute::_($new_ad_link); if ($user->id == 0 && $id > 0) { $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD'); //$redirect="index.php?option=com_djclassifieds&view=items&cid=0".$itemid; $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message, 'error'); } $db = JFactory::getDBO(); if ($id > 0) { $query = "SELECT user_id FROM #__djcf_items WHERE id='" . $id . "' LIMIT 1"; $db->setQuery($query); $item_user_id = $db->loadResult(); if ($item_user_id != $user->id) { $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD'); $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message, 'error'); } } if ($par->get('user_type') == 1 && $user->id == '0') { //$uri = "index.php?option=com_djclassifieds&view=items&cid=0".$itemid; $uri = DJClassifiedsSEO::getCategoryRoute('0:all'); $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN')); } $row->bind(JRequest::get('post')); if ($token && !$user->id && !$id) { $query = "SELECT i.id FROM #__djcf_items i " . "WHERE i.user_id=0 AND i.token=" . $db->Quote($db->escape($token)); $db->setQuery($query); $ad_id = $db->loadResult(); if ($ad_id) { $row->id = $ad_id; } else { $uri = DJClassifiedsSEO::getCategoryRoute('0:all'); $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_WRONG_TOKEN')); } } $dispatcher->trigger('onAfterInitialiseDJClassifiedsSaveAdvert', array(&$row, &$par)); if ($par->get('title_char_limit', '0') > 0) { $row->name = mb_substr($row->name, 0, $par->get('title_char_limit', '100'), "UTF-8"); } if ((int) $par->get('allow_htmltags', '0')) { $row->description = JRequest::getVar('description', '', 'post', 'string', JREQUEST_ALLOWRAW); $allowed_tags = explode(';', $par->get('allowed_htmltags', '')); $a_tags = ''; for ($a = 0; $a < count($allowed_tags); $a++) { $a_tags .= '<' . $allowed_tags[$a] . '>'; } $row->description = strip_tags($row->description, $a_tags); } else { $row->description = nl2br(JRequest::getVar('description', '', 'post', 'string')); } $row->intro_desc = mb_substr(strip_tags(nl2br($row->intro_desc)), 0, $par->get('introdesc_char_limit', '120'), "UTF-8"); if (!$row->intro_desc) { $row->intro_desc = mb_substr(strip_tags($row->description), 0, $par->get('introdesc_char_limit', '120'), "UTF-8"); } $row->contact = nl2br(JRequest::getVar('contact', '', 'post', 'string')); $row->price_negotiable = JRequest::getInt('price_negotiable', '0'); $row->bid_min = str_ireplace(',', '.', JRequest::getVar('bid_min', '', 'post', 'string')); $row->bid_max = str_ireplace(',', '.', JRequest::getVar('bid_max', '', 'post', 'string')); $row->price_reserve = str_ireplace(',', '.', JRequest::getVar('price_reserve', '', 'post', 'string')); if (!$id && !$token && !$user->id && $par->get('guest_can_edit', 0)) { $characters = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; $row->token = ''; for ($p = 0; $p < 20; $p++) { $row->token .= $characters[mt_rand(0, strlen($characters))]; } } /* //removing images from folder and from database $path = JPATH_BASE."/components/com_djclassifieds/images/"; $images = $row->image_url; if(isset($_POST['del_img'])){ $del_image = $_POST['del_img']; }else{ $del_image = array(); } for ($i = 0; $i < count($del_image); $i++){ $images = str_replace($del_image[$i].';', '', $images); //deleting the main image if (JFile::exists($path.$del_image[$i])){ JFile::delete($path.$del_image[$i]); } //deleting thumbnail of image if (JFile::exists($path.$del_image[$i].'.thb.jpg')){ JFile::delete($path.$del_image[$i].'.thb.jpg'); } if (JFile::exists($path.$del_image[$i].'.th.jpg')){ JFile::delete($path.$del_image[$i].'.th.jpg'); } if (JFile::exists($path.$del_image[$i].'.thm.jpg')){ JFile::delete($path.$del_image[$i].'.thm.jpg'); } if (JFile::exists($path.$del_image[$i].'.ths.jpg')){ JFile::delete($path.$del_image[$i].'.ths.jpg'); } } //add images $new_files = $_FILES['image']; if(count($new_files['name'])>0 && $row->id==0){ $query = "SELECT id FROM #__djcf_items ORDER BY id DESC LIMIT 1"; $db->setQuery($query); $last_id =$db->loadResult(); $last_id++; }else{ $last_id= $row->id; } $nw = (int)$par->get('th_width',-1); $nh = (int)$par->get('th_height',-1); $nws = $par->get('smallth_width',-1); $nhs = $par->get('smallth_height',-1); $nwm = $par->get('middleth_width',-1); $nhm = $par->get('middleth_height',-1); $nwb = $par->get('bigth_width',-1); $nhb = $par->get('bigth_height',-1); $img_maxsize = $par->get('img_maxsize',0); if($img_maxsize>0){ $img_maxsize = $img_maxsize*1024*1024; } $lang = JFactory::getLanguage(); for ($i = 0; $i < count($new_files['name']); $i++) { if (substr($new_files['type'][$i], 0, 5) == "image") { if($img_maxsize>0 && $new_files['size'][$i]>$img_maxsize){ $app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_TO_BIG_IMAGE').' : \''.$new_files['name'][$i].'\'','error'); continue; } if(!getimagesize($new_files['tmp_name'][$i])){ $app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_WRONG_IMAGE_TYPE').' : \''.$new_files['name'][$i].'\'','error'); continue; } $n_name = $last_id.'_'.$new_files['name'][$i]; $n_name = $lang->transliterate($n_name); $n_name = strtolower($n_name); $n_name = JFile::makeSafe($n_name); $new_path = JPATH_BASE."/components/com_djclassifieds/images/".$n_name; $nimg= 0; while(JFile::exists($new_path)){ $nimg++; $n_name = $last_id.'_'.$nimg.'_'.$new_files['name'][$i]; $n_name = $lang->transliterate($n_name); $n_name = strtolower($n_name); $n_name = JFile::makeSafe($n_name); $new_path = JPATH_BASE."/components/com_djclassifieds/images/".$n_name; } $images .= $n_name.';'; move_uploaded_file($new_files['tmp_name'][$i], $new_path); //DJClassifiedsImage::makeThumb($new_path, $nw, $nh, 'th'); DJClassifiedsImage::makeThumb($new_path, $nws, $nhs, 'ths'); DJClassifiedsImage::makeThumb($new_path, $nwm, $nhm, 'thm'); DJClassifiedsImage::makeThumb($new_path, $nwb, $nhb, 'thb'); }else if($new_files['name'][$i]){ $app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_WRONG_IMAGE_TYPE').' : \''.$new_files['name'][$i].'\'','error'); } } $row->image_url = $images; */ $row->image_url = ''; $duration_price = 0; if ($row->id == 0) { if ($par->get('durations_list', '')) { $exp_days = JRequest::getVar('exp_days', $par->get('exp_days'), '', 'int'); $query = "SELECT * FROM #__djcf_days WHERE days = " . $exp_days; $db->setQuery($query); $duration = $db->loadObject(); if ($duration) { $duration_price = $duration->price; } else { //$exp_days = $par->get('exp_days','7'); $message = JText::_('COM_DJCLASSIFIEDS_WRONG_DURATION_LIMIT'); $app->redirect($new_ad_link, $message, 'error'); } } else { $exp_days = $par->get('exp_days', '7'); } if ($exp_days == 0) { $row->date_exp = "2038-01-01 00:00:00"; } else { $row->date_exp = date("Y-m-d G:i:s", mktime(date("G"), date("i"), date("s"), date("m"), date("d") + $exp_days, date("Y"))); } if ($row->date_exp == '1970-01-01 1:00:00') { $row->date_exp = '2038-01-19 00:00:00'; } $row->exp_days = $exp_days; $row->date_start = date("Y-m-d H:i:s"); } $row->cat_id = end($_POST['cats']); if (!$row->cat_id) { $row->cat_id = $_POST['cats'][count($_POST['cats']) - 2]; } $row->cat_id = str_ireplace('p', '', $row->cat_id); /*if($par->get('region_add_type','1')){ $g_area = JRequest::getVar('g_area',''); $g_locality = JRequest::getVar('g_locality',''); $g_country = JRequest::getVar('g_country',''); $latlong = str_ireplace(array('(',')'), array('',''), JRequest::getVar('latlong','')); $query = "SELECT id FROM #__djcf_regions WHERE name = '".$g_area."'"; $db->setQuery($query); $parent_r_id = $db->loadResult(); if($parent_r_id){ $query = "SELECT id FROM #__djcf_regions WHERE name = '".$g_locality."' AND parent_id=".$parent_r_id; $db->setQuery($query); $region_id = $db->loadResult(); if($region_id){ $row->region_id=$region_id; }else{ $region_row = &JTable::getInstance('Regions', 'DJClassifiedsTable'); $region_row->country=0; $region_row->city=1; $region_row->name=$g_locality; $region_row->parent_id=$parent_r_id; //$ll = explode(',', $latlong); //$region_row->latitude=$ll[0]; //$region_row->longitude=$ll[0]; $region_row->published=1; //echo '<pre>';print_r($region_row);die(); if (!$region_row->store()){ exit (); } $row->region_id=$region_row->id; } }else{ $query = "SELECT id FROM #__djcf_regions WHERE name = '".$g_country."' "; $db->setQuery($query); $country_id = $db->loadResult(); if(!$country_id){$country_id=0;} $area_row = &JTable::getInstance('Regions', 'DJClassifiedsTable'); $area_row->country=0; $area_row->city=0; $area_row->name=$g_area; $area_row->parent_id=$country_id; $area_row->published=1; //echo '<pre>';print_r($region_row);die(); if (!$area_row->store()){ exit (); } $region_row = &JTable::getInstance('Regions', 'DJClassifiedsTable'); $region_row->country=0; $region_row->city=1; $region_row->name=$g_locality; $region_row->parent_id=$area_row->id; //$ll = explode(',', $latlong); //$region_row->latitude=$ll[0]; //$region_row->longitude=$ll[0]; $region_row->published=1; //echo '<pre>';print_r($region_row);die(); if (!$region_row->store()){ exit (); } $row->region_id=$region_row->id; } }else{*/ $row->region_id = end($_POST['regions']); if (!$row->region_id) { $row->region_id = $_POST['regions'][count($_POST['regions']) - 2]; } //} if (($row->region_id || $row->address) && ($row->latitude == '0.000000000000000' && $row->longitude == '0.000000000000000' || !$row->latitude && !$row->longitude)) { $address = ''; if ($row->region_id) { $reg_path = DJClassifiedsRegion::getParentPath($row->region_id); for ($r = count($reg_path) - 1; $r >= 0; $r--) { if ($reg_path[$r]->country) { $address = $reg_path[$r]->name; } if ($reg_path[$r]->city) { if ($address) { $address .= ', '; } $address .= $reg_path[$r]->name; } } } if ($address) { $address .= ', '; } $address .= $row->address; if ($row->post_code) { $address .= ', ' . $row->post_code; } $loc_coord = DJClassifiedsGeocode::getLocation($address); if (is_array($loc_coord)) { $row->latitude = $loc_coord['lat']; $row->longitude = $loc_coord['lng']; } } //echo '<pre>';print_r($row);die(); $row->user_id = $user->id; $row->ip_address = $_SERVER['REMOTE_ADDR']; $row->promotions = ''; if ($par->get('promotion', '1') == '1') { $query = "SELECT p.* FROM #__djcf_promotions p WHERE p.published=1 ORDER BY p.id "; $db->setQuery($query); $promotions = $db->loadObjectList(); foreach ($promotions as $prom) { if (JRequest::getVar($prom->name, '0')) { $row->promotions .= $prom->name . ','; } } if ($row->promotions) { $row->promotions = substr($row->promotions, 0, -1); } } else { if ($row->id > 0) { $row->promotions = $old_row->promotions; } } if (strstr($row->promotions, 'p_first')) { $row->special = 1; } else { $row->special = 0; } $cat = ''; if ($row->cat_id) { $query = "SELECT name,alias,price,autopublish FROM #__djcf_categories WHERE id = " . $row->cat_id; $db->setQuery($query); $cat = $db->loadObject(); if (!$cat->alias) { $cat->alias = DJClassifiedsSEO::getAliasName($cat->name); } } $is_new = 1; if ($row->id > 0) { $query = "SELECT * FROM #__djcf_items WHERE id = " . $row->id; $db->setQuery($query); $old_row = $db->loadObject(); $query = "DELETE FROM #__djcf_fields_values WHERE item_id= " . $row->id . " "; $db->setQuery($query); $db->query(); $query = "DELETE FROM #__djcf_fields_values_sale WHERE item_id= " . $row->id . " "; $db->setQuery($query); $db->query(); $row->payed = $old_row->payed; $row->pay_type = $old_row->pay_type; $row->exp_days = $old_row->exp_days; $row->alias = $old_row->alias; $row->published = $old_row->published; $is_new = 0; } if (!$row->alias) { $row->alias = DJClassifiedsSEO::getAliasName($row->name); } $dispatcher->trigger('onBeforePaymentsDJClassifiedsSaveAdvert', array(&$row, $is_new, &$cat, &$promotions)); if ($cat->autopublish == '0') { if ($par->get('autopublish') == '1') { $row->published = 1; if ($row->id) { $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY'); } else { $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY'); } } else { $row->published = 0; if ($row->id) { $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY_WAITING_FOR_PUBLISH'); } else { $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY_WAITING_FOR_PUBLISH'); } //$redirect="index.php?option=com_djclassifieds&view=items&cid=0".$itemid; $redirect = DJClassifiedsSEO::getItemRoute($row->id . ':' . $row->alias, $row->cat_id . ':' . $i->c_alias); } } elseif ($cat->autopublish == '1') { $row->published = 1; if ($row->id) { $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY'); } else { $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY'); } } elseif ($cat->autopublish == '2') { $row->published = 0; if ($row->id) { $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY_WAITING_FOR_PUBLISH'); } else { $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY_WAITING_FOR_PUBLISH'); } $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); } $pay_redirect = 0; $row->pay_type = ''; $row->payed = 1; //echo '<pre>';print_r($old_row);print_r($row);die(); if (isset($old_row)) { if ($cat->price == 0 && $row->promotions == '' && !strstr($old_row->pay_type, 'duration')) { $row->payed = 1; $row->pay_type = ''; } else { if ($old_row->cat_id != $row->cat_id && $cat->price > 0 || $old_row->promotions != $row->promotions || strstr($old_row->pay_type, 'duration') || $old_row->pay_type) { $row->pay_type = ''; if ($old_row->cat_id != $row->cat_id && $cat->price > 0) { $row->pay_type = 'cat,'; } else { if ($old_row->cat_id == $row->cat_id && $cat->price > 0 && strstr($old_row->pay_type, 'cat')) { $row->pay_type = 'cat,'; } } //if($old_row->promotions!=$row->promotions){ $prom_new = explode(',', $row->promotions); for ($pn = 0; $pn < count($prom_new); $pn++) { if (!strstr($old_row->promotions, $prom_new[$pn]) || strstr($old_row->pay_type, $prom_new[$pn])) { $row->pay_type .= $prom_new[$pn] . ','; } } //} if (strstr($old_row->pay_type, 'duration')) { $row->pay_type .= 'duration,'; } if ($row->pay_type) { $row->published = 0; $row->payed = 0; $pay_redirect = 1; } //echo $row->pay_type;print_r($old_row); //print_r($row);echo $pay_redirect;die(); } else { if ($row->payed == 0 && ($cat->price > 0 || $row->promotions != '')) { $row->payed = 0; $row->published = 0; $pay_redirect = 1; } } } } else { if ($cat->price > 0 || $row->promotions != '' || $duration_price > 0) { if ($cat->price > 0) { $row->pay_type .= 'cat,'; } if ($duration_price > 0) { $row->pay_type .= 'duration,'; } if ($row->promotions != '') { $row->pay_type .= $row->promotions; } $row->published = 0; $row->payed = 0; $pay_redirect = 1; } else { $row->payed = 1; $row->pay_type = ''; } } //check for free promotions if (!strstr($row->pay_type, 'cat') && !strstr($row->pay_type, 'duration') && strstr($row->pay_type, 'p_')) { $prom_to_pay = explode(',', $row->pay_type); $prom_price = 0; for ($pp = 0; $pp < count($prom_to_pay); $pp++) { foreach ($promotions as $prom) { if ($prom->name == $prom_to_pay[$pp]) { $prom_price += $prom->price; } } } if ($prom_price == 0) { $row->pay_type = ''; $redirect = ''; $pay_redirect = 0; if ($cat->autopublish == '0' && $par->get('autopublish') == '1' || $cat->autopublish == '1') { $row->published = 1; } } } //echo '<pre>';print_r($row);die();echo '</pre>'; $dispatcher->trigger('onBeforeDJClassifiedsSaveAdvert', array(&$row, $is_new)); if (!$row->store()) { //echo $row->getError();exit (); } if ($is_new) { $query = "UPDATE #__djcf_items SET date_sort=date_start WHERE id=" . $row->id . " "; $db->setQuery($query); $db->query(); } $item_images = ''; $images_c = 0; if (!$is_new) { $query = "SELECT * FROM #__djcf_images WHERE item_id=" . $row->id . " AND type='item' "; $db->setQuery($query); $item_images = $db->loadObjectList('id'); $images_c = count($item_images); } $img_ids = JRequest::getVar('img_id', array(), 'post', 'array'); $img_captions = JRequest::getVar('img_caption', array(), 'post', 'array'); $img_images = JRequest::getVar('img_image', array(), 'post', 'array'); $img_id_to_del = ''; if ($item_images) { foreach ($item_images as $item_img) { $img_to_del = 1; foreach ($img_ids as $img_id) { if ($item_img->id == $img_id) { $img_to_del = 0; break; } } if ($img_to_del) { $images_c--; $path_to_delete = JPATH_ROOT . $item_img->path . $item_img->name; if (JFile::exists($path_to_delete . '.' . $item_img->ext)) { JFile::delete($path_to_delete . '.' . $item_img->ext); } if (JFile::exists($path_to_delete . '_ths.' . $item_img->ext)) { JFile::delete($path_to_delete . '_ths.' . $item_img->ext); } if (JFile::exists($path_to_delete . '_thm.' . $item_img->ext)) { JFile::delete($path_to_delete . '_thm.' . $item_img->ext); } if (JFile::exists($path_to_delete . '_thb.' . $item_img->ext)) { JFile::delete($path_to_delete . '_thb.' . $item_img->ext); } $img_id_to_del .= $item_img->id . ','; } } if ($img_id_to_del) { $query = "DELETE FROM #__djcf_images WHERE item_id=" . $row->id . " AND type='item' AND ID IN (" . substr($img_id_to_del, 0, -1) . ") "; $db->setQuery($query); $db->query(); } } $last_id = $row->id; $imglimit = $par->get('img_limit', '3'); $nw = (int) $par->get('th_width', -1); $nh = (int) $par->get('th_height', -1); $nws = (int) $par->get('smallth_width', -1); $nhs = (int) $par->get('smallth_height', -1); $nwm = (int) $par->get('middleth_width', -1); $nhm = (int) $par->get('middleth_height', -1); $nwb = (int) $par->get('bigth_width', -1); $nhb = (int) $par->get('bigth_height', -1); $img_ord = 1; $img_to_insert = 0; $query_img = "INSERT INTO #__djcf_images(`item_id`,`type`,`name`,`ext`,`path`,`caption`,`ordering`) VALUES "; $new_img_path = JPATH_SITE . "/components/com_djclassifieds/images/item/"; for ($im = 0; $im < count($img_ids); $im++) { if ($img_ids[$im]) { if ($item_images[$img_ids[$im]]->ordering != $img_ord || $item_images[$img_ids[$im]]->caption != $img_captions[$im]) { $query = "UPDATE #__djcf_images SET ordering='" . $img_ord . "', caption='" . $db->escape($img_captions[$im]) . "' WHERE item_id=" . $row->id . " AND type='item' AND id=" . $img_ids[$im] . " "; $db->setQuery($query); $db->query(); } } else { if ($images_c >= $imglimit) { break; } $new_img_name = explode(';', $img_images[$im]); if (is_array($new_img_name)) { $new_img_name_u = JPATH_ROOT . '/tmp/djupload/' . $new_img_name[0]; if (JFile::exists($new_img_name_u)) { if (getimagesize($new_img_name_u)) { $new_img_n = $last_id . '_' . str_ireplace(' ', '_', $new_img_name[1]); $new_img_n = $lang->transliterate($new_img_n); $new_img_n = strtolower($new_img_n); $new_img_n = JFile::makeSafe($new_img_n); $nimg = 0; $name_parts = pathinfo($new_img_n); $img_name = $name_parts['filename']; $img_ext = $name_parts['extension']; $new_path_check = $new_img_path . $new_img_n; $new_path_check = str_ireplace('.' . $img_ext, '_thm.' . $img_ext, $new_path_check); while (JFile::exists($new_path_check)) { $nimg++; $new_img_n = $last_id . '_' . $nimg . '_' . str_ireplace(' ', '_', $new_img_name[1]); $new_img_n = $lang->transliterate($new_img_n); $new_img_n = strtolower($new_img_n); $new_img_n = JFile::makeSafe($new_img_n); $new_path_check = $new_img_path . $new_img_n; $new_path_check = str_ireplace('.' . $img_ext, '_thm.' . $img_ext, $new_path_check); } rename($new_img_name_u, $new_img_path . $new_img_n); $name_parts = pathinfo($new_img_n); $img_name = $name_parts['filename']; $img_ext = $name_parts['extension']; DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_ths.' . $img_ext, $nws, $nhs); DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_thm.' . $img_ext, $nwm, $nhm); DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_thb.' . $img_ext, $nwb, $nhb); $query_img .= "('" . $row->id . "','item','" . $img_name . "','" . $img_ext . "','/components/com_djclassifieds/images/item/','" . $db->escape($img_captions[$im]) . "','" . $img_ord . "'), "; $img_to_insert++; if ($par->get('store_org_img', '1') == 0) { JFile::delete($new_img_path . $new_img_n); } } } } $images_c++; } $img_ord++; } if ($img_to_insert) { $query_img = substr($query_img, 0, -2) . ';'; $db->setQuery($query_img); $db->query(); } $imgfreelimit = $par->get('img_free_limit', '-1'); if ($imgfreelimit > -1 && $images_c > $imgfreelimit) { $extra_images = $images_c - $imgfreelimit; $images_to_pay = $extra_images; if (!$is_new) { if ($old_row->extra_images >= $images_to_pay) { $images_to_pay = 0; } else { $images_to_pay = $images_to_pay - $old_row->extra_images; } } $images_to_pay = $images_to_pay + $old_row->extra_images_to_pay; if ($images_to_pay > 0) { $row->extra_images = $extra_images; $row->extra_images_to_pay = $images_to_pay; $row->pay_type .= 'extra_img,'; $row->published = 0; $row->payed = 0; $pay_redirect = 1; $row->store(); } } $desc_chars_limit = $par->get('pay_desc_chars_free_limit', 0); $desc_c = strlen($row->description); if ($par->get('pay_desc_chars', 0) && $desc_c > $desc_chars_limit) { $extra_chars = $desc_c - $desc_chars_limit; $chars_to_pay = $extra_chars; if (!$is_new) { if ($old_row->extra_chars >= $chars_to_pay) { $chars_to_pay = 0; } else { $chars_to_pay = $chars_to_pay - $old_row->extra_chars; } } $chars_to_pay = $chars_to_pay + $old_row->extra_chars_to_pay; if ($chars_to_pay > 0) { $row->extra_chars = $extra_chars; $row->extra_chars_to_pay = $chars_to_pay; $row->pay_type .= 'extra_chars,'; $row->published = 0; $row->payed = 0; $pay_redirect = 1; $row->store(); } } $query = "SELECT f.* FROM #__djcf_fields f " . "LEFT JOIN #__djcf_fields_xref fx ON f.id=fx.field_id " . " WHERE fx.cat_id = " . $row->cat_id . " OR f.source=1 "; $db->setQuery($query); $fields_list = $db->loadObjectList(); //echo '<pre>'; print_r($db);print_r($fields_list);die(); $a_tags_cf = ''; if ((int) $par->get('allow_htmltags_cf', '0')) { $allowed_tags_cf = explode(';', $par->get('allowed_htmltags_cf', '')); for ($a = 0; $a < count($allowed_tags_cf); $a++) { $a_tags_cf .= '<' . $allowed_tags_cf[$a] . '>'; } } $ins = 0; if (count($fields_list) > 0) { $query = "INSERT INTO #__djcf_fields_values(`field_id`,`item_id`,`value`,`value_date`) VALUES "; foreach ($fields_list as $fl) { if ($fl->type == 'checkbox') { if (isset($_POST[$fl->name])) { $field_v = $_POST[$fl->name]; $f_value = ';'; for ($fv = 0; $fv < count($field_v); $fv++) { $f_value .= $field_v[$fv] . ';'; } $query .= "('" . $fl->id . "','" . $row->id . "','" . $db->escape($f_value) . "',''), "; $ins++; } } else { if ($fl->type == 'date') { if (isset($_POST[$fl->name])) { $f_var = JRequest::getVar($fl->name, '', '', 'string'); $query .= "('" . $fl->id . "','" . $row->id . "','','" . $db->escape($f_var) . "'), "; $ins++; } } else { if (isset($_POST[$fl->name])) { if ($a_tags_cf) { $f_var = JRequest::getVar($fl->name, '', '', 'string', JREQUEST_ALLOWRAW); $f_var = strip_tags($f_var, $a_tags_cf); } else { $f_var = JRequest::getVar($fl->name, '', '', 'string'); } $query .= "('" . $fl->id . "','" . $row->id . "','" . $db->escape($f_var) . "',''), "; $ins++; } } } } } //print_r($query);die(); if ($ins > 0) { $query = substr($query, 0, -2) . ';'; $db->setQuery($query); $db->query(); } $query = "SELECT f.* FROM #__djcf_fields f " . "LEFT JOIN #__djcf_fields_xref fx ON f.id=fx.field_id " . "WHERE fx.cat_id = " . $row->cat_id . " AND f.in_buynow=1 "; $db->setQuery($query); $fields_list = $db->loadObjectList(); //echo '<pre>'; print_r($_POST);print_r($fields_list);die(); $ins = 0; if (count($fields_list) > 0) { $query = "INSERT INTO #__djcf_fields_values_sale(`item_id`,`quantity`,`options`) VALUES "; $bn_quantity = JRequest::getVar('bn-quantity', array()); $quantity_total = 0; foreach ($fields_list as &$fl) { $fl->bn_values = JRequest::getVar('bn-' . $fl->name, array()); } $bn_options = array(); for ($q = 0; $q < count($bn_quantity); $q++) { if ($bn_quantity[$q] == '' || $bn_quantity[$q] == 0) { continue; } $bn_option = array(); $bn_option['quantity'] = $bn_quantity[$q]; $bn_option['options'] = array(); $quantity_total = $quantity_total + $bn_quantity[$q]; foreach ($fields_list as &$fl) { if ($fl->bn_values[$q]) { $bn_opt = array(); $bn_opt['id'] = $fl->id; $bn_opt['name'] = $fl->name; $bn_opt['label'] = $fl->label; $bn_opt['value'] = $fl->bn_values[$q]; $bn_option['options'][] = $bn_opt; } } if (count($bn_option['options'])) { $bn_options[] = $bn_option; } } if (count($bn_options)) { foreach ($bn_options as $opt) { $query .= "('" . $row->id . "','" . $opt['quantity'] . "','" . $db->escape(json_encode($opt['options'])) . "'), "; $ins++; } if ($ins) { $query = substr($query, 0, -2) . ';'; $db->setQuery($query); $db->query(); $query = "UPDATE #__djcf_items SET quantity=" . $quantity_total . " WHERE id=" . $row->id . " "; $db->setQuery($query); $db->query(); } } } if ($par->get('notify_admin', '0')) { if ($id > 0) { $new_ad = 0; } else { $new_ad = 1; } if ($par->get('notify_admin', '0') == 1) { DJClassifiedsNotify::notifyAdmin($row, $cat, $new_ad); } else { if ($par->get('notify_admin', '0') == 2 && $id == 0) { DJClassifiedsNotify::notifyAdmin($row, $cat, $new_ad); } } } if ($id == 0 && $par->get('user_new_ad_email', '0') && ($user->id > 0 || $par->get('email_for_guest', '0') && $row->email)) { DJClassifiedsNotify::notifyNewAdvertUser($row, $cat); } $dispatcher->trigger('onAfterDJClassifiedsSaveAdvert', array(&$row, $is_new)); if ($pay_redirect == 1) { $menu_uads_itemid = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=useritems', 1); $redirect = 'index.php?option=com_djclassifieds&view=payment&id=' . $row->id; if ($menu_uads_itemid) { $redirect .= '&Itemid=' . $menu_uads_itemid->id; } //$redirect= 'index.php?option=com_djclassifieds&view=payment&id='.$row->id.$itemid; if ($row->id) { $message = JTExt::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY_CHOOSE_PAYMENT'); } else { $message = JTExt::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY_CHOOSE_PAYMENT'); } } if (!$redirect) { //$redirect= 'index.php?option=com_djclassifieds&view=item&cid='.$row->cat_id.'&id='.$row->id.$itemid; $redirect = DJClassifiedsSEO::getItemRoute($row->id . ':' . $row->alias, $row->cat_id . ':' . $cat->alias); } $redirect = JRoute::_($redirect, false); $app->redirect($redirect, $message); }
//echo ' <img src="'.JURI::base().'/components/com_djclassifieds/themes/'.$this->theme.'/images/fav_a.png" class="fav_ico"/>'; echo '<span class="fav_icon fav_icon_a" ></span>'; } if ($icon_new) { echo ' <span class="new_icon">' . JText::_('COM_DJCLASSIFIEDS_NEW') . '</span>'; } if (strstr($i->promotions, 'p_special')) { //echo ' <img src="'.JURI::base().'/components/com_djclassifieds/themes/'.$this->theme.'/images/promo_star.png" class="prom_ico" alt="special" />'; echo '<span class="prom_ico" ></span>'; } if ($i->auction) { echo '<span class="auction_icon" ></span>'; } echo '</div>'; if ($par->get('column_category', '1')) { echo '<div class="item_col cat_name"><a href="' . DJClassifiedsSEO::getCategoryRoute($i->cat_id . ':' . $i->c_alias) . '" >' . $i->c_name . '</a></div>'; } if ($par->get('column_desc', '1')) { echo '<div class="item_col description"><a class="title" href="' . DJClassifiedsSEO::getItemRoute($i->id . ':' . $i->alias, $i->cat_id . ':' . $i->c_alias) . $anch . '">'; echo mb_substr(strip_tags($i->intro_desc), 0, $par->get('introdesc_char_limit', '120'), 'UTF-8'); echo '</a></div>'; } if ($par->get('column_loc', '1') && $par->get('show_regions', '1')) { echo '<div class="item_col region"><a href="index.php?option=com_djclassifieds&view=items&se=1&se_regs[]=' . $i->region_id . '&Itemid=' . $Itemid . '">' . $i->r_name . '</a></div>'; } if ($par->get('column_price', '1') && $par->get('show_price', '1')) { echo '<div class="item_col price">'; if ($i->price) { echo DJClassifiedsTheme::priceFormat($i->price, $i->currency); } else { echo '---';
function save() { $app = JFactory::getApplication(); JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . DS . 'tables'); jimport('joomla.database.table'); $row = JTable::getInstance('Items', 'DJClassifiedsTable'); $par = JComponentHelper::getParams('com_djclassifieds'); $user = JFactory::getUser(); $db = JFactory::getDBO(); $id = JRequest::getVar('id', 0, '', 'int'); $redirect = ''; $menus = $app->getMenu('site'); $menu_item = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&cid=0', 1); $menu_item_blog = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&layout=blog&cid=0', 1); $itemid = ''; if ($menu_item) { $itemid = '&Itemid=' . $menu_item->id; } else { if ($menu_item_blog) { $itemid = '&Itemid=' . $menu_item_blog->id; } } $menu_newad_itemid = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=additem', 1); $new_ad_link = 'index.php?option=com_djclassifieds&view=additem'; if ($menu_newad_itemid) { $new_ad_link .= '&Itemid=' . $menu_newad_itemid->id; } $new_ad_link = JRoute::_($new_ad_link); if ($user->id == '0') { //$uri = "index.php?option=com_djclassifieds&view=items&cid=0".$itemid; $uri = DJClassifiedsSEO::getCategoryRoute('0:all'); $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN')); } if ($id == 0) { $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD'); //$redirect="index.php?option=com_djclassifieds&view=items&cid=0".$itemid; $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message, 'error'); } $db = JFactory::getDBO(); $query = "SELECT user_id FROM #__djcf_items WHERE id='" . $id . "' LIMIT 1"; $db->setQuery($query); $item_user_id = $db->loadResult(); if ($item_user_id != $user->id) { $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD'); $redirect = DJClassifiedsSEO::getCategoryRoute('0:all'); $redirect = JRoute::_($redirect); $app->redirect($redirect, $message, 'error'); } $row->load($id); $row->exp_days = JRequest::getVar('exp_days', $par->get('exp_days'), '', 'int'); $row->promotions = ''; if ($par->get('promotion', '1') == '1') { $query = "SELECT p.* FROM #__djcf_promotions p WHERE p.published=1 ORDER BY p.id "; $db->setQuery($query); $promotions = $db->loadObjectList(); foreach ($promotions as $prom) { if (JRequest::getVar($prom->name, '0')) { $row->promotions .= $prom->name . ','; } } if ($row->promotions) { $row->promotions = substr($row->promotions, 0, -1); } } if (strstr($row->promotions, 'p_first')) { $row->special = 1; } else { $row->special = 0; } $row->payed = 1; $row->pay_type = ''; //echo '<pre>';print_r($row);die();echo '</pre>'; if (!$row->store()) { //echo $row->getError();exit (); } $redirect = "index.php?option=com_djclassifieds&view=item&task=renew&id=" . $row->id . "&Itemid=" . JRequest::getVar('Itemid', '0'); $redirect = JRoute::_($redirect, false); $app->redirect($redirect, $message); }
} } foreach ($subcats as $c) { if ($ii % $cols == 0 && $ii != 0) { $row == 0 ? $row = 1 : ($row = 0); echo '<div style="clear:both"></div></div><div class="cat_row cat_row' . $row . '"><div class="cat_col" ><div class="cat_col_in" >'; } else { echo '<div class="cat_col" ><div class="cat_col_in" >'; } echo '<div class="title">'; if (isset($this->cat_images[$c->id])) { echo '<a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . $anch . '">'; echo '<img src="' . JURI::base() . $this->cat_images[$c->id]->path . $this->cat_images[$c->id]->name . '_ths.' . $this->cat_images[$c->id]->ext . '" alt="' . $c->name . '" />'; echo '</a>'; } echo '<div class="cat_title_desc"><h2><a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . $anch . '">'; if ($par->get('show_adsn_cat')) { if (!$c->items_count) { $c->items_count = 0; } echo $c->name . ' <span>(' . $c->items_count . ')</span></a>'; } else { echo $c->name . '</a>'; } echo '</h2>'; echo '<span class="cat_desc">' . $c->description . '</span></div>'; echo '</div>'; echo '</div></div>'; $ii++; } /*if($ii%3==1){
function display($tpl = null) { JHTML::_('behavior.modal'); $document = JFactory::getDocument(); $par = JComponentHelper::getParams('com_djclassifieds'); $app = JFactory::getApplication(); $user = JFactory::getUser(); $model = $this->getModel(); $dispatcher = JDispatcher::getInstance(); $uid = JRequest::getVar('uid', 0, '', 'int'); $order = JRequest::getCmd('order', $par->get('items_ordering', 'date_e')); $ord_t = JRequest::getCmd('ord_t', $par->get('items_ordering_dir', 'desc')); $theme = $par->get('theme', 'default'); $config = JFactory::getConfig(); if ($uid == 0 && $user->id == 0) { $uri = JFactory::getURI(); $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN')); } else { if (!$uid) { $uid = $user->id; } $items = $model->getItems($uid); $countitems = $model->getCountItems($uid); $custom_fields = $model->getCustomFields(); $profile = $model->getProfile($uid); //$document->setMetaData('robots','NOINDEX, FOLLOW'); $document->setTitle($profile['name'] . ' - ' . JText::_('COM_DJCLASSIFIEDS_PROFILE')); if ($par->get('show_types', '0')) { $types = $model->getTypes(); $this->assignRef('types', $types); } $limit = JRequest::getVar('limit', $par->get('limit_djitem_show'), '', 'int'); $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); $pagination = new JPagination($countitems, $limitstart, $limit); /* plugins */ JPluginHelper::importPlugin('djclassifieds'); $profile['event'] = new stdClass(); $resultsBeforeProfile = $dispatcher->trigger('onBeforeDJClassifiedsDisplayProfile', array(&$profile, &$par, 'item')); $profile['event']->onBeforeDJClassifiedsDisplayProfile = trim(implode("\n", $resultsBeforeProfile)); $resultsAfterProfile = $dispatcher->trigger('onAfterDJClassifiedsDisplayProfile', array(&$profile, &$par, 'item')); $profile['event']->onAfterDJClassifiedsDisplayProfile = trim(implode("\n", $resultsAfterProfile)); $resultsAfterProfileItems = $dispatcher->trigger('onAfterDJClassifiedsDisplayProfileItems', array(&$profile, &$par, 'item')); $profile['event']->onAfterDJClassifiedsDisplayProfileItems = trim(implode("\n", $resultsAfterProfileItems)); foreach ($items as $item) { $results = $dispatcher->trigger('onPrepareItemDescription', array(&$item, &$par, 'items')); $item->event = new stdClass(); $resultsAfterTitle = $dispatcher->trigger('onAfterDJClassifiedsDisplayTitle', array(&$item, &$par, 'items')); $item->event->afterDJClassifiedsDisplayTitle = trim(implode("\n", $resultsAfterTitle)); $resultsBeforeContent = $dispatcher->trigger('onBeforeDJClassifiedsDisplayContent', array(&$item, &$par, 'items')); $item->event->beforeDJClassifiedsDisplayContent = trim(implode("\n", $resultsBeforeContent)); $resultsAfterContent = $dispatcher->trigger('onAfterDJClassifiedsDisplayContent', array(&$item, &$par, 'items')); $item->event->afterDJClassifiedsDisplayContent = trim(implode("\n", $resultsAfterContent)); } $se_results_link = JRoute::_(DJClassifiedsSEO::getCategoryRoute('0:all')); if ($config->get('sef')) { $se_results_link .= '?se=1&re=1&se_regs%5B%5D='; } else { $se_results_link .= '&se=1&re=1&se_regs[]='; } $this->assignRef('items', $items); $this->assignRef('custom_fields', $custom_fields); $this->assignRef('countitems', $countitems); $this->assignRef('profile', $profile); $this->assignRef('pagination', $pagination); $this->assignRef('theme', $theme); $this->assignRef('se_results_link', $se_results_link); parent::display($tpl); } }