Публикации

Форумы

Плагин «Статьи» (Article)
 

Плагин «Статьи» (Article)

1 2 3 4  
Модераторы: Real, net1313, Predator, Kapman
Автор Добавил
Offline Real
17.12.13 - 18:39
Real

Сообщений: 1236
Суть затеи: и
Демо в клубной песочнице Demo-user/pass: demo/demo
Возможности:
  • Полноценное СЕО: ЧПУ, мета, титлы, заголовки, дескрипшены и т.д. (пока не стал заморачиваться на микро-разметку, легко приладить)
  • Неограниченная вложенность категорий. Пример:
  • Для каждой категории назначается:
    • уникальные шаблоны подкатегорий и статей
    • редактор текста статей: нет / бб-коды / визвиг(если установлен мой плагин, оригинальный я похоронил - убогий он)
      пример обработки текста с выключенными ббкодами тут:
    • права (через классы) пользователей читать/писать/модерировать

  • Визивиг редактор сделан отдельным плагином и тоже на выбор: CKEditor, TinyMCE и т.д.
  • Работа с картинками через KCFinder - это отдельный плагин, он уже обсуждался тут на форуме
    - у каждого юзера своя папка /USERID/images/
    - добавил пару новых ббкодов, демо тут:

TODO:
  • для каждой категории сделать выбор поля для ЧПУ.
    Сейчас работает поле `sef`- это не всегда приемлемо. Варианты: `id_sef`, `sef_id`, `id` и т.д.
  • решить как быть с изображениями: значок и фото для каждой статьи/категории - делать ли отдельный аплоад, или KCFinder'a будет достаточно...


После обкатки в песочнице выложу в свободный доступ.


Всё, что существует на свете, когда-то было мечтой.
Вернуться наверх
Популярность сообщения: 2
Рекламный блок
VPS
Наверх

Offline darkd
22.12.13 - 13:37
darkd

Сообщений: 469
Супер. Ждем!



Аренда автомобилей, кемперов, мотоциклов по всему миру. Автотуры по Европе. Разработка маршрутов. Караванинг. Визы автотуристам. Бронирование отелей, паромов.
Партнерская система по аренде автомобилей (Вопросы в личку)
Вернуться наверх
Сайт
Популярность сообщения: 1
 
Offline Real
05.08.14 - 18:35
Real

Сообщений: 1236
Давече занялся рефакторингом. Кое что оптимизировал.
В итоге сам плагин делает 5, 7 или 3 запросов к БД при выключенном кеше*
* с включёным кешем - ноль запросов, только один запрос счётчика просмотров статьи

5 запросов при просмотре корня /content/
  1. //      Все категории (в один запрос)
  2.         SELECT * FROM `pref_art_cat` ORDER BY `cat_parent` ASC, `cat_order` ASC
  3.  
  4. // x    Счётчик дочерних категорий
  5.         SELECT COUNT(*) FROM pref_art_cat WHERE `cat_parent`='0'
  6.  
  7. //      Счётчик дочерних статей
  8.         SELECT COUNT(*) FROM pref_art_art WHERE `art_parent`='0'
  9.  
  10. // x    Ищем категории дочерние к '0' категории
  11.         SELECT * FROM `pref_art_cat` WHERE `cat_parent` = '0' ORDER BY `cat_order` ASC
  12.  
  13. //      Ищем статьи дочерние к '0' категории
  14.         SELECT * FROM `pref_art_art` WHERE `art_parent` = '0' ORDER BY `art_order` ASC LIMIT 0,1
  15. // знаком [x] обозначены запросы которые можно заменить на php обработку массива


