своя CMS

Главные вкладки

Аватар пользователя natbampo natbampo 9 декабря 2016 в 9:36

Привет.
Создал на Yii2 свою CMS.
По функционалу старался идти к тому что обычно всегда требовалось мне в друпал 6/7, с некоторыми улучшениями.
Например я сделал возможность создания "копий" блока, для чего был в друпале модуль Контекст помоему.
Оцените как вышло в плане удобства и прочее.
Ну и благодарность конечно если баги какие найдутся.

Тестовый период завершен. Всем спасибо за обратную связь.

p.s. Сайт автоматом перестраивается каждые 5 часов, менять можно что угодно.

Лучший ответ

Аватар пользователя natbampo natbampo 16 декабря 2016 в 8:04

Решено. Всем спасибо за внимание.

Комментарии

Аватар пользователя gun_dose gun_dose 9 декабря 2016 в 9:44

А чо как вьюсы мышкой настраивать?)))

В целом вроде и ничего, но структура контента в админке лично мне вообще непривычная

Аватар пользователя gun_dose gun_dose 9 декабря 2016 в 11:05

Я плотно работал только с друпал и немного с опенкарт, ни там, ни там нет левого меню. Хотя в восьмёрке его уже можно и так и так ставить. В общем, тут наверное дело привычки.

Кстати, недавно сайт делал, переносили как раз с йии на друпал. Админку не смотрел, переносили контент просто с морды.

Аватар пользователя gun_dose gun_dose 9 декабря 2016 в 11:21

Это да, бывает. Но в приведённом случае контора, разработавшая сайт на йии, просто слилась, а найти другую оказалось нереально. Ну и кстати по итогу сайт на друпале не стал работать медленнее, при этом сократился объём кода страниц на 30-40%.

Аватар пользователя goodboy goodboy 9 декабря 2016 в 10:33

Хорошая работа. Я как-то еще смотрел Юпи. Интересно, на yii так удобно создавать свои CMS или дело в квалификации.

Я так понимаю, программные страницы и типы контентов из административной части не настроить.

Аватар пользователя natbampo natbampo 9 декабря 2016 в 10:54

У программных страниц и остальных типов контента есть у каждого свои настройки.
Если вы о создании своих типов из админки, то этого нет.
Это же не конструктор сайтов, как друпал, а просто цмс.
Новый контент тип дополнительным модулем пойдет.

Аватар пользователя goodboy goodboy 9 декабря 2016 в 12:42

Да, о добавлении типов. Но и так, это практически уровень раннего WP. Кстати, админка очень похожа на WP, мне лично больше нравится друпалловской.

Теги бы еще добавить. И возможность расширения (модули/плагины). Сколько примерно времени заняло написание CMS? Вы опытный разработчик YII или может, это первый пробный проект на нём. Я как-то начал изучать Yii, потом прочел, что нужно YII2, он все же гораздо серьезней и обширней, как-то завяз в нем.

Аватар пользователя natbampo natbampo 9 декабря 2016 в 14:17

модули и плагины подключаются в системе, но не через админку галочками, а по Yii-шному. Это же все таки не опенсорц, таких сложностей и не надо.
По времени сложно сказать, в свободное время делалось тщательно и неспеша.

Yii2 хорошая штука, современная, под новые пхп версии и их фичи, его однозначно, а не старый.
Довольно легкий для изучения фреймворк, в нем не надо какой то Дзен постигать, разобраться в синтаксисе, а остальное - это все то же ООП, что во всех языках похожее.

Аватар пользователя natbampo natbampo 9 декабря 2016 в 14:20

Я вот кстати, с вордпрессом меньше всего знаком, глядел конечно, вот шорткоды мне понравились, и себе такие сделал же. И кнопка вставки картинки в контент. В остальном я все еще больше по друпальски продолжаю мыслить.

Аватар пользователя BatKor BatKor 9 декабря 2016 в 11:13

Думаю не хватает, галочек выбора пунктов, если например хочется удалить несколько ссылок с менюшки, ну и в таком вроде. А так да, отличная работа

Аватар пользователя postgres postgres 9 декабря 2016 в 14:33

Чувак, ну ты даешь!
"Оцените как вышло в плане удобства и прочее."

Как бы мысль повести.... не знаю как другие, но пусть каждый вспомнит, сколько времени у него ушло на осваивание Drupal? Даже не в плане программирования, а вообще... у меня 1 месяц, пока не врубился как то более менее. И что в итоге? вышло что views я лично использую только чтобы изменить вывод уже существующих компонентов. Все свои выводы пишу сам потому что они в 100 раз быстрее работают. А по скорости разработки - разница в 30 минут максимум.
Ну да бог с ним, так сколько ты времени нам даешь на ознакомление с новой CMS? Smile

