Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Евгений, вопрос к вам!

Сейчас очень популярно раскручивать сайт статьями, для чего на многих сервисах предлагают встроить код каталога в свою CMS. Как это сделать на Shopos. Спасибо.


так покажите код, который нужно встроить


Я так понимаю, что во этот код

<?php

class seozavr
{
var $version = '29';
var $password = 'ea1447471cfec27c4d96facc6bc88329';
var $encoding = 'windows-1251';
var $affiliateLink = '<a href="http://www.seozavr.ru/index.php?id=37485">Êàòàëîã ñòàòåé íà âàøåì ñàéòå</a>';
var $catalogURL = '';
var $catalogTitle = 'Ýòî èíòåðåñíî';
var $emptyCatalogTitle = 'Ïîäáîðêà ñòàòåé';
var $enableAffiliateLink = true;
var $leaveDeletedArticles = true;
var $title = '';
var $description = '';
var $keywords = '';

function setHeadParams()
{
if ($articles = @file_get_contents(dirname(__FILE__) . "/db.txt"))
{
if (($articles = @unserialize($articles)) && count($articles) > 0 && $articles['expire'] >= time())
{
$code = isset($articles['code']) ? $articles['code'] : 'articleId';
if (isset($_GET) && array_key_exists($_GET, $articles))
{
$this->title = $articles]['articleTitle'];
if (isset($articles]['articleDescription']) && !empty($articles]['articleDescription']))
$this->description = $articles]['articleDescription'];
if (isset($articles]['articleKeywords']) && !empty($articles]['articleKeywords']))
$this->keywords = $articles]['articleKeywords'];
}
elseif (!isset($_GET))
{
foreach ($articles as $articleId => $article) if (is_numeric($articleId) && !empty($article['articleThemeName'])) $articleThemes[] = $article['articleThemeName'];
if (isset($articleThemes) && is_array($articleThemes)) $articleThemes = @array_unique($articleThemes);
if (isset($articleThemes) && is_array($articleThemes))
$this->title = str_replace('{$themes}', implode(', ', $articleThemes), $this->catalogTitle);
}
}
}
if (empty($this->title)) $this->title = $this->emptyCatalogTitle;
}

function getHead()
{
if (empty($this->title)) $this->setHeadParams();
$content = '';
$content .= "<title>{$this->title}</title>\n";
if (!empty($this->description))
$content .= "<meta name=\"description\" content=\"{$this->description}\" />\n";
if (!empty($this->keywords))
$content .= "<meta name=\"keywords\" content=\"{$this->keywords}\" />\n";
if ($this->encoding == 'windows-1251')
return $content;
else
return iconv('windows-1251', $this->encoding, $content);
}

function getTitle()
{
if (empty($this->title)) $this->setHeadParams();
if ($this->encoding == 'windows-1251')
return $this->title;
else
return iconv('windows-1251', $this->encoding, $this->title);
}

function getKeywords()
{
if (empty($this->title)) $this->setHeadParams();
if ($this->encoding == 'windows-1251')
return $this->keywords;
else
return iconv('windows-1251', $this->encoding, $this->keywords);
}

function getDescription()
{
if (empty($this->title)) $this->setHeadParams();
if ($this->encoding == 'windows-1251')
return $this->description;
else
return iconv('windows-1251', $this->encoding, $this->description);
}

function showHead()
{
echo $this->getHead();
}

