Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Биржа статей (http://forum.sape.ru/forumdisplay.php?f=50)
-   -   Drupal: установка кода статей и изготовление шаблона (http://forum.sape.ru/showthread.php?t=48289)

ubuntu 09.03.2010 23:25

Drupal: установка кода статей и изготовление шаблона
 
  1. Добавление сайта:
    Переходим в раздел статьи, нажимаем "добавить площадку" и делаем все, как описано в пунктах 1-4
    Т.е. скачиваем указанный архив и копируем его содержимое в корень установки Друпала, не забывая выставить соответствующие права на папку с именем вашего хеш-кода.
    Если у вас мультисайтинг, то эта папка и файл "ваш хеш-код.php", будут работать для всех сайтов в этом каталоге Друпала.
    Кнопку добавить, пока не нажимаем.
  2. Установка кода для вывода анонсов:
    Для анонсов статей, я думаю, можно создать один блок, т.к. анонсы будут ссылаться на внутренние страницы вашего сайта.
    Для этого, добавляем новый блок в разделе "Блоки" (/admin/build/block)
    где заполняем поля:
    Описание блока - любое, вам понятное описание.
    Заголовок блока - то что будет выводится в заголовке блока анонсов.
    Текст блока - тут надо ввести следующий код:
    Код HTML:

    <?php
      global $sape;
      if (!defined('_SAPE_USER')){
        define('_SAPE_USER', 'ваш хеш-код');
      }
      require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
      $s['force_show_code'] = true;
      $sape_article = new SAPE_articles($s);
      echo $sape_article->
    return_announcements();
    ?>

    и указать формат ввода: "PHP code"
    Обратите внимание на строчку
    $s['force_show_code'] = true;
    в этом случае, при отсутствии анонсов, в месте, где стоит echo $sape_article->return_announcements(); будет выводиться чек код, который поможет более правильно проиндексировать ваш сайт системой, а так же проверить для себя, что вы все сделали правильно.
    С этой строчкой, блок должен появится на всех страницах сайта. Внутри блока, если посмотреть исходный код страницы, появится код <!--axxxxxxxxxxxx-->
    После индексации сайта системой, эту строчку лучше заменить на
    $s['force_show_code'] = false;
    тогда при отсутствии ссылок, блок выводится не будет.

    После этого, можно ввести URL вашего сайта, и нажать на кнопку "Добавить"
  3. Настройки площадки:
    Кодировка площадки - utf-8
    Разделитель анонсов - <br />
  4. Создание динамического шаблона:
    • Копируем index.php в articles.php и добавляем в его начало строчку:
      define('_SAPE_TPL', 'articles');
    • Редактируем в вашей схеме файл page.tpl.php
      Код HTML:

      <title><?php print $head_title ?></title>
      <?php print $head ?>

      меняем на
      Код HTML:

      <?php if ( defined('_SAPE_TPL') ): ?>
      <title>{title}</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <meta name="keywords" content="{keywords}" />
      <meta name="description" content="{description}">
      <?php else: ?>
      <title><?php print $head_title ?></title>
      <?php print $head ?>
      <?php endif; ?>

      Ниже, где выводится контент
      Код HTML:

      <h1 class="title"><?php print $title ?></h1>
      <?php print $content; ?>

      Меняем на
      Код HTML:

      <?php if ( defined('_SAPE_TPL') ): ?>
      <h1 class="title">{header}</h1>
      <div class="node"><div class="content">{body}</div></div>
      <?php else: ?>
      <h1 class="title"><?php print $title ?></h1>
      <?php print $content; ?>
      <?php endif; ?>

    articles.php и будет вашим шаблоном.

    В схеме конечно могут быть другие элементы оформления, но суть я думаю понятна.
  5. Маленькие хитрости
    Если вы хотите офрмить вывод анонсов более красиво, в соответствии со своей схемой, то используйте "Разделитель анонсов".
    Например, если анонсы надо оформить списком, то строчку [/HTML]echo $sape_article->return_announcements();[/HTML] замените на
    Код HTML:

    echo '<ul><li>' . $sape_article->return_announcements(); . '</li></ul>'
    а в разделителе анонсов, пропишите "</li><li>"

Avelon 11.03.2010 17:39

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

спасибо

shamaner 13.03.2010 01:50

а зачем $content ? чего нельзя модулек сделать на MENU_NORMAL_ITEM : MENU_CALLBACK; пользователю же лучше- нет гимора- жмяк и все готово.

Я не прав?

ubuntu 13.03.2010 21:09

Цитата:

Сообщение от shamaner (Сообщение 752366)
а зачем $content ? чего нельзя модулек сделать на MENU_NORMAL_ITEM : MENU_CALLBACK; пользователю же лучше- нет гимора- жмяк и все готово.

Я не прав?

Не прав.

shamaner 14.03.2010 17:02

Цитата:

Сообщение от ubuntu (Сообщение 753039)
Не прав.

уверен что калбэк меню не выведет статьи ? точно уверен? :D



и да. не прав в том что юзер любит гимор?

ubuntu 15.03.2010 20:16

Цитата:

Сообщение от shamaner (Сообщение 753575)
уверен что калбэк меню не выведет статьи ? точно уверен? :D
и да. не прав в том что юзер любит гимор?

1. Не прав, начиная с неграмотно поставленного вопроса. При чем здесь $content? Наверное вы хотели сказать, что если написать модуль, для вывода статей, некоторым ВМ, это будет проще?
2. Может вы предлагаете вариант вывода динамического шаблона, используя tickets.module, с помощью хука? Если да, прошу решение в студию.
3. Считаю свое решение, на данный момент, самым простым и минимальным по затратам к ресурсам сайта, так как оно реализовано в рамках шаблона.

P.S.Если shamaner предложит более простое решение в рамках того-же шаблона за счет хука, который позволит не трогать сам шаблон, полностью с ним соглашусь.

shamaner 28.03.2010 03:34

Цитата:

Сообщение от ubuntu (Сообщение 754704)
1. Не прав, начиная с неграмотно поставленного вопроса. При чем здесь $content? Наверное вы хотели сказать, что если написать модуль, для вывода статей, некоторым ВМ, это будет проще?
2. Может вы предлагаете вариант вывода динамического шаблона, используя tickets.module, с помощью хука? Если да, прошу решение в студию.
3. Считаю свое решение, на данный момент, самым простым и минимальным по затратам к ресурсам сайта, так как оно реализовано в рамках шаблона.

P.S.Если shamaner предложит более простое решение в рамках того-же шаблона за счет хука, который позволит не трогать сам шаблон, полностью с ним соглашусь.


Придумывать нечего-- уже все давно придумано же.




function show_articles() {
if (variable_get('setlinks_enable_articles', 0)) {
if (_myinclude('slarticles.php')) {
$art = new SLArticlesClient();
$art->Config->password = variable_get('setlinks_password', '');
$art->Config->cachedir = _sl_get_cache_dir();
$content = $art->getBody();
drupal_set_title($art->Config->title);
drupal_set_html_head('<meta name="description" content="'.$art->Config->description.'" />');
drupal_set_html_head('<meta name="keywords" content="'.$art->Config->keywords.'" />');
$b = array(
l(t("Home"), NULL)
);
if ($art->article_id) {
$b[] = l(t("Статьи"), variable_get('setlinks_article_path', SL_ART_PATH));
}
$b[] = $art->Config->title;

drupal_set_breadcrumb($b);

return preg_replace("/<h1.+?<\/h1>/si", '', $content);
}
} else {
//404
drupal_not_found();
}
}

function setlinks_menu_alter($items) {
$items[SL_ART_PATH]['type'] = variable_get('setlinks_enable_articles', 0) ? MENU_NORMAL_ITEM : MENU_CALLBACK;
}



внимательно посмотрите и сразу увидите откуда скопипастено. это для того чтобы скачать и глянуть оригинал.

Добавлено через 8 минут
И да если был резок извините. А насчет юзера- ему намного удобнее залил модуль пару раз кликнул и все. и ничего не изменять нигде.

Lotus7 28.03.2010 18:46

Все работает отлично как указал ubuntu в самом начале. Его схема - основа. И добавлено кое-что по дизайну. Спасибо!

Ветер 10.04.2010 13:25

Здравствуйте.

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

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

Итак, для использования этого решения необходимо:
1) скачать модуль и залить на хостинг с сайтом в распакованном виде в папку sites/all/modules. Ссылка на скачивание
2) установить модуль в админке (admin/build/modules)
3) зайти на страницу http://вашсайт/content/mytemplate или http://вашсайт/?q=content/mytemplate и убедиться, что модуль работает.
4) действовать по своему усмотрению =)

