Компоненты

+8
1.42K
В папочке "/components" лежат папочки соответствующие своим компонентам:
arhive
banners
blog
board
catalog
clubs
comments
content
faq
files
forms
forum
meetings
photos
polls
price
ratings
registration
rssfeed
search
subscribes
users

там же лежит шаблон-пример для создания нового компонента
frontend.template.php, который я привожу здесь, чтобы далеко не бегать
  1. <?php
  2. /*********************************************************************************************/
  3. // //
  4. // InstantCMS v1.5 (c) 2009 FREEWARE //
  5. // http://instantcms.ru/, info@instantcms.ru //
  6. // //
  7. // written by 2007-2009 //
  8. // //
  9. // LICENSED BY GNU/GPL v2 //
  10. // //
  11. /*********************************************************************************************/
  12. if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
  13.  
  14. function my_component(){
  15.  
  16. $inCore = cmsCore::getInstance(); //ядро
  17. $inPage = cmsPage::getInstance(); //страница
  18. $inDB = cmsDatabase::getInstance(); //база данных
  19.  
  20. $menuid = $inCore->menuId();
  21. $cfg = сmsLoadComponentConfig('my_component');
  22.  
  23. $id = $inCore->request('id', 'int', 0);
  24. $do = $inCore->request('do', 'str', 'view');
  25.  
  26. //Подключаем JS к странице
  27. $inPage->addHeadJS('components/my_component/js/common.js');
  28.  
  29. //Подключаем CSS к странице
  30. $inPage->addHeadCSS('components/my_component/css/styles.css');
  31.  
  32. //============================================================================//
  33. if ($do=='view'){
  34.  
  35. $inPage->printHeading('ЗАГОЛОВОК КОМПОНЕНТА');
  36.  
  37. $smarty = $inCore->initSmarty('components', 'com_mycomponent_view.tpl');
  38. $smarty->assign('menuid', $menuid);
  39. $smarty->display('com_mycomponent_view.tpl');
  40.  
  41. }
  42. //============================================================================//
  43.  
  44. } //end of component
  45. ?>
Короче, каждый рукописный компонент должен содержать в своей папочке файл "frontend.php" аналогичный шаблону.
После инициализации объектов "$inCore" (ядро), "$inPage" (страница), "$inDB" (база данных) можно использовать API этих объектов, который прописан в папочке "/core" в следующих файлах:
cms.php
classes/config.class.php
classes/db.class.php
classes/page.class.php
classes/plugin.class.php
classes/user.class.php

Сам API я планирую рассматривать в отдельном посте. Отмечу только, что вся основная работа по формированию контента (который потом выплевывается в HTML) ведется с объектом класса "page.class.php": прикручивание CSS и пр...

Также отмечу, что в папочке admin/components в аналогичной серии папочек по каждому компоненту лежат файлы backend.php. Результаты работы этого файла мы видим в админке движка при настройке соответствующего компонента...
--------------------------------------
Данный текст является обзорным и не является инструкцией по созданию своих компонентов.
Любые поправки и замечания приветствуются.
0
WALTERZ WALTERZ 13 лет назад #
Спасибо, полезно
0
lezginka.ru lezginka.ru 13 лет назад #
Львенок, может ты в обзоре покажешь, как вывести теги h1-h6 за пределы стилей(кодов).Это очень полезно для сео
0
Львенок Львенок 13 лет назад #
в 1.6.2 сходу не нашел, а в 1.7 в template/default/css есть файлик text.css. Там уже это вынесено.
0
lezginka.ru lezginka.ru 13 лет назад #
Львенок , это не ТО...
если ПС при индексации "видит" что h1-h6 "завернуты" в какой-либо код или стили их игнорирует, а это на порядок снижает сайт в ранжировании.
здесь на сайте, обсуждалась данная тема, но я не смог найти. мне кажется,вопрос очень актуальный.
0
Львенок Львенок 13 лет назад #
Я не совсем понял как именно нужно...
0
Alexneva Alexneva 13 лет назад #
Насколько я понял, вредно, когда так:
Код PHP:
<h1><div class="zagolovok">Заголовок</div></h1>
а если использовать так:
Код PHP:
<div class="zagolovok">
          <h1>Заголовок</h1>
