Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

free

Newbie
  
  • Posts

    26
  • Joined

  • Last visited

1 Follower

About free

  • Birthday 01/01/1970

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

free's Achievements

Apprentice

Apprentice (3/14)

  • Conversation Starter
  • First Post
  • Collaborator
  • Week One Done
  • One Month Later

Recent Badges

1

Reputation

  1. О, это я себе както давно нарисовал функцию чтобы выводился ЧПУ в ссылка, в последних камментах (потом нашел более элегантное решение, но как говорится все временное становится постоянным :)) Короче делаем так, строчки $tmp = $this->model_catalog_product->getProductAlias($result['product_id']); if ($tmp == '0') { $url = HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id']; } else { $url = $this->model_catalog_product->getProductAlias($result['product_id']); } заменяешь просто на: $url = HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id']; Должно помочь
  2. По пунктам 1. /www/catalog/model/catalog/review.php 2. /www/catalog/view/theme/default/template/common/column_right.tpl 3. /www/catalog/controller/common/column_right.php 4. Прописываем javascript в /www/catalog/view/theme/default/template/common/header.tpl 5. стили в вашем css шаблона, стандартный тут /www/catalog/view/theme/default/stylesheet/stylesheet.css
  3. Сделал тут небольшой обзор как вывести последние отзывы в колонку на главную страницу, может кому будет интересно. - Один явный недостаток, по моему мнению нет стрелок для прокрутке, у кого будет время может доработать и оформить модулем ;) Да у меня версия опен карта 1.4.7, на других не тестил, но тут все прозрачно, если хотять по минимуму знать MVC структуру, PHP, SQL :) 1. в модель добавляем выборку последних отзывов, у меня последние 10 // ---------------------------last review---------------------- public function getLastReview() { $query = $this->db->query("SELECT d.name, r.* FROM " . DB_PREFIX . "review r, oc_product_description d where r.product_id=d.product_id and r.status = 1 order by date_added desc LIMIT 0 , 10"); return $query->rows; } // ---------------------------------------------------------- 2.в шаблоне для правой колонки colum_right.tpl добавляем <!-- last review --> <?php if ($reviews) { ?> <div class="box lastreview"> <div class="top"><img src="catalog/view/theme/default/image/bestsellers.png" alt="" /><?php echo "Отзывы" ?></div> <div class="middle"> <div id="jqnewsVert"> <?php if ($reviews) { ?> <?php foreach ($reviews as $review) { ?> <div class="content"><b> <strong><a href="<?php echo $review['url']; ?>"><?php echo $review['name']; ?></a></strong> <br/> <?php echo $review['author']; ?></b> | <img src="catalog/view/theme/default/image/stars_<?php echo $review['rating'] . '.png'; ?>" alt="<?php echo $review['stars']; ?>" /><br /> <?php echo $review['date_added']; ?><br /> <br /> <?php echo $review['text']; ?></div> <?php } ?> <?php } else { ?> <div class="content"><?php echo $text_no_reviews; ?></div> <?php } ?> </div> </div> <div class="bottom"> </div> </div> <?php } ?> <!-- end last review --> 3. В контроллере colum_right.php добавляем: //---------------------- last review ----------------------------- $this->load->model('catalog/review'); $this->data['reviews'] = array(); $results = $this->model_catalog_review->getLastReview(); foreach ($results as $result) { $text=""; $words = explode(" ", nl2br(strip_tags($result['text']))); if ( count($words) > 10 ) { $text = join(" ", array_slice($words, 0, 10)); $text = $text . " ..."; } else { $text = nl2br(strip_tags($result['text'])); } $tmp = $this->model_catalog_product->getProductAlias($result['product_id']); if ($tmp == '0') { $url = HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id']; } else { $url = $this->model_catalog_product->getProductAlias($result['product_id']); } $this->data['reviews'][] = array( 'name' => $result['name'], 'author' => $result['author'], 'rating' => $result['rating'], 'url' => $url, //'text' => nl2br(strip_tags($result['text'])), 'text' => $text, 'stars' => sprintf($this->language->get('text_stars'), $result['rating']), 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])) ); } //---------------------End last review------------------------------------------------ 4. Слайд блоков на странице делаю при помощи скрипта jqNewsV2.0.js (б.., так и не смог его прикрепить, сливайте если что тут http://moiotdyh.ru/c...y/jqNewsV2.0.js или в инете) не забываем его подключить <script src="catalog/view/javascript/jquery/jqNewsV2.0.js" type="text/javascript"></script> 5. Стили юзаю следующие .lastreview h4 {margin: 0px;margin-bottom: 5px;color: orange;} #jqnewsVert {overflow: hidden; height: 370px;} #jqnewsVert div {display: block; overflow: hidden;} #jqnewsOriz{height: 220px; width: 250%;overflow: hidden; margin:auto;} #jqnewsOriz div{float:left;height: 220px; width: 150px;margin: 5px; display:block;overflow: hidden;text-align: center;} тут еще и для горизонтального расположения 6. надеюсь ничего не забыл
  4. как токены для ostore 0.1.7 прикрутить я писал выше. судя по скрину у tuzhilkin у него пустой src в <img> у меня на выходе получается след. код для preview: <td> <input type="hidden" name="image" value="data/apple_cinema_30.jpg" id="image"> <img src="http://localhost/ostore/image/cache/data/apple_cinema_30-100x100.jpg" alt="" id="preview" style="border: 1px solid #EEEEEE;"> </td> input заполняется для передачи значения value через $_POST, для этого использется код $('#' + field).val(tmp_img); а <img src= заполняется тем что писал выше ('#' + preview).replaceWith 1. покажите ваш код admin/controller/common/filemanager.php функцию image 2. что показывает firebug console при отработке .ajax
  5. может я не совсем понял проблему, но у меня как на товар не переходи, везде отображает кому он понравился одинаково. код для вконтаке: VK.Widgets.Like('vk_like', {width: 240, pageTitle: document.title, pageDescription: '<?php echo $short_description; ?>'}, <?php echo $product_id; ?>); код для facebook <iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"] ?>" "&layout=standard&show_faces=false&width=400&action=like&font=arial&colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:230px; height:120px;" allowTransparency="true"></iframe>
  6. За превьюшку отвечает этот код $('#' + preview).replaceWith('<img src="' + data + '" alt="" id="' + preview + '" style="border: 1px solid #EEEEEE;" />');возможно ajax запрос возвращает неверные данные.Проверить можно открыв консоль firebug в firefox или вывести путь alert - ом для проверки // получаем путь до картинки $.ajax({ url: 'index.php?route=common/filemanager/image', type: 'POST', data: 'image=' + url, dataType: 'text', success: function(data) { $('#' + preview).replaceWith('<img src="' + data + '" alt="" id="' + preview + '" style="border: 1px solid #EEEEEE;" />'); alert(data); $('#' + field).val(tmp_img); } }); Если data возвращается не верно, значит проблема в контроле /admin/controller/common/filemanager.php . в функции image
  7. все разобрался, в этой версии используются token-ы для безопасности. если короче то в файле view/template/catalog/product_form.tpl, для функции function image_upload(field, preview) меняем 2 строчки 1. url: 'index.php?route=common/filemanager/short_path'на url: 'index.php?route=common/filemanager/short_path&token=<?php echo $token; ?>' 2. url: 'index.php?route=common/filemanager/image',на url: 'index.php?route=common/filemanager/image&token=<?php echo $token; ?>' после этого все должно работать.
  8. я ставил на Opencart 1.4.7. Сейчас посмотрю что там в ocStore 0.1.7
  9. Нашел интересную доработку для elfinder, дял мультизагрузки файлов http://dapmoed.ru/2011/01/17/html5-multiupload-files-elfinder/ 1. Копируем архив, из стать (см. выше) 2. в файле view/template/common/header.tpl добавляем к тому что описано выше еще пару строк. <link rel="stylesheet" href="view/javascript/elfinder/css/fileuploader.css" type="text/css" media="screen" title="no title" charset="utf-8"> <script src="view/javascript/elfinder/js/fileuploader.js" type="text/javascript" charset="utf-8"></script>3. Меняем в этом же файле строчку <script src="view/javascript/elfinder/js/elfinder.min.js" type="text/javascript" charset="utf-8"></script>на <script src="view/javascript/elfinder/js/elfinder.full.js" type="text/javascript" charset="utf-8"></script> На сайте у меня работает http://moiotdyh.ru/dev/elfinder-demo/, на локальной машине не получилось привести в работоспособность (использую denwer). У кого получится, делитесь плиз.
  10. пользуемся поиском https://opencartforum.com/topic/162-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B5%D0%B9%D0%B1%D0%BB%D0%BE%D0%B3%D0%B0-fix/ Этот модуль может выводить новости на главной странице
  11. Можно поправить запрос в модели catalog\model\catalog\product.php , где выставить сортировку по product_image_id. Получается, что добавил в админке, по порядку, то и на странице товара будет выводиться по порядку. public function getProductImages($product_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_image WHERE product_id = '" . (int)$product_id . "' order by product_image_id "); return $query->rows; } Также можно поправить запрос и для админ части admin\model\catalog\product.php, чтобы небыло отличий. public function getProductImages($product_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_image WHERE product_id = '" . (int)$product_id . "' order by product_image_id "); return $query->rows; }
  12. Привет всем. Решил поделиться с вами как заменить стандартный менеджер изображений на eilfinder. Сразу оговорюсь менеджер не встроен в редакторы контента CKEditor ( TyniMCE ) на офиц. сайте elfinder есть примеры как это сделать. Сам опенкарт мне пришлось достаточно много и упорно покромсать (это продолжается и по сей день) и слепить из него некий каталог, и меня очень напрягало добавление картинок к продукту, когда их число превышало 10, поэтому и появился этот пост ). И так. Сам elfinder вы можете посмотреть/слить на офц. сайте (см. выше), там же есть демо его работы. Я же приаттачил архивчег со своими настройками. Сам я не особо шарю в PHP, javascript, поэтому снимаю с себя ответственность за оптимальность решения и кода, все делалось методом научного тыка. !!! Все изменения мы будем производить для админ части, поэтому чтобы не писать длинные пути, все файло считать лежащим относительно этого www/admin/.... начнем. 1. Для начала копируем elfinder в каталог нашего шаблона view/javascript (я сделал так, не спрашивайте почему.) И производим настройку заходим в файл elfinder\connectors\php\connector.php и правим 'root' => '/home/root/www/image/data/', // path to root directory (полный путь) 'URL' => 'http://localhost/image/data/', // root directory URL (путь до каталога с картинками) Также там еще туева хуча настроек, можете о них почитать на оф. сайте. 2. в файле view/template/common/header.tpl прописываем juery (если ее еще не было) и библиотеки elfinder. <script src="view/javascript/elfinder/js/jquery-1.4.1.min.js" type="text/javascript" charset="utf-8"></script> <link rel="stylesheet" href="view/javascript/elfinder/js/ui-themes/base/ui.all.css" type="text/css" media="screen" title="no title" charset="utf-8"> <link rel="stylesheet" href="view/javascript/elfinder/css/elfinder.css" type="text/css" media="screen" title="no title" charset="utf-8"> <script src="view/javascript/elfinder/js/jquery-ui-1.7.2.custom.min.js" type="text/javascript" charset="utf-8"></script> <script src="view/javascript/elfinder/js/elfinder.min.js" type="text/javascript" charset="utf-8"></script> <script src="view/javascript/elfinder/js/i18n/elfinder.ru.js" type="text/javascript" charset="utf-8"></script> 3. Дальше идет некий изврат, но после 2х дней ковыряния в коде, и нескольких банок энергетика, мне в голову ничего не пришло (если у кого будут более здравые мысли, прошу делиться... ), так вот лезем в файл контролера controller/common/filemanager.php и вместо функции Image() делаем 2 функции ) public function image() { $this->load->model('tool/image'); if (isset($this->request->post['image'])) { $tmp = explode("data/",$this->request->post['image']); $this->response->setOutput($this->model_tool_image->resize("data/".$tmp[1], 100, 100)); } } public function short_path() { $tmp = explode("data/",$this->request->post['image']); $this->response->setOutput("data/" . $tmp[1]); } Дальше поясню зачем все это. 4. Последний шаг. Идем в шаблон нашей админке, там где мы правим товары view/template/catalog/product_form.tpl и гдето внизу ищем JS функцию function image_upload(field, preview) меняем ее на следующую. function image_upload(field, preview) { $('<div id="elfinder" />').elfinder({ url : 'view/javascript/elfinder/connectors/php/connector.php', lang : 'ru', rememberLastDir : true, contextmenu : { cwd : ['reload', 'delim', 'mkdir', 'mkfile', 'upload', 'delim', 'paste', 'delim', 'info'], file : ['select', 'open', 'delim', 'copy', 'cut', 'rm', 'delim', 'duplicate', 'rename'], group : ['copy', 'cut', 'rm', 'delim', 'archive', 'extract', 'delim', 'info'] }, dialog : { title : 'File manager', width : 500, modal : true }, editorCallback : function(url) { var tmp_img = ''; // получение короткого пути $.ajax({ url: 'index.php?route=common/filemanager/short_path', type: 'POST', data: 'image=' + url, dataType: 'text', async: false, success: function(data) { tmp_img = data; //alert('Short: ' + tmp_img); } }); // получаем путь до картинки $.ajax({ url: 'index.php?route=common/filemanager/image', type: 'POST', data: 'image=' + url, dataType: 'text', success: function(data) { $('#' + preview).replaceWith('<img src="' + data + '" alt="" id="' + preview + '" style="border: 1px solid #EEEEEE;" />'); // alert(tmp_img); $('#' + field).val(tmp_img); } }); }, closeOnEditorCallback : true }); }; Теперь немного поясню, про контролер из п.3 функция Short_path, рвет строку на части, когда находит data/ и возвращает мне короткий путь до файла картинки, другого способа мой мозг не выдал (((. т.к. elfinder выдает полный путь, вот и приходится его резать. Под какой же принцип переделана и функция Image. Теперь по JS в п.4 юзаю 2-е аякс функции, одна как раз находит Short_path, котороый потом пишется в value элемeнта <input>, ну а 2-ая функция генерит preview при помощи функции image. Вот вроде и все, кажется ничего не забыл, хотя могу, у нас уже за полночь ))). Надеюсь кому нибудь пригодится, сие творений )))) . Ну а кто может все это дело оптимизировать и упростить, прошу не молчать) elfinder.zip
  13. Мне в редакторе добавление изображений, было не нужно , поэтому особо этой темой не занимался, знаю есть plugin TinyMCE, позволяющий это делать.
  14. Простой код на PHP, присваиваю пустое значение переменной. <?php // временно убрал цену $display_price = ''; ?> а далее просто проверяю, если переменная не пустая, то вывожу блок с ценами <?php if ($display_price) { ?> (Кстати может проверка была изначально, уже не помню :) )Можно и просто в HTML блок закоментить <!-- <?php if ($display_price) { ?> <?php if (!$products[$j]['special']) { ?> <span style="color: #333; font-weight: bold;"><?php echo $products[$j]['price']; ?></span><br /> <?php } else { ?> <span style="color: #333; font-weight: bold; text-decoration: line-through;"><?php echo $products[$j]['price']; ?></span> <span style="color: #F00;"><?php echo $products[$j]['special']; ?></span> <?php } ?> <?php } ?> --> Наверное сделал с переменной, потомучто было лень, искать блок цен и его коментировать ))
  15. Согласен с afwollis, что выкусывать придется много, до сих пор этим занимаюсь ). Что бы убрать цену,я делал след. способом, во всех элементах шаблона, где есть цена, например: \catalog\view\theme\default\template\common\home.tpl добавил след код после: <?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?> <?php // временно убрал цену $display_price = ''; ?> Ну и там где есть вывод цен ставил проверку <?php if ($display_price) { ?> <?php if (!$products[$j]['special']) { ?> <span style="color: #333; font-weight: bold;"><?php echo $products[$j]['price']; ?></span><br /> <?php } else { ?> <span style="color: #333; font-weight: bold; text-decoration: line-through;"><?php echo $products[$j]['price']; ?></span> <span style="color: #F00;"><?php echo $products[$j]['special']; ?></span> <?php } ?> <?php } ?>
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.