Пример генерируемого шаблона можно посмотреть здесь

Статист 17.04.2010 22:50

Есть вопросы по пункту 4 инструкции от ubuntu

Цитата:

Копируем index.php в articles.php и добавляем в его начало строчку:
О каком index.php идет речь? Тот что в корне установки друпал?

Цитата:

Редактируем в вашей схеме файл page.tpl.php
Как я понял это файл используемой темы?

Добавлено через 36 минут
У меня выдает ошибку: Cannot redeclare class SAPE_client in /каталог_сервера/хэш_код/sape.php on line 467

Я как-то победил эту ошибку, когда настраивал контекстные ссылки - но сейчас уже не помню.

И еще вопрос - можно ли заменить старый sape.php , установленный для ссылок, файлом из архива для статей и сделать общий каталог для ссылок и статей?

Добавлено через 8 часов 40 минут
Сам разобрался.

Просто нужно было скопировать новый файл sape.php и настроить все в один каталог.

Добавлено через 1 минуту
Остался еще один вопрос - articles.php нужно закрыть в robots.txt?

Добавлено через 1 час 3 минуты
Возник еще вопрос.

Добавил в .htaccess правила обработки урлов, однако при попытке ативировать пишет, что Шаблон не обрабатывается проверьте работоспособность правил mod_rewrite.

Вроде все проверил. В чем дело не пойму. Может быть какая-то хитрость или особенность?

Добавлено через 25 минут
Может это быть из-за того, что я папку сапы спрятал в files, а не в корень сайта?

Добавлено через 1 час 16 минут
Настроил папку сапы в корень сайта - все равно шаблоны урлов не активируются


Часовой пояс GMT +3, время: 17:37.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.