</div>
Ведь по-любому у Вас будет текст с заголовками в камом-нибудь диве, как без этого?
+1
Львенок Львенок 13 лет назад #
то есть должен быть голый
Код PHP:
<h1>Заголовок</h1>
без ничего??
0
lezginka.ru lezginka.ru 13 лет назад #
да , именно так
+1
Львенок Львенок 13 лет назад #
можно просто присвоить стиль тэгу h1 и больше ничего не громоздить
в принципе в 1.7 для этого сделано достаточно. Надо просто посмотреть где вылазит лишнее присвоение класса в шаблоне и убрать это...
0
Alexneva Alexneva 13 лет назад #
Ну да, просто присвоить в css-файле определенный стиль, если устраивает одинаковое отображение заголовков на всех страницах. Или div снаружи, но не внутри <h1></h1>
0
googlebot googlebot 13 лет назад #
Вам ерунду сказали, свои стили css для тегов h1-h6 это повсеместная практика и никоим образом не влияет на ранжирование. Только если Вы будете текст писать цветом фона или близким, либо по-другому делать невидимым для пользователя, поисковики могут обратить внимание.
0
googlebot googlebot 13 лет назад #
Это относилось к посту lezginka.ru - промахнулся)
0
lezginka.ru lezginka.ru 13 лет назад #
Львенок вроде правильно понял.
если googlebot ты считаешь это ерундой, проведи элементарный эксперимент:
написал уникальнуюстатью и опубликовать на одном и том же сайте и выведи ссылки на главную:
1. как обычно в каталоге статей или раздел создать
2. сделать статичную(простую аштм страницу) и разместить в корень
догадайся ПС кого покажет по соответствующему запросу :)
0
Львенок Львенок 13 лет назад #
я тебе просто пример приведу:
лезешь в файл: templates/_default_/components/com_content_read.tpl
находишь там строчку сверху
Код PHP:
{* ======================= Заголовок статьи =============================== *}
{if $article.showtitle}
    <h1 class="con_heading">{$article.title}</h1>
{/if}
и правишь как тебе надо
пробегаешься по всем другим шаблонам и тоже правишь, как надо...
0
Львенок Львенок 13 лет назад #
только не забудь посмотреть что за стили там присваиваются и переназначить их тэгу h1
или сделать див с этим стилем уровнем повыше.
0
googlebot googlebot 13 лет назад #
Не хочу Вас ни в чем убеждать, просто посмотрите топ по любому конкурентному запросу, возьмем например сакраментальные "пластиковые окна" в Яндексе:
okna-glass.ru <h1 style="color: rgb(170, 170, 255);">Пластиковые окна</h1>
oknaru.ru <div style="padding: 20px;"><h1 align="center">Пластиковые окна ПВХ</h1> и даже еще есть h1 на странице
okna.ru вообще нет заголовка h1
windmaster.ru <h1 class="orng">"Индустрия Окон" - пластиковые окна, производство, продажа и установка окон из ПВХ-профилей KBE и Rehau в Москве</h1>

Еще от автора

Шаблоны и Стили. Что InstantCMS нам выдает...
Зайдите на страничку вашего сайта InstantCMS. Через контекстное меню откройте код HTML страницы... Понятно что-нибудь?? Сомневаюсь...
Шаблоны и стили. Пролог
Снова предварительный пост. Мы будем разбираться в задачах, с которыми мы будем сталкиваться при работе с шаблонами, и которые нам придется решать.
А что у нас за Яваскрипты в стандартном шаблоне???
Вот прежде чем начинать возиться со стилями компонентов и шаблона целиком будет полезно посмотреть, а что у нас в шаблоне за Яваскрипты подключаются..
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.