Jump to content

byturko

Members
  • Posts

    28
  • Joined

  • Last visited

Everything posted by byturko

  1. mrhaba blog modülü için bu hatayı almaktayım yeni bir ekleme yapmak istediğimde n modules/advanceblog/controllers/admin/AdminBlogCategories.php (line 19) klasör içerisinde 19.satırda bir türlü yapamadım satır içeriği altta. burada nasıl bir yol izlemem gerekir acaba <?php /** * Advance Blog * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * * @author FMM Modules * @copyright Copyright 2017 © fmemodules All right reserved * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * @category FMM Modules * @package advanceblog */ class AdminBlogPostsController extends ModuleAdminController { public function __construct() { $this->table = 'fme_blog_posts'; $this->className = 'BlogPosts'; $this->identifier = 'id_post'; $this->lang = true; $this->deleted = false; $this->colorOnBackground = false; $this->bootstrap = true; parent::__construct(); $this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?'))); $this->context = Context::getContext(); $this->fields_list = array( 'id_post' => array( 'title' => '#', 'width' => 25 ), 'post_title' => array( 'title' => $this->l('Title'), 'width' => 'auto' ), 'active' => array( 'title' => $this->l('Active'), 'width' => 70, 'active' => 'status', 'type' => 'bool', 'align' => 'center', 'orderby' => false ), 'enable_comments' => array( 'title' => $this->l('Enable Comments'), 'width' => 70, 'active' => 'enable_comments', 'type' => 'bool', 'align' => 'center', 'orderby' => false ), 'publication_time' => array( 'title' => $this->l('Published On'), 'width' => 70, 'type' => 'datetime', 'orderby' => false ) ); } public function renderList() { $this->addRowAction('edit'); $this->addRowAction('delete'); $dashboard_link = $this->context->link->getAdminLink('AdminModules').'&configure='.$this->module->name.'&tab_module='.$this->module->tab.'&module_name='.$this->module->name; $this->tpl_list_vars['dashboard_link'] = $dashboard_link; $this->context->smarty->assign('currentMenuTab', 'posts'); $this->context->smarty->assign('subMenuTab', 'posts_view'); return parent::renderList(); } public function renderForm() { $back = Tools::safeOutput(Tools::getValue('back', '')); if (empty($back)) { $back = self::$currentIndex.'&token='.$this->token; } $this->toolbar_btn['save-and-stay'] = array( 'href' => '#', 'desc' => $this->l('Save and Stay') ); $this->fields_form['submit'] = array( 'title' => $this->l(' Save '), 'class' => 'button btn btn-default' ); $this->context->smarty->assign('mode', $this->display); $iso = $this->context->language->iso_code; $iso_lang = (file_exists(_PS_ROOT_DIR_.'/js/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en'); $id_lang_default = Configuration::get('PS_LANG_DEFAULT'); $theme_dir = _THEME_CSS_DIR_; $path = dirname($_SERVER['PHP_SELF']); $js_path = _PS_JS_DIR_; $ps_version = _PS_VERSION_; $this->context->smarty->assign(array( 'iso_lang' => $iso_lang, 'theme_dir' => $theme_dir, 'path' => $path, 'ps_version' => $ps_version, 'js_path' => $js_path, 'id_lang_default' => $id_lang_default, )); $header_html = $this->context->smarty->fetch(_PS_MODULE_DIR_.$this->module->name.'/views/templates/admin/tiny_script.tpl'); $protocol = (Configuration::get('PS_SSL_ENABLED') || Tools::usingSecureMode()) ? 'https://' : 'http://'; $this->context->smarty->assign('protocol', $protocol); $categories = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/categories.tpl'; $authors = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/authors.tpl'; $publish = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/publish.tpl'; $tags = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/tags.tpl'; $comments = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/comments.tpl'; $shops = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/blog_shops.tpl'; $related = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/related.tpl'; $products = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/products.tpl'; $informations = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/informations.tpl'; $images = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/images.tpl'; $videos = _PS_MODULE_DIR_.'advanceblog/views/templates/admin/blog_posts/video.tpl'; $noscriptPath = __PS_BASE_URI__.'modules/advanceblog/views/css/jquery.fileupload-ui-noscript.css'; $obj_model = new BlogPosts(); //Get the selected ProductIDs $selected_shops = array(); $id = (int)Tools::getValue('id_post'); if ($id > 0) { $this->context->smarty->assign('id_post', $id); $this->context->smarty->assign('selectedPIDS', $obj_model->getProductsAttached($id)); $attachproducts = array(); $attachproducts = $obj_model->getProductsAll($id); if (!empty($attachproducts) && is_array($attachproducts)) { foreach ($attachproducts as &$product) { $product = new Product((int)$product['id_product'], true, (int)$this->context->language->id); $product->id_product_attribute = (int)Product::getDefaultAttribute($product->id) > 0 ? (int)Product::getDefaultAttribute($product->id) : 0; $_cover = ((int)$product->id_product_attribute > 0) ? Product::getCombinationImageById((int)$product->id_product_attribute, $this->context->language->id) : Product::getCover($product->id); if (!is_array($_cover)) { $_cover = Product::getCover($product->id); } $product->id_image = $_cover['id_image']; } } $this->context->smarty->assign('attachproducts', $attachproducts); $selected_shops = $obj_model->getPostShops($id); } else { $this->context->smarty->assign('selectedPIDS', 0); } // video $postData = $obj_model->getPostDetails($id); $force_ssl = (Configuration::get('PS_SSL_ENABLED') && Configuration::get('PS_SSL_ENABLED_EVERYWHERE')); $this->context->smarty->assign(array('base_dir' => _PS_BASE_URL_.__PS_BASE_URI__, 'base_dir_ssl' => _PS_BASE_URL_SSL_.__PS_BASE_URI__, 'force_ssl' => $force_ssl)); $this->context->smarty->assign('postData', $postData); $languages = Language::getLanguages(); $currencies = Currency::getCurrencies(); $shop_selected_id = $this->context->shop->id; $blog_cats = $obj_model->getAllCategories($shop_selected_id); $blog_auths = $this->getAllAuthors(); $exblog_cats = $obj_model->getPostCategories($id); $exblog_auth = $this->getAuth($id); $shops_tree = ''; if (Shop::isFeatureActive()) { if (Tools::version_compare(_PS_VERSION_, '1.6', '<')) { $helper = new Helper(); $shops_tree = $helper->renderShopList(); } else { $helper = new HelperTreeShops('blog_cat_shop'); $helper->setSelectedShops($selected_shops); $shops_tree = $helper->render(); } } $blog_posts = $obj_model->getAllPosts($id); $exblog_posts = $obj_model->getRelatedPosts($id); $exImages = $obj_model->getPostImages($id); $exVideos = $obj_model->getPostVideos($id); $this->context->smarty->assign('exImages', $exImages); $this->context->smarty->assign('exVideos', $exVideos); $current_object = $this->loadObject(true); $helper_obj = new BlogPostsHelper(); $this->context->smarty->assign('hooks', $helper_obj->hooksDDL()); $this->context->smarty->assign('noscriptpath', $noscriptPath); $this->context->smarty->assign('default_img', Tools::getShopProtocol().$_SERVER['HTTP_HOST']._PS_IMG_.'uploads'.SEPARATOR.'prod_thumb.jpg'); $this->context->smarty->assign('imgpath', $this->context->link->getAdminLink('AdminBlogPosts').'&action=addimage'); $this->context->smarty->assign('video_action', $this->context->link->getAdminLink('AdminBlogPosts').'&id_post='.(int)Tools::getValue('id_post')); $this->context->smarty->assign('swfpath', Tools::getShopProtocol().$_SERVER['HTTP_HOST']._MODULE_DIR_.'advanceblog/views'.SEPARATOR.'js'.SEPARATOR.'uploader'.SEPARATOR.'plupload.flash.swf'); $this->context->smarty->assign('path_jw_swf', Tools::getShopProtocol().$_SERVER['HTTP_HOST']._MODULE_DIR_.'advanceblog/views'.SEPARATOR.'js'.SEPARATOR.'mediaelement-flash-video.swf'); $this->context->smarty->assign('xappath', Tools::getShopProtocol().$_SERVER['HTTP_HOST']._MODULE_DIR_.'advanceblog/views'.SEPARATOR.'js'.SEPARATOR.'uploader'.SEPARATOR.'plupload.silverlight.xap'); $this->context->smarty->assign('img_path', Tools::getShopProtocol().$_SERVER['HTTP_HOST']._MODULE_DIR_.'advanceblog/views'.SEPARATOR.'img'.SEPARATOR.''); $this->context->smarty->assign('uploaded_img', Tools::getShopProtocol().$_SERVER['HTTP_HOST']._PS_IMG_.'uploads'.SEPARATOR.'thumbnails'.SEPARATOR); $this->context->smarty->assign('libpath', $this->context->link->getAdminLink('AdminBlogPosts').'&action=getproducts'); $this->context->smarty->assign('img_dir_path', Tools::getShopProtocol().$_SERVER['HTTP_HOST']._PS_IMG_); $this->context->smarty->assign('seprator', SEPARATOR); $dashboard_link = $this->context->link->getAdminLink('AdminModules').'&configure='.$this->module->name.'&tab_module='.$this->module->tab.'&module_name='.$this->module->name; $this->context->smarty->assign('currentMenuTab', 'posts'); $this->context->smarty->assign(array('header_html' => $header_html, 'id_post' => (int)$id, 'dashboard_link' => $dashboard_link, 'show_toolbar' => true, 'toolbar_btn' => $this->toolbar_btn, 'toolbar_scroll' => $this->toolbar_scroll, 'title' => array($this->l('Advance Blog')), 'languages' => $languages, 'currencies' => $currencies, 'currentToken' => $this->token, 'currentIndex' => self::$currentIndex, 'currentObject' => $current_object, 'currentTab' => $this, 'blogCats' => $blog_cats, 'blog_auths' => $blog_auths, 'exBlogCats' => $exblog_cats, 'exblog_auth' => $exblog_auth, 'shops_tree' => $shops_tree, 'blogPosts' => $blog_posts, 'exBlogPosts' => $exblog_posts, 'informations' => $informations, 'categories' => $categories, 'authors' => $authors, 'publish' => $publish, 'tags' => $tags, 'comments' => $comments, 'shops' => $shops, 'related' => $related, 'images' => $images, 'products' => $products, 'video' => $videos, 'ps_version' => _PS_VERSION_, 'employee_lang' => $this->context->employee->id_lang, 'id_employee' => $this->context->employee->id, 'id_lang_default' => Configuration::get('PS_LANG_DEFAULT'), 'module_path' => __PS_BASE_URI__.'modules/advanceblog/views/', 'defaultCurrency' => Configuration::get('PS_CURRENCY_DEFAULT'), 'admin_url' => $this->context->link->getAdminLink('AdminBlogPosts'), 'post_rewrite' => BlogPosts::getPostRewrite($id, $this->context->employee->id_lang))); $url = $this->context->link->getAdminLink('AdminBlogPosts', true); $this->context->smarty->assign('action_url', $url.'&action=getSearchProducts&forceJson=1&disableCombination=1&exclude_packs=0&excludeVirtuals=0&limit=20'); $this->context->smarty->assign('action_url_addauthor', $url.'&action=addauthor'); return parent::renderForm(); } public function init() { parent::init(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $id_lang = (int)Context::getContext()->language->id; if (Tools::getValue('post_title_'.$id_lang) == '') { $this->errors[] = $this->l('Post Title for default language can\'t be empty'); } if (Tools::getValue('link_rewrite_'.$id_lang) == '') { $this->errors[] = $this->l('Permalink for default language can\'t be empty'); } } } public function postProcess() { parent::postProcess(); $id = (int)Tools::getValue('id_post'); $action = Tools::getValue('action'); if ($action == 'addimage') { $obj_file = new ImageManager(); $img_real_name = $_FILES['file']['name']; $real_img_array = explode('.', $img_real_name); $real_img_only_name = $real_img_array[0]; $real_img_ext = $real_img_array[1]; move_uploaded_file($_FILES['file']['tmp_name'], _PS_IMG_DIR_.'uploads/'.$img_real_name); $obj_file->resize(_PS_IMG_DIR_.'uploads/'.$_FILES['file']['name'], _PS_IMG_DIR_.'uploads/thumbnails/'.$real_img_only_name.'.'.$real_img_ext, 200, 200); die('{"jsonrpc" : "2.0", "filename" : "'.$_FILES['file']['name'].'", "result" : null, "id" : "id"}'); } // ajax add video file if ($action == 'addVideos') { $video = $_FILES['file']; $result = array( 'jsonrpc' => '2.0', 'id' => '', 'filename' => '', 'videoPath' => '', 'type' => null, 'result' => null, 'errors' => null ); $supported_formats = array('mp4', 'webm', 'ogv'); $extension = Tools::strtolower(pathinfo($video['name'], PATHINFO_EXTENSION)); if ($video['error']) { $result = array( 'jsonrpc' => '2.0', 'id' => '', 'filename' => $video['name'], 'videoPath' => null, 'result' => null, 'type' => 'video/'.$extension, 'errors' => Tools::displayError($video['error']) ); } elseif (!in_array($extension, $supported_formats)) { $result = array( 'jsonrpc' => '2.0', 'id' => '', 'filename' => $video['name'], 'videoPath' => null, 'type' => 'video/'.$extension, 'result' => null, 'errors' => sprintf(Tools::displayError('Invalid video format.').'%s', $video['name']) ); } else { $blog_path = _PS_IMG_DIR_.'blog'; if (!file_exists($blog_path)) { @mkdir($blog_path, 0777, true); } if (!file_exists($blog_path.'/temp')) { @mkdir($blog_path.'/temp', 0777, true); } if (!file_exists($blog_path.'/temp/'.$id)) { @mkdir($blog_path.'/temp/'.$id, 0777, true); } $blog_path .= '/temp'; $imgRealName = $video['name']; $videoPath = 'blog/temp/'.(int)$id.'/'.$imgRealName; if (file_exists(_PS_IMG_DIR_.$videoPath)) { $result = array( 'jsonrpc' => '2.0', 'id' => '', 'filename' => $video['name'], 'videoPath' => __PS_BASE_URI__.'img/'.$videoPath, 'type' => 'video/'.$extension, 'result' => null, 'errors' => sprintf(Tools::displayError('File %s already exists.'), $video['name']) ); } else { $moved = move_uploaded_file($video['tmp_name'], $blog_path.'/'.$id.'/'.$imgRealName); if (!$moved) { $result = array( 'jsonrpc' => '2.0', 'id' => '', 'filename' => $video['name'], 'videoPath' => null, 'type' => 'video/'.$extension, 'result' => null, 'errors' => sprintf(Tools::displayError('Error uploading video file.').'%s', $video['name']) ); } else { $fields = array( 'id_video' => (int)Tools::getValue('id_video'), 'id_post' => (int)$id, 'video_path' => $videoPath ); if ($id_video = BlogPosts::saveVideoData($fields)) { $result = array( 'jsonrpc' => '2.0', 'id' => $id_video, 'filename' => $video['name'], 'videoPath' => __PS_BASE_URI__.'img/'.$videoPath, 'type' => 'video/'.$extension, 'result' => null, 'errors' => null ); } } } } die(json_encode($result)); } // ajax delete video file if ($action == 'deleteVideos' && Tools::getIsset('id_video') && Tools::getIsset('id_post')) { $id_video = (int)Tools::getValue('id_video'); $id_post = (int)Tools::getValue('id_post'); $result = array('success' => null, 'errors' => null); $video = BlogPosts::getVideoDetails($id_video, $id_post); if (isset($video) && $video) { if (!file_exists(_PS_IMG_DIR_.$video['video_path'])) { $result = array('success' => false, 'errors' => Tools::displayError('Video file does not exists on storage media.')); } else { if (!BlogPosts::deleteVideoById($id_video, $id_post)) { $result = array('success' => false, 'errors' => Tools::displayError('File deletion error.')); } else { unlink(_PS_IMG_DIR_.$video['video_path']); $result = array('success' => true, 'errors' => null); } } } die(json_encode($result)); } $obj_model = new BlogPosts(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($id == 0) { $id = $obj_model->getLastId(); } } if (Tools::isSubmit('submitAddfme_blog_posts') || Tools::isSubmit('submitAddfme_blog_postsAndStay')) { Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'fme_blog_products` WHERE `id_post` = '.(int)$id); $pids = Tools::getValue('pids'); if (!empty($pids)) { foreach ($pids as $product_id) { Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'fme_blog_products` (id_post, id_product) VALUES ('.(int)$id.', '.(int)$product_id.')'); } } } $catids = Tools::getValue('catIds'); if (!empty($catids)) { Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'fme_blog_post_cat` WHERE `id_post` = '.(int)$id); foreach ($catids as $cats_id) { BlogPosts::associateCategory($id, $cats_id); } } $authid=Tools::getValue('author'); if ($authid != 0) { Db::getInstance()->delete('fme_blog_post_auth', 'id_post='.(int)$id); Db::getInstance()->insert('fme_blog_post_auth', array( 'id_post' => (int)$id, 'id_auth' => (int)$authid, )); } $post_ids = Tools::getValue('postIds'); if (!empty($post_ids)) { Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'fme_blog_post_related` WHERE `id_post` = '.(int)$id); foreach ($post_ids as $related_id) { Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'fme_blog_post_related` (id_post, related_post_id) VALUES ("'.(int)$id.'", "'.(int)$related_id.'")'); } } if (Tools::isSubmit('enable_comments'.$this->table) && Tools::getIsset('id_post')) { if (Validate::isLoadedObject($post = new BlogPosts((int)Tools::getValue('id_post')))) { $post->enable_comments = !$post->enable_comments; if (!$post->update()) { $this->errors[] = $this->l('Error:Comment Status not update.'); } else { $this->confirmations[] = $this->l('Comment status updated successfully.'); } } } if (Tools::isSubmit('submitAddfme_blog_posts') || Tools::isSubmit('submitAddfme_blog_postsAndStay')) { // processing images data $media = Tools::getValue('media'); if (!empty($media)) { Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'fme_blog_images` WHERE `id_post` = '.(int)$id); $media_array = Tools::getValue('media'); //Insert new data foreach ($media_array as $value) { if (!empty($value['exclude'])) { $active = 0; } else { $active = 1; } if (!empty($value['featured'])) { $featured = 1; } else { $featured = 0; } if (!empty($value['img_name'])) { Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'fme_blog_images` ( id_post, id_file, img_name, img_thumb, img_link, img_label, img_path, active, featured, img_sort_order ) VALUES ( "'.(int)$id.'", "'.(int)$value['id_file'].'", "'.pSQL($value['img_name']).'", "'.pSQL($value['img_thumb']).'", "'.pSQL($value['link']).'", "'.pSQL($value['title']).'", "'.pSQL($value['img_path']).'", "'.(int)$active.'", "'.(int)$featured.'", "'.(int)$value['position'].'" ) '); } } } elseif (empty($media)) { Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'fme_blog_images` WHERE `id_post` = '.(int)$id); } // processing videos data $videos = Tools::getValue('video'); if (isset($videos) && $videos) { //Insert new data foreach ($videos as $id_video => $video) { if (!empty($video['title'])) { Db::getInstance()->execute('UPDATE `'._DB_PREFIX_.'fme_blog_videos` set video_label = "'.pSQL($video['title']).'" WHERE id_video = '.(int)$id_video.' AND id_post = '.(int)$id); } } } // shop association $shops = Tools::getValue('checkBoxShopAsso_fme_blog_posts'); if ($shops) { $id_blogpost = explode('&', $this->redirect_after); $ids = explode('=', $id_blogpost[1]); foreach ($shops as $shop) { $all = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'fme_blog_posts_shop`'); foreach ($all as $rec) { if ($rec['id_post'] == (int)$ids[1] && $rec['id_shop'] == (int)$shop) { Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'fme_blog_posts_shop` WHERE id_post = '.(int)$rec['id_post']); } } Db::getInstance()->execute(' INSERT INTO `'._DB_PREFIX_.'fme_blog_posts_shop` (id_post, id_shop) VALUES ("'.(int)$ids[1].'", "'.(int)$shop.'")'); } } else { $id_blogpost = explode('&', $this->redirect_after); if (isset($id_blogpost) && isset($id_blogpost[1])) { $ids = explode('=', $id_blogpost[1]); $shop_default = $this->context->shop->id; Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'fme_blog_posts_shop` WHERE id_post = '.(int)$ids[1]); Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'fme_blog_posts_shop` (id_post, id_shop) VALUES ("'.(int)$ids[1].'", "'.(int)$shop_default.'")'); } } } ////for ajax search products if ($action == 'getSearchProducts') { $this->getSearchProducts(); die(); } ////for ajax adding authors if ($action == 'addauthor') { $this->addAuthor(); die(json_encode($this->getLatestAddAuth())); } } public function addAuthor() { $auth_name= Tools::getValue('author_name'); Db::getInstance()->insert('fme_blog_authors', array( 'name' => pSQL($auth_name), )); } public function getLatestAddAuth() { $sql = new DbQuery(); $sql->select('*'); $sql->from('fme_blog_authors', 'ba'); $sql->orderby('ba.id_author desc'); return Db::getInstance()->getRow($sql); } public function getAllAuthors() { $sql = new DbQuery(); $sql->select('*'); $sql->from('fme_blog_authors', 'ba'); $sql->orderby('ba.id_author desc'); return Db::getInstance()->executeS($sql); } public function getAuth($id) { $sql = new DbQuery(); $sql->select('ba.id_auth'); $sql->from('fme_blog_post_auth', 'ba'); $sql->where('ba.id_post='.(int)$id); return Db::getInstance()->getValue($sql); } protected function getSearchProducts() { $query = Tools::getValue('q', false); if (!$query || $query == '' || Tools::strlen($query) < 1) { die(json_encode($this->l('Found Nothing.'))); } /* * In the SQL request the "q" param is used entirely to match result in database. * In this way if string:"(ref : #ref_pattern#)" is displayed on the return list, * they are no return values just because string:"(ref : #ref_pattern#)" * is not write in the name field of the product. * So the ref pattern will be cut for the search request. */ if ($pos = strpos($query, ' (ref:')) { $query = Tools::substr($query, 0, $pos); } $excludeIds = Tools::getValue('excludeIds', false); if ($excludeIds && $excludeIds != 'NaN') { $excludeIds = implode(',', array_map('intval', explode(',', $excludeIds))); } else { $excludeIds = ''; } // Excluding downloadable products from packs because download from pack is not supported $forceJson = Tools::getValue('forceJson', false); $disableCombination = Tools::getValue('disableCombination', false); $excludeVirtuals = (bool)Tools::getValue('excludeVirtuals', true); $exclude_packs = (bool)Tools::getValue('exclude_packs', true); $context = Context::getContext(); $sql = 'SELECT p.`id_product`, pl.`link_rewrite`, p.`reference`, pl.`name`, image_shop.`id_image` id_image, il.`legend`, p.`cache_default_attribute` FROM `'._DB_PREFIX_.'product` p '.Shop::addSqlAssociation('product', 'p').' LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.id_product = p.id_product AND pl.id_lang = '.(int)$context->language->id.Shop::addSqlRestrictionOnLang('pl').') LEFT JOIN `'._DB_PREFIX_.'image_shop` image_shop ON (image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop='.(int)$context->shop->id.') LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$context->language->id.') WHERE (pl.name LIKE \'%'.pSQL($query).'%\' OR p.reference LIKE \'%'.pSQL($query).'%\')'. (!empty($excludeIds) ? ' AND p.id_product NOT IN ('.$excludeIds.') ' : ' '). ($excludeVirtuals ? 'AND NOT EXISTS (SELECT 1 FROM `'._DB_PREFIX_.'product_download` pd WHERE (pd.id_product = p.id_product))' : ''). ($exclude_packs ? 'AND (p.cache_is_pack IS NULL OR p.cache_is_pack = 0)' : ''). ' GROUP BY p.id_product'; $items = Db::getInstance()->executeS($sql); if ($items && ($disableCombination ||$excludeIds)) { $results = array(); foreach ($items as $item) { if (!$forceJson) { $item['name'] = str_replace('|', '&#124;', $item['name']); $results[] = trim($item['name']).(!empty($item['reference']) ? ' (ref: '.$item['reference'].')' : '').'|'.(int)$item['id_product']; } else { $cover = Product::getCover($item['id_product']); $results[] = array( 'id' => $item['id_product'], 'name' => $item['name'].(!empty($item['reference']) ? ' (ref: '.$item['reference'].')' : ''), 'ref' => (!empty($item['reference']) ? $item['reference'] : ''), 'image' => str_replace('http://', Tools::getShopProtocol(), $context->link->getImageLink($item['link_rewrite'], (($item['id_image'])?$item['id_image']:$cover['id_image']), $this->getFormatedName('home'))), ); } } if (!$forceJson) { echo implode("\n", $results); } else { echo json_encode($results); } } elseif ($items) { // packs $results = array(); foreach ($items as $item) { // check if product have combination if (Combination::isFeatureActive() && $item['cache_default_attribute']) { $sql = 'SELECT pa.`id_product_attribute`, pa.`reference`, ag.`id_attribute_group`, pai.`id_image`, agl.`name` AS group_name, al.`name` AS attribute_name, a.`id_attribute` FROM `'._DB_PREFIX_.'product_attribute` pa '.Shop::addSqlAssociation('product_attribute', 'pa').' LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.`id_attribute` = pac.`id_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$context->language->id.') LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON (ag.`id_attribute_group` = agl.`id_attribute_group` AND agl.`id_lang` = '.(int)$context->language->id.') LEFT JOIN `'._DB_PREFIX_.'product_attribute_image` pai ON pai.`id_product_attribute` = pa.`id_product_attribute` WHERE pa.`id_product` = '.(int)$item['id_product'].' GROUP BY pa.`id_product_attribute`, ag.`id_attribute_group` ORDER BY pa.`id_product_attribute`'; $combinations = Db::getInstance()->executeS($sql); if (!empty($combinations)) { foreach ($combinations as $combination) { $cover = Product::getCover($item['id_product']); $results[$combination['id_product_attribute']]['id'] = $item['id_product']; $results[$combination['id_product_attribute']]['id_product_attribute'] = $combination['id_product_attribute']; !empty($results[$combination['id_product_attribute']]['name']) ? $results[$combination['id_product_attribute']]['name'] .= ' '.$combination['group_name'].'-'.$combination['attribute_name'] : $results[$combination['id_product_attribute']]['name'] = $item['name'].' '.$combination['group_name'].'-'.$combination['attribute_name']; if (!empty($combination['reference'])) { $results[$combination['id_product_attribute']]['ref'] = $combination['reference']; } else { $results[$combination['id_product_attribute']]['ref'] = !empty($item['reference']) ? $item['reference'] : ''; } if (empty($results[$combination['id_product_attribute']]['image'])) { $results[$combination['id_product_attribute']]['image'] = str_replace('http://', Tools::getShopProtocol(), $context->link->getImageLink($item['link_rewrite'], (($combination['id_image'])?$combination['id_image']:$cover['id_image']), $this->getFormatedName('home'))); } } } else { $results[] = array( 'id' => $item['id_product'], 'name' => $item['name'], 'ref' => (!empty($item['reference']) ? $item['reference'] : ''), 'image' => str_replace('http://', Tools::getShopProtocol(), $context->link->getImageLink($item['link_rewrite'], $item['id_image'], $this->getFormatedName('home'))), ); } } else { $results[] = array( 'id' => $item['id_product'], 'name' => $item['name'], 'ref' => (!empty($item['reference']) ? $item['reference'] : ''), 'image' => str_replace('http://', Tools::getShopProtocol(), $context->link->getImageLink($item['link_rewrite'], $item['id_image'], $this->getFormatedName('home'))), ); } } echo json_encode(array_values($results)); } else { echo json_encode(array()); } } public function getFormatedName($name) { $theme_name = Context::getContext()->shop->theme_name; $name_without_theme_name = str_replace(array('_'.$theme_name, $theme_name.'_'), '', $name); //check if the theme name is already in $name if yes only return $name if (strstr($name, $theme_name) && ImageType::getByNameNType($name, 'products')) { return $name; } elseif (ImageType::getByNameNType($name_without_theme_name.'_'.$theme_name, 'products')) { return $name_without_theme_name.'_'.$theme_name; } elseif (ImageType::getByNameNType($theme_name.'_'.$name_without_theme_name, 'products')) { return $theme_name.'_'.$name_without_theme_name; } else { return $name_without_theme_name.'_default'; } } public function setMedia() { parent::setMedia(); $this->addJqueryUI(array('ui.widget', 'ui.datepicker')); $this->addJqueryPlugin(array('tagify', 'fancybox')); //Add CSS $this->addCSS(__PS_BASE_URI__.'modules/advanceblog/views/css/jquery-ui-1.9.2.custom.css', 'screen'); $this->addCSS(__PS_BASE_URI__.'modules/advanceblog/views/css/fmmblog.css', 'screen'); $this->addCSS(__PS_BASE_URI__.'modules/advanceblog/views/css/fme_page.css', 'screen'); $this->addCSS(__PS_BASE_URI__.'modules/advanceblog/views/css/fme_table_jui.css', 'screen'); $this->addCSS(__PS_BASE_URI__.'modules/advanceblog/views/css/ColVis.css', 'screen'); $this->addCSS(__PS_BASE_URI__.'modules/advanceblog/views/css/mediaelementplayer.min.css', 'screen'); //Add JS $this->addJS(__PS_BASE_URI__.'modules/advanceblog/views/js/jquery.accordion.js'); $this->addJS(__PS_BASE_URI__.'modules/advanceblog/views/js/jquery.cookie.min.js'); $this->addJS(__PS_BASE_URI__.'modules/advanceblog/views/js/uploader/plupload.full.js'); $this->addJS(__PS_BASE_URI__.'modules/advanceblog/views/js/jquery.dataTables.js'); $this->addJS(__PS_BASE_URI__.'modules/advanceblog/views/js/ColVis.js'); $this->addJS(__PS_BASE_URI__.'modules/advanceblog/views/js/jquery.word-and-character-counter.js'); $this->addJs(__PS_BASE_URI__.'modules/advanceblog/views/js/mediaelement-and-player.min.js'); } }
  2. konu çözülmüştür. adres eşleştirmede ayarları yeniden sıfırlayarak sorun düzelmiştir.
  3. Warning: Use of undefined constant HTTP_HOST - assumed 'HTTP_HOST' (this will throw an Error in a future version of PHP) in FrontController.php line 39 at FrontController->init()in Controller.php line 273 at ControllerCore->run()in Dispatcher.php line 515 at DispatcherCore->dispatch()in index.php line 28
  4. merhaba ustalar. bir sitemizde kredi olduktan sonra ödeme bilgilerini girdiklerinde sonraki sekmesine tıklayınca 500 hatası veriyor. servis sağlayıcısı konuyu çözemedi yedek eskileri eklediğimdede bu hatayı alıyoruz. 1.7.6.9 versiyon kullanıyoruz. ayrıca versiyon yükselttiğimde site komple çöküyor 500 hatasına düşüyor. buna bizim yapa bilecek bir çözümümüz var mı?
  5. bilgi için çok teşekkür ederim. paypal tek başına yeterli olacak anladığım kadarı ile. çok teşekürler
  6. şifreleme hiçbiri bağlantı noktası 587 yaparak deneyin
  7. merhaba değerli prestacılar. admin panelde bulunan presta shop yardım bölümünü nasıl düzenleye biliriz yada türkçeleştire vbiliriz acaba. düzenlemye bilir sem daha güzel olacak, desteklerinzi rica ederim
  8. merhaba öncelikle teşekkürler. bir projemiz için almanya banka ödeme sistemlerini yönete bileceğimiz bir modül var mı? kredi kartı ile alışveriş yapacak olan müşteri için nasıl bir sistem kurmamız faydalı olur?
  9. Hallo, entschuldige die schlechte Übersetzung Zahlungsmethode von Prestashop Deutschland verwenden kann ich mit virtüöz pos für die?
  10. DURUMDAN ETKİLENENLER phpunit SİLME MODÜLÜ BULUNMAKTA. ÖZELDEN YAZANLARA GÖNDERE BİLİRİM.
  11. siteye girdiğim zaman 2 defa bütün stokların 0 landığını ve cevrim dışına alındğını gördüm. bu gün ise ana sayfada değişiklikler vardı. sanırım etkilendi site bu açıktan dosyaları kontrol etmek için bilgi değiştirilen doyalar a bakıyorum ama bir türlü liste vermiyor bunu nasıl aça biliriz? bir arkadaşta da yukardaki yorumda aynı sey söz konusu acılmama sanırım.
  12. ona bakayım bir kuralları yeniden gözden geçirmekte fayda var. ilgi ve desteğiniz için çok teşekkürler
  13. SYN ELÇİM dediğiniz şekilde ayarlamayı yaptım ama bu seferde şu şekilde sorun yaşamaktayım. 200 tl ve altı olan fiyatlarda azerbaycan manatına cevirdiğinde kuru ürünler 0 manat görünmekte. ama yüksek fiyattakileri normal olarak kur çeviriyor. özel fiyat verdiğimdede bir değişiklik olmuyor değerler 0manat olarak gelmekte. burada dediğiniz şekilde kur ayarını yaptım burada bu fiyatta tl olarak görünen ürün aynı ürün manatta 0manat olarak görünmekte mesela buradaki tl cinsindeki fiyatlar rahatlıkla manat a dönüyor. ama 200 altı fiyatlar dönmüyor
  14. teşekkür ederim syn elçim. ıso kodlarını google dan kontrol ederek açmaya çalışıyorum. euro dada aynı düzeni uygulayarak deneyeyim.
  15. mhaba ustatlar. presta 1,7 de resimlerdeki gibi 3 farklı para birimini ayarladım. lakin mağazaya gittiğimde afaki rakamlar göstermkte. bunu tam olarak nasıl düzenleye bilirim. mesela azerbaycan manatı 1 manat 4,05tl . ürünü azerbaycan manatı ile görüntüle dediğimde türk parasını bölüyor özel fiyat ver dediğimde de aynı kuralı uyguluyor. kendi kuruna göre ceviri yapmıyor.
  16. merhaba yeni bir marka yüklerken bu alan ile karşılaşmaktayım ve içeriğine erişemiyorum
  17. merhaba. modül yüklerken bu hatayı almaktayım. çözümü nedir acaba "1G" geçerli bir maksimum boyut değil Tekrar deneyin
  18. merhaba. siteme ssl sertifikası aldım bunu trafik ve seo alanında yapa bir bileceğim yazıyordu. yalnız alana girdiğimde çoklu mağaza aktif olduğu için oraya yapamamaktayım. beni çoklu mağaaya yölendirmekte.çoklu mağazaya gittiğimde ayarlarda son url kısmı nı değişemiyorum. çoklu mağazaayı nasıl silip trafik ve seo alanından yapa bilirim. yada siteyi nasıl https ye alabilirm. site kurulumda http üzerinde kuruldu
  19. mehaba. 1,7 için footer bölümüne resim ekleme iiçin nasıl bir yol izlememiz gerekli. safa bey sanırım önceden bir yöntemini belirtmişsiniz laikn linkler çalışmamakta konu hakkında yardımcı olmanız mümkün mü acaba
  20. hocam u modülü yada 1,7 için uygulay abileceğimiz başka yöentem varmı footer bölümüne master visa cart resimleri koyabilmek için. konu bayağı eski ama şimdiden teşekkürler
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More