В SAPE прежде чем начать закупку ссылок, нужно добавить список текстов ссылок. В текстах нужно выделить, какая часть текста является ссылкой, например, вот так:
Предлагаем #a#автобусные экскурсии#/a# по Москве
тогда ссылкой будет текст «автобусные экскурсии».
Вот он и попросил меня написать скриптик, который будет выделять нужное словосочетание в нескольких текстах сразу, чтобы можно было их пакетно добавить в SAPE.
Скрипт я разместил по адресу http://blog.ilyaut.ru/sape/, уже можно пользоваться. Для тех, кто хочет разместить такой скрипт у себя на сайте, привожу код формы и сниппета.
Форма
[[!anchorGenerator]]
<form class="form-horizontal" action="[[~[[*id]]]]" method="post">
<fieldset>
<!-- Form Name -->
<legend>Генератор анкоров для SAPE</legend>
<!-- Text input-->
<div class="control-group [[+error.anchor:notempty=`error`]]">
<label class="control-label" for="anchor" style="width: 60px;">Запрос</label>
<div class="controls" style="margin-left: 70px;">
<input id="anchor" name="anchor" type="text" placeholder="автобусные экскурсии"
autocomplete="off" value="[[+anchor]]" class="input-xxlarge" style="width: 98%;">
</div>
</div>
<!-- Textarea -->
<div class="control-group [[+error.items:notempty=`error`]]">
<label class="control-label" for="items" style="width: 60px;">Анкоры</label>
<div class="controls" style="margin-left: 70px;">
<textarea id="items" name="items" style="width: 98%;">[[+items]]</textarea>
</div>
</div>
<!-- Button -->
<div class="control-group">
<div class="controls" style="text-align: center; margin-left: 70px;">
<button id="start" name="start" value="1" class="btn btn-primary">Старт</button>
</div>
</div>
</fieldset>
</form>
[[+result]]Сниппет anchorGenerator
<?php
if (!$_POST['start']) return;
foreach ($_POST as $key => $val) $modx->setPlaceholder($key,$val);
$error = false;
if (!$_POST['items']) {
$modx->setPlaceholder('error.items','1');
$error = true;
}
if (!$_POST['anchor']) {
$modx->setPlaceholder('error.anchor','1');
$error = true;
}
if ($error) return;
$anchor = $_POST['anchor'];
$items = $_POST['items'];
$anchorLen = strlen($anchor);
$items = explode("\n",$items);
foreach ($items as $key => $item) {
$item = str_replace(' ', ' ', $item);
$pos = strpos(mb_strtolower($item, 'UTF-8'), mb_strtolower($anchor, 'UTF-8'));
if ($pos === false) {
$item = '<span class="text-error">'.$item.'</span>';
$items[$key] = $item;
continue;
}
$item = substr($item, 0, $pos+$anchorLen).'#/a#'.substr($item, $pos+$anchorLen);
$item = substr($item, 0, $pos).'#a#'.substr($item, $pos);
$items[$key] = $item;
}
$output = implode("\n",$items);
foreach ($_POST as $key => $val) $modx->setPlaceholder($key,$val);
$modx->setPlaceholder('result','<hr>'.$output);
Объектная
может вы знаете как через htaccess укоротить адрес или хотя бы как убрать чужой домен в адресе, приобрел движок парсит музыку с открытых источников и иногда генерируются адреса в конце домен, адреса с чужим доменом например вот такой генерируется адрес, видимо потому что в файле названия есть домен
htt://site.com/music/load/Lorde-Royals_[www.music.com]
заранее благодарю