- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Хоть и некорректно сравнивать CMS и фреймворки, на Джанге реально намного проще писать
Пример не на чистой Джанго, а на CMS Wagtail, которая основана на Джанго, с приятной простой админкой - аля вордпресс, и практически без каких-либо ограничений и с деревом объектов.
---------- Добавлено 29.11.2016 в 11:32 ----------
Если я правильно понял вопрос.
Нужно просто на базе имеющегося типа материала создать новый тип с тем же самым функционалом, только с дополнительным полем или методом. Я привел пример, как это можно сделать в три строчки кода без какого-либо избыточного дублирования.
---------- Добавлено 29.11.2016 в 11:36 ----------
<?php add_post_meta($post_id, $meta_key, $meta_value, $unique); ?>
Глянул справочник. Нет, это не то. Эта функция просто добавляет поле в имеющийся тип. А мне надо создать новый тип на базе имеющегося, т.е. с наследованием всех его плюшек.
borisd, Почитал про Wagtail - впечатляет, надо перенести попробовать один чисто джанговский проект под него, главным образом из-за админки
Нужно просто на базе имеющегося типа материала создать новый тип с тем же самым функционалом, только с дополнительным полем или методом. Я привел пример, как это можно сделать в три строчки кода без какого-либо избыточного дублирования.
В ВП доп поля (произвольные) - штука почти интеллектуальная :) Они есть дефолтно. Возможности ими воспользоваться точнее.
Вот как это дефлтно выглядит в админке (с ранее созданными неск поями):
Заполнил название (/выбрал его из комбобокса) и значение - всё, в базу упало привязаное к посту.
Нет - значит нет.
Создание же нового типа контента как-то так:
function create_post_type() {
register_post_type( 'acme_product',
array(
'labels' => array(
'name' => __( 'Products' ),
'singular_name' => __( 'Product' )
),
'public' => true,
'has_archive' => true,
)
);
}
В массиве можно сразу указать что [не]наследовать ну и задать названия.
В реальности же есть масса плагов, с пом которых создание новых типов со всеми атрибутами делается прямо из админки в неск кликов.
А вот нек. программисты считают использование ООП везде и всюду разновидностью религии .
ООП не панацея, и все же, если бы в ВП использовали хоть какие то паттерны проектирования, проблема с обратной совместимостью были бы решены. ИМХО
Sly32, Очень приятный движок. У меня самопис был построен на подобных принципах (дерево и т.д.), но самопис так и остался сделанным на коленке, т.е. я могу использать его только для своих нужд. А тут наткнулся на похожее решение, но уже из коробки и поддерживаемое сообществом.
Правда сыроват, т.к. находится в стадии активного развития. Но все проблемы, что у меня возникли, я решил. Прикрутил кастомные фильтры изображений, colorbox и т.д.
Кстати, там основная поисковая система - elasticsearch. Крайне рекомендую попробовать. Правда пришлось повозиться с настройкой, так как многие возможности эластиксёча еще не реализованы нативно в вагтэйле, но я уже прикрутил русскую морфологию и вывод поисковых сниппетов с подсветкой искомых слов. Протестировал на паре миллионов документов среднего размера. Индексация на шестиядерном интеле заняла всего 50 минут. Сам поиск идет субъективно около 1 секунды (точно не замерял).
Там из коробки и
если бы в ВП использовали хоть какие то паттерны проектирования,
Серьёзно?🍿
проблема с обратной совместимостью были бы решены.
А их сосбно нет :) Может как раз благодаря "отсталой архитектуре"?
Я напр. не знаю ни одного др двига, где проблемы перехода с версии на версию были бы настолько... не проблемны.
Да, что бы совсем без проблем - оно, конечно, не обходится. Но это, как правило, какие-то локальные проблемы (хотя может и относительно массовые), связанные то с настройками конкретного хостинга, то совместимости тем/плагинов. Но что немаловажно - эти проблемы решаются достаточно оперативно. Если не ядром, то плагинами.
SeVlad, спасибо за пример.
Мне анекдот вспомнился:
"Стюардесса в салоне нового лайнера объявляет о то, что находится в самолете:
- На первой палубе - багаж, на второй - бар, на третьей - поле для гольфа, на четвертой бассейн.
И добавляет:
- А теперь, господа, пристегнитесь. Сейчас со всей этой фигнёй мы попробуем взлететь."
Как я понял, в WP тот же принцип создания полей, что и создание пользовательских полей в друпале. Т.е. для каждого поля создается отдельная таблица. Это конечно гибко, но громоздко и непроизводительно - при рендеринге объекта приходится дергать все эти таблицы в БД. Я всё же в большинстве случаев предпочитаю хранить все поля материала в одной таблице типа материала. Это прозрачно и работает быстро и надежно. Недостаток - новое поле надо в коде ручками прописывать (1 строку), а не в админке создавать.
хранить все поля материала в одной таблице типа материала
О, счас еще один холивар подоспеет. Это вы зря, конечно.
borisd, Нет. Произвольные поля ВСЕ храняться в отдельной таблице и при большом их количестве начинается беда с сзапросами к базе. Аналог твоего примера в ВП есть - произвольные типы полей, с наследованием возможностей основного типа. В плане Джанги я не очень понимаю зачем это, точнее в плане Вагтэйл.
Я, создавая модель постов в Джанге, добавляю FK - категорию, раздел. А потом вывожу содержимое, при необходимости фильтруя по этому полю. Все предельно просто.
при рендеринге объекта приходится дергать все эти таблицы в БД.
"Все" - это все 2 шт :) Причём они и так дёргаются, потому как в одной табл - контент, в др. ВСЕ его данные/зависимости.
Причем дёргаются один раз (если по уму делать, а не как в "премиальных" темах). Ибо WP_Query.
Недостаток - новое поле надо в коде ручками прописывать (1 строку), а не в админке создавать.
В админке.. Я даже скрины показал.