Разработка компонента и плагина "SEO pages". Обсуждение.
Нужна ли разработка?
Вынашиваю идею и частично начал реализовывать компонент и плагин "SEO pages". Хотелось бы узнать нужно ли и если нужно, то выяснить хотелки и кое-что добавить уже на этапе разработки.
Итак, примерно объясню какие стоят задачи.
1. Для любой страницы любого компонента(!!!) возможность переопределения урл. Не секрет, что ЧПУ есть не во всех компонентах. Данная возможность позволить ввести ЧПУ для таких страниц. Например, есть ури "/catalog/item7.html". Для него назначаем ури переопределения "/catalog/subaru.html". При этом при переходе по первому ури будет 301 редирект на второй(ури меняется). При переходе по второму будет реврайте(второй ури подменяется первым и грузится нужная страница компонента), при этом второй ури в адресной строке сохраняется. В итоге, получаем то, что нужно. "/catalog/item7.html" будет отдавать 301 редирект на "/catalog/subaru.html", а страница всегда будет доступна по адресу "/catalog/subaru.html".
Данная возможность будет реализовываться за счет файла custom_rewrite.php, возможность применения которого заложена в системе. Такого же эффекта можно добиться вручную создав этот файл и отредактировав. В рамках компонента будет возможность редактирования с админки.
Так влегкую потестировал. Вроде всё работает. Но нужно будет ещё покопаться. Есть некоторые нюансы. Например, ури переопределения всегда будет содержать название компонента("/catalog/subaru.html"), иначе не получается...
2.Для каждой страницы дать возможность переопределения title, meta-keys, meta-description. Эту задачу выполняет плагин. Сами сео-параметры можно будет ввести в админке, на той же странице, где переопределяем ури.
То есть для пользователя будет админка компонента, наподобие админки "Вопросов и ответов". Где создаем новую seo-страницу. Указываем какая страница какого компонента будет меняться(вводим действующий ури), и далее по необходимости заполняем поля: ури переопределения, тайтл, ключевые слова и дескрипшен. Не один из полей не является обязательным. Если какое-то поле не указано, то этот параметр остается как для действующей страницы.
В админке будет возможность, отредактировать уже созданную seo-страницу, удалить, отключить работу… Ну, как в обычных компонентах. Будет ещё фильтр по компонентам. Для удобства работы можно будет отфильтровать seo-страницы по одному компоненту.
Сам компонент нужен только из-за админки. Фронтендовой части не будет.
Ну, примерно так я вижу это всё. Никакой автоматики не будет. Каждую нужную страницу нужно будет отредактировать вручную. Разработка не для лентяев ))) А для тех, кто готов работать для блага своего сайта.
Сразу же вопрос. Доступ к компоненту должны иметь все админы или только главный админ?
В общем, критикуем, предлагаем, обсуждаем, ругаемся, спорим… Сеошники налетай, свежее мясо! )))
По срокам. Лето… Хоть работы вроде бы предстоить и не очень много, плотно работать возможности нет. В день от силы 1-2 часа, иногда и того нет. Через 1-2 недели уезжаю в отпуск недели на 3, возможности заниматься вообще не будет. Поэтому, постараюсь успеть до отъезда. Если не успею, значит придется подождать 1-1,5 мес. Как то так.
А компонент вещь хорошая! Удачи в разроботке!
Я не волшебник, я только учусь . Да и шкура неубитого медведя ещё )Марат, волшебник!
В обшем, вырисовывается такая картина. Со второй частью(тайтлы, ключевые слова) проблем не должно быть.
Сложнее с первой частью. С реврайтами. Для тех компонентов, где нет ЧПУ(каталог, фак, клубы, фото, объявления, фото...), будет работать. В чем и заключается основная задача. Проблема с компонентами, где уже есть чпу. Там где в ури присутствует дерево категорий, переопределить получится только ури самой статьи, вернее часть ури, соответствующий названию статьи. Написал статьи, потому что это компонент статей. Хотя для компонента статей не имеет смысла применять реврайт. Там это можно сделать при редактировании статьи(задать ури). Поэтому, считаю, что просто нужна проверка и если это "статьи", то запретить переопределение ури.
Блоги. Тут тоже не получится просто. Ури поста блога содержит название блога. Но ури поста блога нигде не получится переопределить в стандартном движке. Можно сделать проверку на "блоги" и сделать переопределение ури поста со включением названия блога. Только вот нужна ли эта возможность? Может, как в статьях, просто запретить? Такой вот вопрос.
Второй момент. На некоторых компонентах возможна некорректная работа. Если где будет проверяться какое-то условие по $_SERVER['REQUEST_URI'], потому как он у нас переопределенный. Пока не замечал где, но теоретически возможно. Всё простестить одному нет возможности. Поэтому придется сделать, потом уже тестить сообща.
а почему бы не отключить такие компоненты из обработки ?Проблема с компонентами, где уже есть чпу.
----------------------------------
хотелки
одной кнопкой — вводить на странице тег "не индексировать"
количество слов/знаков, тошнота и т.д.
показать по каким фразам страница в индексе и на каком месте(хоть есть сервисы, но все же)
высвечивание ключей в тексте
возможность сканировать апи я.метрики
Это можно сделать. Весь контент генерируемый компонентом на странице заключать в теги <noindex></noindex>. А как быть с контеном модулей? А чтоб полностью страница не индексировалась, нужно редактировать robots.txt с админки. Это чревато последствиями. Не стоит делать. Или есть ещё способы, чтобы убрать индексацию? И по <noindex></noindex> отпишитесь, кто знает. Нужно ли, и правильно ли?одной кнопкой — вводить на странице тег "не индексировать"
lezginka.ru, без обид. Этого не будет:
Во-первых, в таблице компонента будут не все страницы. А только те, которые добавите сами вручную. То есть статистику можно будет посмотреть только по этой странице. А если делать, чтобы можно было посмотреть все страницы, это уже совсем другой компонент )количество слов/знаков, тошнота и т.д.
показать по каким фразам страница в индексе и на каком месте(хоть есть сервисы, но все же)
высвечивание ключей в тексте
возможность сканировать апи я.метрики
Во-вторых, это будет большое усложнение проекта. На первоначальной версии однозначно не будет. Возможно в будущем.
Опять же SJen уже вроде бы пишет подобное. Так что, в рамках данной разработки, наверно, лучше не стоит.
В компоненте всё равно придется каждую страницу переделывать руками. Может немного удобнее и проще. Автоматики никакой. Не исключено, что в будущем можно будет немного автоматизировать. Например, по шаблону. Идея, конечно интересная. Но это в будущем.А то давно уже мучаюсь "руками" все переделываю :(
Основное вроде готово. Тестировал только на локалхосте, по ходу работы.
Один маленький нюанс. Придется ввести небольшое изменение в файл ядра /core/cms.php. Находим строку примерно 1723, это в блоке public function proceedBody(){}
$is_component = false;
$is_component = true;
Далее скачиваем архив, заливаем на сайт. Устанавливаем компонент seo-page, устанавливаем плагин seo-page, включаем плагин. Чтобы добавить seo-страницу, идем в админку компонента и нажимаем кнопку добавить. Админка идетнична другим компонентам. Разберетесь. В админке есть пояснилки.
Кроме того, что указано в первом моем посте, добавлена быстрая ссылка на редактирование с фронтенда. Только её надо включить в админке плагина. И с любой страницы компонентов можно будет перейти сразу в добавление или редактирование в админку(в отдельной строке).
Важно Рекомендую пока испробовать на реалхосте, но не рабочих сайтах. Мало ли что. Перед установкой и тестированием сделайте резервную копию файлов и бд. Еще один важный момент. В корень сайта добавляется файл custom_rewrite.php. Если у кого уже этот файл существует, смержите или просто удалите с архива этот файл перед заливкой на сервер.
Скачать можно здесь. Об ошибках или если что-то непонятно, отпишитесь…
Всем спасибо!
зы. забыл написать. URI замены(на который меняем) может и не содержать название компонента и любого уровня вложенности. Таким образом можно изменить ури любой страницы, главное, чтобы это страница была связана с каким-нибудь компонентом.
вопрос? а можно сделать возможность использования маски? например в урл вида /catalog/item35.html менять только /catalog/?*
ещё раз спасибо!
Огромный плюс, что вы взялись Марат за это.
если это про меня? скиньте конечно, интересно будет посмотреть.Если пригодится могу скинуть вам.
Да. Думаю можно будет. Думал об этом. До паблика постараюсь приделать.вопрос? а можно сделать возможность использования маски?
Что-то мало желающих потестировать. Никому не нужно что ли? Или все ждут уже полностью проверенного варианта.
Еще рано, вы выложили после двенадцати практически, в рабочий день, народ не сильно готов к труду над восстановлением собственных ресурсов😊в случае возникновения проблем. Думаю в течении дня сегодня народ распробует, осмыслит и отпишется… Я вот только скачал и собираюсь ставить :)Что-то мало желающих потестировать. Никому не нужно что ли?
Забавно… Сделал все согласно приведенных выше инструкций и при попытке залогиниться пользователем\редактором\админом выдает "страница не найдена". Если убрать файлик (custom_rewrite.php) из корня то сразу все начинает фунциклировать нормально. Вот собственно…