7 запросов при просмотре любой категории /content/stat-i/
  1. //      Все категории (в один запрос)
  2.         SELECT * FROM `pref_art_cat` ORDER BY `cat_parent` ASC, `cat_order` ASC
  3.  
  4. // x    Ищем категорию по SEF
  5.         SELECT * FROM `pref_art_art` WHERE `art_sef` = 'stat-i'
  6.  
  7. //      Ищем статью по SEF
  8.         SELECT * FROM `pref_art_cat` WHERE `cat_sef` = 'stat-i'
  9.  
  10. // x    Счётчик дочерних категорий
  11.         SELECT COUNT(*) FROM `pref_art_cat` WHERE `cat_parent`='3'
  12.  
  13. //      Счётчик дочерних статей
  14.         SELECT COUNT(*) FROM `pref_art_art` WHERE `art_parent`='3'
  15.  
  16. // x    Ищем категории дочерние к '3' категории
  17.         SELECT * FROM `pref_art_cat` WHERE `cat_parent` = '3' ORDER BY `cat_order` ASC
  18.  
  19. //      Ищем статьи дочерние к '3' категории
  20.         SELECT * FROM `pref_art_art` WHERE `art_parent` = '3' ORDER BY `art_order` ASC LIMIT 0,1
  21. // знаком [x] обозначены запросы которые можно заменить на php обработку массива


3 запроса при просмотре статьи /content/stat-i/some_article/
  1. //      Все категории (в один запрос)
  2.         SELECT * FROM `pref_art_cat` ORDER BY `cat_parent` ASC, `cat_order` ASC
  3.  
  4. //      Ищем статью по SEF
  5.         SELECT * FROM `pref_art_art` WHERE `art_sef` = 'some_article'
  6.  
  7. //      Счётчик просмотров (если включен, и если смотрит не [автор или модератор])
  8.         Что-то типа `art_views` = `art_views` + 1 WHERE `art_id` = '{$aid}'

Вопросы:
1. имеет-ли смысл заменить 2-3 простых запроса (SELECT) на php обработку массива?
2. Что будет легче для сервера?
3. Блиц: Кто виноват, что делать и едят-ли курицу руками?

Мне кажется, что оптимальнее оставить SQL запросы.


Всё, что существует на свете, когда-то было мечтой.
Вернуться наверх
Популярность сообщения: 2
 
Offline Predator
05.08.14 - 19:42
Predator


Сообщений: 4022
– Цитата: 
Что будет легче для сервера?
Надо, как-то испытать, что даёт меньшую нагрузку


Я не матерюсь, а всего лишь употребляю ненормативную лексику в целях более полного и лаконичного выражения своих эмоций.
Вернуться наверх
Популярность сообщения: 0
 
Offline net1313
05.08.14 - 23:45
net1313


Сообщений: 2711
– Цитата: 
имеет-ли смысл заменить 2-3 простых запроса (SELECT) на php обработку массива?

нет, не имеет.

– Цитата: 
Что будет легче для сервера?

вопрос не в тему. зависит от сервера. да тут можно целую статью написать. в том числе и об оперативной памяти и качестве железа и ....


Очень Добрый Админ
Жизнь в целом не такая уж и хуёвая штука, хотя конечно неплохо было бы если бы в ней было всё совершенно по-другому.
Вернуться наверх
Популярность сообщения: 1
 
Offline Real
29.08.14 - 09:19
Real

Сообщений: 1236
Почти полностью переписал плагин "Статьи"- ага, это сенсация, учитывая, что прежний код видели 1,5 землекопа вполглаза.

Изменил ЧПУ

Что теперь как:
  • по прежнем неограниченная вложенность категорий
  • настройки SEF-алиаса для корня статей теперь не надо прописывать в htaccess - этим занимается отдельный плагин-диспетчер
  • добавил html суффикс к статьям и служебным страницам
  • допустимы дубли в URL
    site.ru/a/b/b/b/article.html - откроет корректно и правильную статью
    site.ru/a/b/article.html - откроет правильную статью
    так-же и с категориями, и служебными страницами
  • ограничения на дубли есть: НЕдопустимы дубли алиасов в одной любой категории. Касается статей и подкатегорий
  • отыграл "пару" запросов к БД
  • служебные страницы теперь имеют своё СЕО - гугл-вебмастер теперь не будет надоедать: "Дублирующиеся описания и заголовки страниц"
  • многие методы сделал проще (кода меньше ...вроде-бы)


p.s. в песочнице еще ничего не обновлял, т.к. есть много изменений в файлах ядра и других плагинах - визивиг(и), файловый менеджер, ббкоды, шаблоны сайта и админки - всё и не упомню




Всё, что существует на свете, когда-то было мечтой.
Вернуться наверх
Популярность сообщения: 1
 