function getBody()
{
$content = '';
$code = 'articleId';
if ($articles = @file_get_contents(dirname(__FILE__) . "/db.txt"))
{
if (($articles = @unserialize($articles)) && count($articles) > 0 && $articles['expire'] >= time())
{
$code = isset($articles['code']) ? $articles['code'] : 'articleId';
if (isset($_GET) && array_key_exists($_GET, $articles))
{
$content .= "<h1 class=\"articleName\">{$articles]['articleName']}</h1>\n";
$content .= "<div class=\"articleText\">{$articles]['articleText']}</div>";
}
elseif (!isset($_GET))
{
$themes = array();
foreach ($articles as $articleId => $article)
{
if (is_numeric($articleId) && !empty($article['articleThemeName'])) $themes] = $article;
}
foreach ($themes as $theme => $articles)
{
$content .= "<div class=\"paragraph\">";
$content .= "<h2 class=\"articleThemeName\">$theme</h2>";
foreach ($articles as $articleId => $article)
{
if (strpos($_SERVER['REQUEST_URI'], '?'))
$content .= "<p class=\"articleLink\"><a href=\"{$_SERVER['REQUEST_URI']}&$code=$articleId\">{$article['articleName']}</a></p>";
else
$content .= "<p class=\"articleLink\"><a href=\"{$_SERVER['REQUEST_URI']}?$code=$articleId\">{$article['articleName']}</a></p>";
}
$content .= "</div>";
}
}
}
}
if (empty($content))
{
$content = "<!--seozavr_catalog-->";
}
if ($this->enableAffiliateLink && !isset($_GET)) $content .= '<br /><p class="promoLink">' . $this->affiliateLink . '</p>';
if ($this->encoding == 'windows-1251') return $content;
else return iconv('windows-1251', $this->encoding, $content);
}

function showBody()
{
echo $this->getBody();
}

function getList()
{
$content = '';
$empty = true;
if ($articles = @file_get_contents(dirname(__FILE__) . "/db.txt"))
{
if (($articles = @unserialize($articles)) && count($articles) > 0 && $articles['expire'] >= time())
{
$code = isset($articles['code']) ? $articles['code'] : 'articleId';
$empty = false;
$themes = array();
foreach ($articles as $articleId => $article)
{
if (!is_numeric($articleId)) continue;
if (strpos($this->catalogURL, '?'))
$content .= "<p class=\"articleLink\"><a href=\"{$this->catalogURL}&$code=$articleId\">{$article['articleName']}</a></p>";
else
$content .= "<p class=\"articleLink\"><a href=\"{$this->catalogURL}?$code=$articleId\">{$article['articleName']}</a></p>";
}
}
}
if ($empty)
{
if ($this->enableAffiliateLink) $content = '<p class="promoLink">' . $this->affiliateLink . '</p>';
$content .= '<!--seozavr_top-->';
}
if ($this->encoding == 'windows-1251') return $content;
else return iconv('windows-1251', $this->encoding, $content);
}

function showList()
{
echo $this->getList();
}

function postArticles($articles, $password)
{
if (md5($password) == $this->password)
{
$filename = dirname(__FILE__) . "/db.txt";

if ($oldArticles = @file_get_contents($filename))
{
if (!(($oldArticles = @unserialize($oldArticles)) && count($oldArticles) > 0)) unset($oldArticles);
else if (isset($oldArticles) && count($oldArticles) > 1) unset($oldArticles);
}

if(get_magic_quotes_gpc()) $articles = stripslashes($articles);

if ($newArticles = @unserialize($articles))
{
if (isset($oldArticles) && !empty($oldArticles))
{
$oldArticlesKeys = array_keys($oldArticles);
$newArticlesKeys = array_keys($newArticles);
$articlesForAddKeys = array_diff($newArticlesKeys, $oldArticlesKeys);
$articlesForRemoveLinksKeys = array_diff($oldArticlesKeys, $newArticlesKeys);
$articlesForReplaceKeys = array_intersect($newArticlesKeys, $oldArticlesKeys);
foreach ($articlesForReplaceKeys as $articleId)
{
if (!empty($newArticles))
{
if ($newArticles == 'delete') unset($oldArticles);
else $oldArticles = $newArticles;
}
}
foreach ($articlesForAddKeys as $articleId) $oldArticles = $newArticles;

foreach ($articlesForRemoveLinksKeys as $articleId)
{
if (!is_numeric($articleId)) continue;
if ($this->leaveDeletedArticles)
{
if (!isset($oldArticles['articleDeleted']))
{
$oldArticles['articleText'] = preg_replace("/<\/{0,1}a.*?>/i", '', $oldArticles['articleText']);
$oldArticles['articleDeleted'] = true;
}
}
else
{
unset($oldArticles);
}
}
$articles = serialize($oldArticles);
}
if (version_compare(PHP_VERSION, '5.0.0') < 0)
{
if ($fp = @fopen($filename, 'wb'))
{
if (@fwrite($fp, $articles))
{
@fclose($fp);
@chmod($filename, 438);
return 0;
}
else return 3;
}
else return 2;
}
else
{
if (file_put_contents($filename, $articles))
{
@chmod($filename, 438);
return 0;
}
else return 2;
}
}
else return 1;
}
else return 5;
}

