Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!
2500 ₽

Скрипт каталог товаров

проект не выполнен


Схема такая:
http://домен/путь/ЧПУ
.htaccess => ./index.php => ./init.php => ( ./design-filtr.php | ./design-product.php | ./design-list.php | ./design-text.php)

Около 15000 позиций товаров описаны в CSV файле.
[Я] - перед именем файла означает, что я сам его настраиваю!

[Я] ./design-filtr.php - содержится html код страницы фильтра. В нужных местах расставлены php функции описанные в файле ./init.php . Фото фильтра я приаттачил.
[Я] ./design-product.php - содержится html код страницы карточки товара. В нужных местах расставлены php функции описанные в файле ./init.php . Фото карточки я приаттачил.
Это примерный вид. Я сам буду моделировать дизайн страницы и данные вставлять нужные.

Структура каталога на сайте:
Производитель => Коллекция => Товар

Фильтр по: Цене, Помещению (6 вариантов), Дизайну (24 варианта), Стилю (12 вариантов), Цвету (16 вариантов), Материалу (4 варианта), Наличию в магазине (10). Всего 62 варианта * 10 магазинов. Оптимально будет создать кеш фильтра для 3 одновременно наложенных фильтров. 62 в 3 степени = 238.328*10=2.383.280 файлов будет сгенерировано, минус какое то, скорее всего большое, количество пустых пересечений.

Сам фильтр жестко НЕ прописан. Это текущее его представление. Фильтр создается по файлу CSV. Запуск (пере)формирования каталога происходит путем запуска ./build-catalog.php

В файле CSV есть даже колонки с транслитом тех данных, что используются в url
При формировании фильтра, я вижу, что ЧПУ строится как то так:

  • ЧПУ1_ЧПУ2_ЧПУ3_ЧПУмагазин
  • ЧПУ1/ЧПУ2/ЧПУ3/ЧПУмагазин

./build-catalog.php - создает кучу готовых файлов на основе CSV, которые в будущем, при обращении к ЧПУ, с помощью функций описанных в ./init.php используя ./design-filtr.php и ./design-product.php выдаст эту страницу.


===================


[Я] ./design-list.php - содержится html код страницы списка статей. В нужных местах расставлены php функции описанные в файле ./init.php . Ну это классика. Меню слева например, посередине список из к примеру 20 заголовков статей с описанием, а внизу переход на следующие страницы 1 2 3 4 5 ...

[Я] ./design-text.php - в котором содержится весь html код страницы, а так же в нужных местах расставлены php функции описанные в файле ./init.php

./edit-design.php - какой то более менее "визуальный", или просто с превью, редактор любого файла ./design-*.php для расстановки функций, удаления лишних блоков. Ведь я просто возьму код понравившегося дизайна с какого то сайта и вставлю его туда, затем расставлю функции. Если для этого действия есть удобный редактор, который можно установить на компе - скажите - буду пользоваться им.