Аватар пользователя natbampo natbampo 9 декабря 2016 в 15:01

Друпал - это конструктор сайта, cmf, с ней надо долго учиться работать, с сотнями модулей.
А я спрашивал ваше мнение как пользователя именно той админки у демо сайта.

Аватар пользователя postgres postgres 9 декабря 2016 в 16:09

ПРимер бенчмарк -
Есть таксономия: 10 словарей, в каждом от 6 до 20 терминов
Есть drupal_commerce с выставленными свойствами товара, ну там цвет, страна производитель и так далее, по всем 10 словарям
Есть view с отрытыми фильтрами, можно фильтровать товар выставляя нужные значения.
Товаров не очень много, всего в таблице вариаций примерно 20 000 записей.

Минимальное время работы такого фильтра, сделанного на views - 6 секунд, в среднем 8.

Далее, пишем свой модуль свою форму и строим такие конструкции:

<?php
$query 
= new EntityFieldQuery();
        
$query $query->entityCondition('entity_type''commerce_product')
        ->
propertyCondition('type''product')
        ->
propertyCondition('status''1')
        ->
propertyCondition('product_id'$pids'IN')
        ->
fieldCondition('field_on_warehouces''value','0','<>');
        foreach (
$filternow as $key=>$value){
            
$query->fieldCondition("field_$key"'tid'$value);
        } 
?>

В цикле добавляем каждый заполненный фильтр.
Время загрузки страницы с таким фильтром - макс 0,25 с
Это в 24 раза быстрее.

Если же собрать запрос на db_query (это уже по ajax когда загружаю) то там время возврата отклика 0.12 мс
в 66 раз меньше.

Но 20 000 вариаций - это же так себе магазинчик. На нормальном ассортименте 100 раз будет.

Аватар пользователя natbampo natbampo 9 декабря 2016 в 16:23

Понятно что так приходится делать на практике, но все равно, это не drupal way.
drupal way. - это модульками, мышенькой тык тык, никакого своего кода.
Получается конечно зачастую не ахти по производительности, и начинается откат, виевс не использовать, кучу хардкода и чем не самопис...

Аватар пользователя postgres postgres 9 декабря 2016 в 16:50

Друпал way - это вовсе не "мышенькой тык тык".
Что касается данного решения - оно оформлено в виде модуля и имеет свою админку и может быть перенесено на любой другой сайт.
ПОэтому вполне себе так Дпуал вэй.

Аватар пользователя dgastudio dgastudio 9 декабря 2016 в 17:01

пока этот модуль не один из поддерживаемых модулей на drupal.org , это не drupal way.
-- ерунду не говорите..

другое дело что использовать exposed для большого объема данных не совсем найc, но в этом случае выручает facetapi. а если еще и solr..

Аватар пользователя gun_dose gun_dose 9 декабря 2016 в 17:02

Что за бред? Друпал-вэй - это вообще больше к кодингу относится. Соответственно, когда пишешь свои модули, то надо писать по друпал-вэю. При беглом осмотре у вашего оппонента как раз-таки друпал-вэй. Хотя непонятно, почему бы не заюзать фасеты?

Аватар пользователя natbampo natbampo 9 декабря 2016 в 17:43

Я прочитал в свое время кучу книг по друпалу и перелопатил кучу статей с друпал.орг.
И работал с ним плотно. Сейчас уже нет, не стал инвестировать свое время в d8.
Так что вот такое мнение у меня о нем сформировалось, да и не только у меня, и у очень многих других программистов, например сразу вот такое да и по сути отзывов хороших мало...

Аватар пользователя natbampo natbampo 9 декабря 2016 в 17:49

Чем плохо, что все страницы у меня пронумерованы?
В меню например можно вместо урл вводить номер, или в тексте статьи у ссылки тоже номер. И не будет зависеть если урл синоним страницы меняется, ничего ручками не надо менять.
Также само и видимость блоков, посмотрите как у меня видимость блока формы логина проставлена, просто номера страниц перечислены, где не показывать.
Разве неудобно?

Аватар пользователя sergeybelya sergeybelya 9 декабря 2016 в 17:54

Абсолютно неудобно на мой взгляд) поставьте себя на место администратора сайта, ему удобнее работать с выпадающими списками, чекбоксами, автокомплитом и т.д.

Аватар пользователя natbampo natbampo 9 декабря 2016 в 18:03

Любая система требует минимального изучения.
Этот номер знать кстати совсем необязательно.
Можно было бы где то где нужна вставка ссылки на страницу, предусмотреть модальное окно с выбором из списка страниц, но то по желанию.
Хотя даже в друпал вы такое видели?
Так само в видимости блоков пишутся адреса типа:
node/11
node/22