function getParams($password)
{
if (md5($password) == $this->password)
{
$params = get_object_vars($this);
if ($articles = @file_get_contents(dirname(__FILE__) . "/db.txt"))
{
if (($articles = @unserialize($articles)) && count($articles) > 0)
{
foreach ($articles as $articleId => $article)
{
if (is_numeric($articleId) && !isset($article['articleExpire']))
$params['articles'][] = $articleId;
}
}
}
return serialize($params);
}
else return '';
}
}

if ((isset($_POST['articles']) || isset($_POST['articles0'])) && isset($_POST['password']))
{
$seozavr = new seozavr();
$articles = '';
$password = '';
if (isset($_POST['articles']))
{
$articles = $_POST['articles'];
$password = $_POST['password'];
}
elseif (isset($_POST['articles0']))
{
$password = $_POST['password'];
$i = 0;
while (isset($_POST))
{
$articles .= $_POST;
$i++;
}
}
echo $seozavr->postArticles($articles, $password);
}
elseif (isset($_POST['password'])) echo 6;

if (isset($_GET['params']) && isset($_GET['password']))
{
$seozavr = new seozavr();
echo $seozavr->getParams($_GET['password']);
}
?>


плюс еще требуется, как у них на сайте написано:
"# Добавьте следующий код внутрь тега <head></head>:
<?php include("c857675389eee83ff65c7f8cc580cc07a1e5c1db/seozavr.php"); $seozavr = new seozavr(); $seozavr->showHead(); ?>
# Добавьте следующий код внутрь тега <body></body>:<?php $seozavr->showBody(); ?>
# Добавьте на главную страницу текстовую ссылку на каталог статей.

Если вы не будете возражать я потом выложу на сайте с обменом статьями описание установки


Создать в корне папку с именем такого вида c857675389eee83ff65c7f8cc580cc07a1e5c1db
уточнить там где берете код

в эту папку положить файл seozavr.php с кодом который от <?php и до ?>

в media/content/ создать любой файл и поместить туда код
<?php
include ($_SERVER['DOCUMENT_ROOT']."/c857675389eee83ff65c7f8cc580cc07a1e5c1db/seozavr.php");
$seozavr = new seozavr(); $seozavr->showHead();

$seozavr->showBody();
?>

потом в админке Система-Инструменты-Информационные страницы
Новая страница

и в поле которое ниже текста - Если Вы загрузили свои файлы через FTP в папку media/content, Вы можете выбрать здесь файл.
выбрать тот файл который создали в media/content

по идее может заработает


Нет. Вру.

<?php include("c857675389eee83ff65c7f8cc580cc07a1e5c1db/seozavr.php"); $seozavr = new seozavr(); $seozavr->showHead(); ?>
надо поместить попробовать в themes/шаблон/javascript/general.js.php

или на крайняк куда-то в header.php. но попробуйте сначала в general.js.php
тогда в том файле, что в media/content/
просто вызывать
<?php
$seozavr->showBody();
?>


я щас потестирую и отпишусь тогда


Прошу прощения за глупый вопрос, что в итоге должно получиться - у меня пуста инф. страница,  сделала через вариант header.php


Откуда же мне знать, что должно получиться? Что-то наверно должно было выводить, если есть чему.
Как я понял что-то должно автоматом добавляться в db.txt который должен быть рядом с файлом seozavr.php

Если он пуст, то и выводится ничего не будет

Если вывод должен быть на всех страницах сайта, то надо еще бокс создавать или в index.html шаблона вставить
{php}
$seozavr->showBody();
{/php}
в то место, где хотите выводить


ок спасибо, в db пусто


Источник



Copyright ShopOS