Offline Predator
29.08.14 - 09:39
Predator


Сообщений: 4022
Real: Когда тестировать будем?


Я не матерюсь, а всего лишь употребляю ненормативную лексику в целях более полного и лаконичного выражения своих эмоций.
Вернуться наверх
Популярность сообщения: 0
 
Offline Real
29.08.14 - 09:56
Real

Сообщений: 1236
Predator есть ряд диллем:
  • как лучше сделать интеграцию визивигов со статьями и файловым менеджером (интеграция js & css файлов и инлайн-кода )
  • таки дошли руки и я переделал родные ббкоды - они теперь в модальных окнах (бустрапа). Плюс сильно оптимизировал их html и js код.
  • сделал шикарные ббкоды для файлового менеджера - заменил им родные ббкоды для вставки флеша и файлов, и любое кол-во мини-галерей / каруселей и т.п. Screen 1 и Screen 2
  • файловый менеджер - надо как-то придумать лимит для пользователей. Например, папка с фото - макс. 4МБ
  • админские header и footer файлы - надо их объединить в один с публичными header_default и footer_default, потому как подключение js и css всё еще геморно
  • подключение js и css - отдельная песня
  • плагин-диспетчер ЧПУ - думаю, как-бы туда приладить еще и старые плагины типа форума по методу fanat1k`a
  • ну и для статей не помешал-бы html-кеш, потому как двжковые парсеры типа toHTML очень php нагружают - там невероятное кол-во процессов




Всё, что существует на свете, когда-то было мечтой.
Вернуться наверх
Популярность сообщения: 0
 
Offline Predator
29.08.14 - 11:35
Predator


Сообщений: 4022
Сообщение от Real... 
Predator есть ряд диллем:
как лучше сделать интеграцию визивигов со статьями и файловым менеджером (интеграция js & css файлов и инлайн-кода)
Пока на работе, нет особо времени, потом в чате обсудим-подумаем, что, как и зачем...

Сообщение от Real... 
таки дошли руки и я переделал родные ббкоды - они теперь в модальных окнах (бустрапа). Плюс сильно оптимизировал их html и js код.
Вот это то, что нужно! Сто лет назад надо было сделать в модальные окна (камень не в твой огород, а сам знаешь в чей).

Сообщение от Real... 
сделал шикарные ббкоды для файлового менеджера - заменил им родные ббкоды для вставки флеша и файлов, и любое кол-во мини-галерей / каруселей и т.п. Screen 1 и Screen 2
Хорошо смотрится

Сообщение от Real... 
файловый менеджер - надо как-то придумать лимит для пользователей. Например, папка с фото - макс. 4МБ
Проверять по ID пользователя и выставлять лимит. Думаю, что как-то так

Сообщение от Real... 
админские header и footer файлы - надо их объединить в один с публичными header_default и footer_default, потому как подключение js и css всё еще геморно
Думаешь стоит объединять в один, тут надо бы подумать хорошенько, взвесить все «За» и «Против»

По-остальным вопросам, тоже в чате обсудим, вечером, если не уеду в коммандировку, зайду в чат...



Я не матерюсь, а всего лишь употребляю ненормативную лексику в целях более полного и лаконичного выражения своих эмоций.
Вернуться наверх
Популярность сообщения: 1
 
Offline Real
29.08.14 - 13:03
Real

Сообщений: 1236
– Цитата: 
Проверять по ID пользователя и выставлять лимит. Думаю, что как-то так
Спасибо Кэп, и как я сам не догадался. Размер папки придётся "взвешивать" рекурсивно - под-папки могут быть. Операция взвешивания, тем более рекурсивная - затратна. Вот и призадумался: как-бы и рыбку съесть и папки беспалева измерять.
– Цитата: 
Думаешь стоит объединять в один, тут надо бы подумать хорошенько, взвесить все «За» и «Против»
тут и думать нечего, их отдельное существование - идиотизм (95-99% дублирование кода). Но там рутины много и ковырять их скучно.



Всё, что существует на свете, когда-то было мечтой.
Вернуться наверх
Популярность сообщения: 1
 
1 2 3 4  
Плагин «Статьи» (Article)

Перейти:  Вернуться наверх