Аватар пользователя sergeybelya sergeybelya 9 декабря 2016 в 18:04

А причем тут друпал? Я видел такое в ВП с разными плагинами настройки видимости виджетов на разных страницах, это очень удобно.

Аватар пользователя natbampo natbampo 9 декабря 2016 в 18:14

Ну эти то навороченные системы создаются сотнями разрабов, понятно что там может быть много богатых функционалов.
Я то один.
Но когда понадобится, я себе такое улучшение тоже добавлю.

Аватар пользователя postgres postgres 9 декабря 2016 в 17:05

В любой линейке есть конечная станция - экземпляр сайта. Добиваться того, чтобы все решения по сайту еще и на гитхаб легли? Коллеги, вы о чем? Smile
Это первое..., второе..., строго по секрету вам скажу...
Нет никакого Дрпуал Вэй. Нет его, увы.
Есть мировой океан, по нему плывет черепаха, а на ней стоят три слона и держат землю, плоскую, как тарелка...

Аватар пользователя natbampo natbampo 10 декабря 2016 в 8:30

Drupal меняется - 6,7,8, старые версии со временем не поддерживаются.
И владелец сайта хочет зачастую иметь новый друпал и его фичи.
И захочет он обновиться через админку, а это как раз drupal way, но только контриб модули могут ему такое позволить.
Вот например инструкция по обновлению, custom модули там даже и не упомянуты.

Аватар пользователя postgres postgres 9 декабря 2016 в 17:18

Почему не фасеты:
1. Фасеты бегло посмотрел, увидел что их работа основана на full-text index.
При изменении свойств (пермещение со склада на склад) (сток не сток) full-index надо перестраивать.
Это тяжелая операция. Максимум раз в час запускать ее допустимо.
2. Свое решение уместилось в 500 строк кода плюс ctools -plugin 70 строк. Никаких перестроек индекса, все на первичных ключах то есть фасеты по определению не будут работать быстрее.
3. Скорость - это один из важнейших критериев сео. После запуска модуля вышли на первую страницу Яндекса через пару недель. связь была очевидна.

Аватар пользователя sergeybelya sergeybelya 9 декабря 2016 в 18:50

natbampo wrote:

Например я сделал возможность создания "копий" блока, для чего был в друпале модуль Контекст помоему.

Реализовано в восьмерке

Аватар пользователя Studio VIZA Studio VIZA 10 декабря 2016 в 9:18
2

Ну сделал велосипед свой и что? Какое развитие он получит?

С веломоторчиком? Congenital Hypoplasia )) аа с аккумулятором. Круто-круто. Только коммерческий какой выхлоп с него будет, если на часы перевести, потраченные на работу и раскрутку.

Разрабу, кто будет перепиливать форум свой создавать што ле )))

Аватар пользователя natbampo natbampo 10 декабря 2016 в 9:44

Вы в друпале живете как под колпаком и о современных тенденциях в разработке программного обеспечения не секете ни йоты.

Аватар пользователя natbampo natbampo 10 декабря 2016 в 14:35

Ты может не в курсе, но Yii2 активно развивается, куча модулей и расширений есть и создается, все это на 100% совместимо с моей сборкой, что хочешь спокойно используй и улучшай под изменчивые требования бизнеса.
А насчет развития, ну так я вижу как commerce 2 развивается нешуточно, 2 года уже развивался, еще ,по твоим словам, годик поразвивается, а скорее и два и можно пробовать применять. А там гляди и друпал 9 нарисуется и цикл с разработкой коммерца стартанет по новой с нуля.

Аватар пользователя Studio VIZA Studio VIZA 10 декабря 2016 в 9:53
1

>.............................,.-'...................................'-.,
>.........................,/...............................................":,
>.....................,?......................................................\,
>.................../...........................................,,,,,,,,,,,,,,,,,}
>................./......................................................,:`^`..}
>.............../...................................................,:"........./
>..............?.....__.........................................:`.........../
>............./__.(....."~-,_..............................,:`........../
>.........../(_...."~,_........"~,_....................,:`........_/
>..........{.._$;_......"=,_......."-,_.......,.-~-,},.~";/....}
>...........((.....*~_......."=-._......";,,./`..../'............../
>...,,,___.\`~,......'~.,....................`.....}............../
>............(....`=-,,.......`........................(......;_,,-'
>............/.`~,......`-...............................\....../\
>.............\`~.*-,.....................................|,./.....\,__
>,,_..........}.>-._\...................................|..............`=~-,
>.....`=~-,_\_......`\,.................................\
>...................`=~-,,.\,...............................\
>................................`:,,...........................`\..............__
>.....................................`=-,...................,%`>--==``
>........................................_\..........._,-%.......`\

--------------------