В 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]
заранее благодарю