Re: Каталог
я уже дорабатываю свой с учетом данных шорткодов.
Плагины распространяются по Creative Commons Attribution-NonCommercial 3.0
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
я уже дорабатываю свой с учетом данных шорткодов.
а вообще по коду - нужно проделать там еще много работы.
Например все новые lang обозначения написаны сразу на русском а не вынесены в файл.
Это не говоря о прочем спагетти коде.
все новые lang обозначения написаны сразу на русском а не вынесены в файл
Сейчас пробежался по вьюхам, думал действительно где то забыл - нет все в текстовых переменных, Где ты нашел?
Поставил плагин.. потыкался...
- Картинку можно добавлять только после создания каталога и продукта ( не удобно и логики я не понял )
- Нету превью картинки при добавлении
- Вмешается около 150 символов в дизайн продукта при отображении на сайте нужно тогда ввести какое то ограничение в админки на ввод символов...
- Цена в настройках $, но при вводе 15 $ пишет не в долларах а в гривнях о_О
Предлы:
-> Изменить ссылку в каталоге картинки на ссылку во внутрь каталога а не увеличение фотографии...
-> Добавить более расширенную работу с товаром, чтобы был список товаров но при клике на определённый товар открывался только он с доп инфой, с большим количеством фоток\описанием\ можно будет даже туда прикрутить комменты со сторонних ресурсов
п\с спасибо за плагин
отображения отдельного элемента в следующей версии реализую.
Доработайте пожалуйста отображение отдельного элемента.
Спасибо!
- Картинку можно добавлять только после создания каталога и продукта ( не удобно и логики я не понял )
я дорабатывал плагин - а в нем функционально было реализовано так, что возможность добавления фото появлялась после сохранения товара, переделывать не хотелось - плагин простой
Нету превью картинки при добавлении
принцип тот же, что и в коробочном файловом менеджере, там тоже нет превьюхи. Опять таки плагин делал под заказчика и переделывать не было времени и возможности.
Цена в настройках $, но при вводе 15 $ пишет не в долларах а в гривнях о_О
Там еще и курс есть, а во фронте отображается уже по курсу, такая была задача - в базе хранить цены в долларах и чтобы во фронте цена менялась при смене курса но была в гривнах. Валюту во фронте менять не сложно.
Изменить ссылку в каталоге картинки на ссылку во внутрь каталога а не увеличение фотографии...
Это будет реализовано в следующей версии по желанию трудящихся.
Добавить более расширенную работу с товаром, чтобы был список товаров но при клике на определённый товар открывался только он с доп инфой, с большим количеством фоток\описанием\ можно будет даже туда прикрутить комменты со сторонних ресурсов
неплохо бы поподробнее написать какие именно доп свойства прикрутить.
Здравствуйте... Нужна помощь! тяжело объяснить, голова уже плохо соображает, будет много букаф, но попробую...
На входе имеется данный плагин и скрипт на открытие модального окна:
http://jemand.ru/modalnoe-okno-na-jquery/
Так как у данного плагина нету вывода отдельного элемента, решил сделать его вывод в модальном окне прямо с каталога... в которое подсовывается description, да и все что душе угодно...
Все бы было хорошо, но модальное окно любого элемента открывается с description первого, что и не удивительно, name у все ссылок a был одинаковый...
В стандарте cat.view.php плагина от sergeyterr эта ссылка открывала изображение с каталога, что было переписано на открытие модального окна и задание уникального атрибута name каждого элемента:
<?php Catalog::$meta['title'] = Notification::get('title'); if (Notification::get('error')) Alert::error(Notification::get('error')); else { $id=1; foreach($records as $row): ?> <div style="display:block; float:left; width:<?php echo ((Option::get('catalog_w'))*0.05+(Option::get('catalog_w'))); ?>px; height: 315px; margin-right:15px; margin-bottom:15px; text-align:center"> <?php if ($opt["title"] == 0) { echo "<div id=\"eternum-item-title\">".$row['title']."</div>"; } ?> <?php if (file_exists(ROOT . DS . 'public' . DS .'catalog' . DS . $opt["cat_id"] . DS . $row['id'] . '_t.jpg')) { ?> <a href="#dialog" name="modal<?php echo $id++;?>"> ...
Вообщем после этого у нас есть каждый элемент каталога с ссылкой, у которой name формата modal$id+1 т.е. modal1, modal2, modal3.... modal++
скрипт открытия модального окна по дефалту
$(document).ready(function() { $('a[name=modal]').click(function(e) { ...
в котором и задается дальнейшее содержимое модального окна с атрибутом name="modal"
написал ('подсмотрел и переделал') скрипт, в котором получаю name ссылки элемента:
var Name = $('.name').attr('name'); $("a").click(function() { var name = $(this).attr("name"); alert(name);
alert() выводит правильное значение, все нормально....
А теперь внимание, господа знатоки, /что в черном ящике/ как мне подставить
var Name
в
$('a[name=modal]').click(function(e) {
вот что имеется на данный момент в cat.view.php
<div id="collection-item"> <?php Catalog::$meta['title'] = Notification::get('title'); if (Notification::get('error')) Alert::error(Notification::get('error')); else { $id=1; foreach($records as $row): ?> <div style="display:block; float:left; width:<?php echo ((Option::get('catalog_w'))*0.05+(Option::get('catalog_w'))); ?>px; height: 315px; margin-right:15px; margin-bottom:15px; text-align:center"> <?php if ($opt["title"] == 0) { echo "<div id=\"eternum-item-title\">".$row['title']."</div>"; } ?> <?php if (file_exists(ROOT . DS . 'public' . DS .'catalog' . DS . $opt["cat_id"] . DS . $row['id'] . '_t.jpg')) { ?> <a href="#dialog" name="modal<?php echo $id++;?>"> <img class=" <?php if (Page::slug() == 'eternum'){ echo 'eternum'; } elseif (Page::slug() == 'eternum-signature'){ echo 'eternum-signature'; } elseif (Page::slug() == 'eternum-gastronum'){ echo 'eternum-gastronum'; } ?>" alt="" style="margin:auto; max-height:<?php echo Option::get('catalog_w'); ?>px;" src="<?php echo $opt['url'].$opt["cat_id"].'/'.$row['id'].'_t.jpg' ?>"/></a> <div id="boxes"> <div id="dialog" class="window"> <?php if ($opt["desc"] == 0) { echo "<div class=\"desc text-center\">".Text::toHtml(File::getContent($opt["storage"] . $opt["cat_id"] . DS. $row['id'] . '.catalog.txt'))."</div>"; } ?> </div> <span><a href="#" class="close"/>Закрыть его</a> </div> </div> <?php if (Page::slug() == 'eternum'){ echo '<div id="eternum-item-bg"></div>'; } elseif (Page::slug() == 'eternum-signature'){ echo '<div id="signature-item-bg"></div>'; } elseif (Page::slug() == 'eternum-gastronum'){ echo '<div id="gastronum-item-bg"></div>'; } ?> <?php } else { ?> <a href="<?php echo Option::get('siteurl') . 'public/catalog/dsc_empty.jpg'; ?>"> <img class="img-polaroid" style="max-width:<?php echo (Option::get('catalog_w')); ?>px;" src="<?php echo Option::get('siteurl') . 'public/catalog/dsc_empty.jpg'; ?>" /> </a> <?php } if ($opt["price"] == 0) { if(Session::get('user_id')){ $price = $row['price'] * Option::get('kurs'); echo "<div class=\"price\">".$price." грн.</div>"; } } ?> </div> <?php endforeach; } ?> <div style="clear:both"></div> <div id="news-paginator"><?php Catalog::paginator($opt['current_page'], $opt['pages_count'], $opt['site_url'].'catalog/'.$opt["slug"] . '/');?></div> </div>
и само модальное окно
$(document).ready(function() { var Name = $('.name').attr('name'); $("a").click(function() { var name = $(this).attr("name"); alert(name); $('a[name=????????]').click(function(e) { e.preventDefault(); var id = $(this).attr('href'); var maskHeight = $(document).height(); var maskWidth = $(window).width(); $('#mask').css({'width':maskWidth,'height':maskHeight}); $('#mask').fadeIn(1000); $('#mask').fadeTo("slow",0.8); var winH = $(window).height(); var winW = $(window).width(); $(id).css('top', '5%'); $(id).css('left', '10%'); $(id).fadeIn(2000); }); $('.window .close').click(function (e) { e.preventDefault(); $('#mask, .window').hide(); }); $('#mask').click(function () { $(this).hide(); $('.window').hide(); }); }); });
Всем спасибо если хотя бы прочитаете все это...
Всем привет. Сразу скажу, что на языке php работать не умею.
Возникла необходимость добавить в данный каталог старую цену, решил поступить тупо: накопировал все строчки, где прописано price, изменив на oldprice. Получилось примерно так:
catalog.plugin.php
$oldprice = (isset($oldprice)) ? (int)$oldprice : 0; $desc = (isset($desc)) ? (int)$desc : 0;
return Catalog::getItems($uid, $count, $title, $price, $oldprice, $desc, $img);
$opt["price"] = $price; $opt["oldprice"] = $oldprice;
public static function getCatalog($id=0, $count=6, $title=0, $price=0, $oldprice=0, $desc=0, $img=0, $sort='id', $display=true){
$records_all = $items->select('[catalog="'.$id.'"]', 'all', null, array('id','title','price','oldprice','currency'));
catalog.admin.php
$records_all = $cat_items->select('[catalog="'.$id.'"]', 'all', null, array('name', 'price', 'oldprice', 'title', 'h1', 'description', 'keywords', 'slug', 'date', 'author', 'status', 'catalog', 'hits'));
$post['price'] = (Request::post('catalog_price')) ? Request::post('catalog_price') : ''; $post['oldprice'] = (Request::post('catalog_oldprice')) ? Request::post('catalog_oldprice') : '';
'price' => Request::post('catalog_price'), 'oldprice' => Request::post('catalog_oldprice'),
Скопировал не все строчки, конечно, но примерно ясно. Также прописал в языковом файле. Кажется, что проблема заключается в cat.view.php, поскольку просто скопировать там нельзя .
<?php } if ($opt["price"] == 0) { $price = $row['price'] * Option::get('kurs'); echo "<h6>".$price." руб.</h6>"; } ?> <?php } if ($opt["oldprice"] == 0) { $price = $row['oldprice'] * Option::get('kurs'); echo "<h6>".$oldprice."</h6>"; } ?>
третья и четвертая снизу
$price = $row['oldprice'] * Option::get('kurs'); echo "<h6>".$oldprice."</h6>";
В этом случае Вы определяете $price, а выводите $oldprice
как я понимаю должно быть:
$oldprice = $row['oldprice'] * Option::get('kurs'); echo "<h6>".$oldprice."</h6>";
А так же в xml файле с базой каталога следуетопределить поле oldprice.
И седьмая снизу, лишняя фигурная скобка. В полях для price она относится к предыдущей конструкции и при повторении в виде oldprice ее быть не должно, так как предыдущую конструкцию вы не повторяете.
<?php if ($opt["oldprice"] == 0) { $oldprice = $row['oldprice'] * Option::get('kurs'); echo "<h6>".$oldprice."</h6>"; } ?>
И повторюсь не забудьте в базу xml данного плагина в папке баз системы определить поле oldprice.
Faust, благодарю за помощь, только я, во-первых, не совсем понял, от какой фигурной скобки следует избавиться? Во-вторых, в каком файле БД нужно прописывать oldprice? И нужно прописать в одном месте или нужно будет прописывать у каждой позиции? Каталог в принципе уже заполнен.
нужно обновить текущую БД, чтобы там было требуемое поле.
от какой фигурной скобки следует избавиться
Должно быть так:
<?php } if ($opt["price"] == 0) { $price = $row['price'] * Option::get('kurs'); echo "<h6>".$price." руб.</h6>"; } ?> <?php if ($opt["oldprice"] == 0) { $$oldprice = $row['oldprice'] * Option::get('kurs'); echo "<h6>".$oldprice."</h6>"; } ?>
Во-вторых, в каком файле БД нужно прописывать oldprice? И нужно прописать в одном месте или нужно будет прописывать у каждой позиции?
В папке баз данных Monstra плагином создается файл базы конкретного плагина. Открываете этот файл (он схож с названием плагина) в текстовом редакторе (я использую nodepad++) и в начале где определяются поля добавить </oldprice> или как-то так по ангиологии с определением поля price. Убедитесь что после добавления Вы сохраняете файл в кодировке UFT-8 без BOM. Далее в этом файле уже для каждой позиций делать это не обязательно, это поле добавиться к позициям автоматически при редактировании и/или пере сохранении позиции.
P.S. Невозможность редактировать сообщения усложняет некоторые вещи. Наверху у меня ошибка (двойное $$)
от какой фигурной скобки следует избавиться
Должно быть так:
<?php } if ($opt["price"] == 0) { $price = $row['price'] * Option::get('kurs'); echo "<h6>".$price." руб.</h6>"; } ?> <?php if ($opt["oldprice"] == 0) { $oldprice = $row['oldprice'] * Option::get('kurs'); echo "<h6>".$oldprice." руб.</h6>"; } ?>
Всем спасибо, но ничего не получилось.
В шаблоне админ плагина добавили возможность введения этого поля? Скорей всего есть еще ошибки или где-то незакрытый тег, или может что-то пропущено. В идеале попробуйте в неустановленном каталоге на чистой монстре.
В неустановленном каталоге в файле /install/catalog.install.php меняете строку 16 с
Table::create('cat_items', array('title', 'price', 'currency', 'h1', 'description', 'keywords', 'slug', 'date', 'author', 'status', 'catalog', 'hits'));
на
Table::create('cat_items', array('title', 'price', 'oldprice', 'currency', 'h1', 'description', 'keywords', 'slug', 'date', 'author', 'status', 'catalog', 'hits'));
после этого устанавливаете плагин. У вас в базе появится поле oldprice. После этого можно с ним работать, читать записывать в него выводить в шаблон и т.д.
Всем здравствуйте!
А как сделать чтоб категории в каталоге (на главной странице) не отображались, мешают.
в каталоге /plugins/catalog/views/frontend/index.view.php
10 -11 -12 строка
<h5> <? echo $dob['title'] . "</h5>" ;
меняете на
<?
Большое Спасибо! Без категорий значительно лучше.
Может Вы при дальнейшем развитии этого проекта отображение категорий как опцию сделаете.
качайте версия 1.0.5
много разных исправлений и улучшений, значительная часть благодаря замечаниям RomanArt
качайте версия 1.0.5
много разных исправлений и улучшений, значительная часть благодаря замечаниям RomanArt
В папке только картинки
Исправлено, спасибо
Исправлено, спасибо
Доброго времени суток, плагин хорош (но лично мне не хватает некоторого функционала), несколько вопросов:
1. Будут ли сделаны многоуровневые вложения каталогов (без ограничений)?
2. Если есть к примеру категория Кошки и Собаки и в ту и в другую надо добавить каталог Сухие корма, то сухим кормам и там и там нельзя назначить slug - sukhie_korma, я понимаю что слуг уникален, возможно ли обойти эту уникальность каким то образом и учесть пожелания в будущем релизе? (сложно сделать выгрузку из существующего прайса другого магазина)
Спасибо.
Форум работает на PunBB, при поддержке Informer Technologies, Inc