./bd/inbox/*.html - сюда кладу файлы и запускаю ./build-text.php
при этом формат файла здесь такой: (избавиться от возможного первого символа BOM)
1 строка: Дата публикации: 28.01.2019 12:09 или пустая строка. Пустая строка это случайное число минут заданное в скрипте в диапазоне между 100 минут и 2000 минут. т.е. статья за статьей, время "прилипает" к динамичной дате последней статьи. Если дата заполнена, то в этих расчетах она никак не участвуют. Эта динамичная дата сохраняется в файле ./bd/var/datetime для последующего использования.
2 строка: H1 Заголовок
3 строка: Заголовок для меню
Остальной текст: <p>Текст текст текст. Текст текст текст текст.</p>
<p>второй абзац текста.</p>
<h2>какой то там заголовок</h2>
<p>третий абзац текста.</p>
и т.д.
./build-text.php - он берет по одному файлу из папки ./bd/inbox/ читает из него дату, h1, меню, текст и сохраняет в свою локальную БД. А отработанный файл удаляет. Защищен от единовременного запуска 2ух экземпляров скрипта с помощью файла флага.

./init.php - прописаны все необходимые функции для использования мной в файлах ./design-filtr.php, ./design-product.php, ./design-list.php, ./design-text.php
- фильтр
- всё, что касается каталога - вывод любого поля
- меню: боковое, верхнее, нижнее с указанием параметров (максимальное кол-во пунктов, максимальное кол-во символов в строке, обрезать или игнорировать эту строку если максимум)
- title()
- h1()
- content1(начать с номера параграфа = следующий, сколько параграфов = 1000)
- content2(сколько параграфов вывести = 1000)
- content_reset(номер следующего параграфа = 0)
- asis(имя файла) - вставить содержимое файла как есть
- comment() - показать комментарии, предоставить пользователям делать комментарии
- lists(количество статей)
- number() - вывести кликабельные номера страниц ... 4,5,6,7,8,9...
- сам смогу расширять ассортимент функций

Не нужен Wordpress и т.д. Он вообще не должен себя как то идентифицировать.
Не использовать MySQL. Можно использовать SQLite либо другую файловую БД, хоть самодельную.


Приложения 2

Просмотр приложений доступен только зарегистрированным пользователям.

Отзыв заказчика об исполнителе Владиславе Сергееве

Качество
Профессионализм
Стоимость
Контактность
Сроки

Планеты не так были расположены на этой неделе. Система заставила писать этот отзыв.

Дмитрий К. Дмитрий Кир | Сейф Сейф



  1.  фрилансер больше не работает на сервисе
  • ничего не понятно из вашего тз

  • Дмитрий Кир — заказчик проекта
    Пожаловаться | 20 января в 12:28 |

    http://домен/путь/ЧПУ
    .htaccess => ./index.php => ./init.php => ( ./design-filtr.php | ./design-product.php | ./design-list.php | ./design-text.php)

  • что это

  • Дмитрий Кир — заказчик проекта
    Пожаловаться | 20 января в 12:34 |

    Пришел запрос по адресу: http://домен/путь/ЧПУ
    .htaccess направляет этот запрос на файл ./index.php
    ./index.php инклюдит ./init.php, затем инклюдит один из этих файлов ( ./design-filtr.php | ./design-product.php | ./design-list.php | ./design-text.php) в зависимости от логики.


  • Для чего вы написали как работает инклюд.

    это и так все знают

  • Дмитрий Кир — заказчик проекта
    Пожаловаться | 20 января в 12:51 |

    вы спросили: "что это?"
    я ответил в контексте вопроса.

  • Здравствуйте.

    Судя по всему у вас самописный сайт или движок. Прибегать к CMS и я не советую, так как у вас агитатор. Вам больше подойдёт фреймворк. Большая часть из того что вы хотите, уже реализовано во многих фреймворках, причём безопасно и продумано. Если вы хотите удобно управлять своими данными, то предлагаю сделать основной сайт на фреймворке, и раздавать с него API в виде json-файла. Это даёт вам два огромных преимущества:
    1) Сайт на фрейворке будет легко расширяемым, мало временных затрат на "мелкие правки".
    2) API такого сайта позволит вам размещать товары везде где вы захотите. То есть магазинов будет много, а пункт управления один, и удалённый.
    Дополнительным бонусом в такой конструкции будет возможность делать yml-файлы для Яндекс.Маркета , плюс защита от уязвимостей.
    Как опытный программист, скажу, что ваша задумка весьма хрупкая, особенно будет грустно при высоких нагрузках, сайт часто будет ложить сервер хостинг провайдера, что будет приводить к частым банам, либо вас "попросят" увеличить тариф, чтобы соответствовать нагрузкам, что возможно будет очень не выгодно в финансовом плане.

  • Дмитрий Кир — заказчик проекта
    Пожаловаться | 20 января в 12:55 |

    Игорь, на фреймворк я согласен. Дополнительные фичи api и т.д. на текущий момент не нужны. т.е. пункт управления сейчас не нужен. вот yml интересен.
    А вот нагрузки на него не должны влиять - ведь БД нет. Всё уже сгенерировано и лежит в виде файлов.

  • Дмитрий, это всё понятно, но я не вижу какой бюджет вы готовы выделить на такую работу?
    Загрузка картинок, скриптов, стилей, шрифтов и прочего это тоже нагрузка, которая возникает при запросе с любого устройства на сервер. Если не установить кеширование данных, или асинхронную загрузку изображений, особенно если они будут весит 1 Мб, то это будет весомая нагрузка, я ведь не знаю сколько будет запросов в секунду, в минуту. Не зависимо от того, есть БД или её нет, считывание информации уже создаёт нагрузку, даже с файлов.Так по любому будет обработка данных.

  • Дмитрий Кир — заказчик проекта
    Пожаловаться | 20 января в 13:08 |

    Больше 1000 - 2000 посетителей в сутки точно не ожидается. Я готов перейти на VDS, когда потребуется. Кеширование и т.д. в ТЗ не описано. Это уже моя задача.
    А бюджет скромный. Жду адекватно низкую цену.

  • как раз  работа с файлами  и создаст нагрузку на сервер больше чем база данных

  • Дмитрий Кир — заказчик проекта
    Пожаловаться | 20 января в 13:02 |

    Ну это ж статика. Больше 1000 - 2000 посетителей в сутки не ожидается. Я готов перейти на VDS, когда потребуется.