LiveStreet - первое общение.

Всем привет!
Давно хотелось обновить заброшенную фотожабу.
И сидя вечером перед компьютером, читая хабру наткнулся на пост о выходе livestreet 0.3. Ну что же? Скачал, поставил — порадовало. Сразу пошла «заточка» под свои нужды.
Первое, с чем столкнулся — не хватало так называемого watermark. Его я быстренько реализовал, после чего нашел пример на этом сайте =) Далее нужно было прикрутить туда highslide. О том, как сделал подробно описывать не буду, т.к. уже тоже есть готовые решения. Скажу кратко.
Сначало при генерации ссылки добавил туда onclick=«return hs.expand(this)». И жутко обломался, т.к. после отправки поста с такой ссылкой onсlick обрезался. Хотелось разрешить этот параметр, но вовремя понял, что в таком случае туда можно засунуть любой левый JS код. Потом была мысль добавить свой собственный параметр к ссылке, ну например
<a href="бла бла" highslide> 
и при отпарисивании поста заменить его на нужный onclick. Но т.к. уже было поздно и хотелось спать, ковыряться в том, как это работало было попросту лень и я поступил по другому. Благо уже был прикручен jQuery с плагином pngFix, чтобы PNG логотип корректно отображался в ИЕ6.
В общем я при генерации кода с масштабируемым изображением добавил атрибут title=«highslide» и добавил в хедер следующий код:
jQuery('a[title="highslide"]').click(function(){return hs.expand(this)});


Не могу не сказать про некоторую особенность при подключении jQuery. Т.к. в движке используется MooTools, то для того, чтобы избежать конфликта в глобальном пространстве имен нужно обязательно добавить строку
jQuery.noConflict();
и использовать имя jQuery вместо идентификатора $. В итоге JS код, касающийся jQuery был таков:

{literal}
jQuery.noConflict();
  jQuery(document).ready(function(){ 
        jQuery(document).pngFix(); 
	  jQuery('a[title="highslide"]').click(function(){return hs.expand(this)});
    }); 
{/literal}

Может быть это можно было реализовать с помощью MooTools, который, повторюсь, уже используется в движке, и не грузить дополнительных библиотек, но увы — я с ним не общался и уж больно полюбил jQuery. Итак, масштабирование при помощи highslide заработало!
Осталось решить его две проблемы, на которые я успел наткнутся:

1. SEO фишка по закрытию внешних ссылок (noindex, nofollow) закрывала все, абсолютно все ссылки, которые публикует автор! А мне хотелось, чтобы закрывались только внешные линки, а внутренние оставались как есть.
Как я это сделал:
В Файле /classes/modules/sys_text/Text.class.php
Закомментировал следующий код (можно просто удалить):

if (BLOG_URL_NO_INDEX) {
			          $this->oJevix->cfgSetTagParamsAutoAdd('a',array(array('name'=>'rel','value'=>'nofollow','rewrite'=>true)));
}


И в паблик методе MakeUrlNoIndex() заменил
return preg_replace("/(<a .*>.*<\/a>)/Ui","<noindex>$1</noindex>",$sText);

на
return preg_replace('#<a([^<]*)href=["\']http://(?![a-z0-9.-]*'.quotemeta($_SERVER['HTTP_HOST']).'\/)([^"\']*)["\']([^<]*)>(.*)</a>#ismU','<noindex><a$1href="http://$2"$3 rel="nofollow">$4</a></noindex>', $sText);


2. Следующий дискомфорт вызвало добавление нескольких картинок. При добавлении каждой новой форма с добавлением изображения не сбрасывалась. Ладно, когда я загружал файлы со своей машины, а когда указывал URL откуда картинку скачать, то каждый раз его удалять было очень не удобно. И описание файла тоже не стиралось. Решил проблему следующим образом. В файл /templates/skin/new/js/other.js в конец функции hideImgUploadForm() добавил строчку
document.getElementById('form_upload_img').reset();
и появилось мне счастье:)

В ближайшем будущем, если дойдут руки, планирую сделать массовую загрузку изображений. Сделаю — поделюсь)
Ну вот, подошел к концу мой первый пост. На последок хочу сказать, что если то, что я описал уже обсуждалось, прошу сильно не пинать, но я не нашел. Также буду рад, если укажите недочеты, лучшие решения =) Всем спасибо.

33 комментария

avatar
Приветствую Вас Уважаемый Hrom! Здорово Вы на сайте заделали кликабельные картинки с плавным увеличением размера.
avatar
На мой взгляд, единственый недочёт — использование jQuery. Mootools позволяет делать всё то же самое, и юзеру нет необходимости грузить лишние десятки килобайт
avatar
опять таки пользуясь случаем. почему Mootools, а не jQuery или prototype?
avatar
Видимо личные предпочтения просто :-)
avatar
Этот вопрос нужно адресовать автору ЛС :-)
Лично я в рамках этого движка не вижу преимуществ ни у одного продукта из этой тройки. По моему мнению, для ЛС подошёл бы любой из них
avatar
да, конечно вопрос Орту, просто кликнулось…
я преимущество тоже не вижу, но помоему жквери клёвей и понятней… разводить холиваров не буду, это просто в порядке флуда…
в принципе скриптов тут не много и у меня была даже мысль переделать под жквери всё… но это в такоооооой далёкой переспективе, что не считается
avatar
Ну раз уж пошла такая пьянка, у меня тоже была мысль заменить мутулс на жквери и я её также отложил «на потом». Для такой замены у меня был ряд причин, которые актуальны до сих пор. Связаны они с доступностью некоторых плагинов для жкевери отсутствием хороших альтернатив для мутулса.
avatar
раз так, предлагаю через месяцок поднять эту проблему заново и объединивши усилия реализовать задумку ;)
avatar
поддерживаю!
avatar
ребята да там переделок о май гад!
avatar
да ну с чего бы? тут скриптов то всего что в шаблоне лежит… а они в основном типа «наведи сюда -> сменится класс» «кликни сюда -> вызовется пхп функция»
avatar
удачи с комментариями )
avatar
где наша не пропадала ^__^
avatar
автокомпилер только надо будет искать альтернативный, но думаю это не проблема
avatar
автокомплитер, блин
а тинимайс ужасен сам по себе… ну его
avatar
есть хороший редактор на жквери
avatar
Можно интегрировать FCKeditor
avatar
выбирал не по количеству плагинов, а по удобству программирования + разные визуальные эффекты входят в ядро мутулса
avatar
если не трудно, посмотрите, что используется для эффектов на drive2.ru (на странице регистрации окно для загрузки фотки машины)?
avatar
а какой у вас хостинг не подскажете? замучился выбирать… везде — одно г…
avatar
Бери проверенный хостинг.
У меня на нем ЛС летает.
avatar
а тариф какой… посоветуйте плиз..)
avatar
Бери Host B и выше. На нем тестировал все работает. У меня тариф VIP но и сайтов у меня под 30 на нем и не только на ЛС но и на других CMS
avatar
Хостинг, признаться честно, не лучшего качества. Так что озвучивать его не имеет смысла. Но это на первых парах. В ближайших планах переход на VPS.
avatar
Уважаемый топикстартер, вы говорите:
Далее нужно было прикрутить туда highslide. О том, как сделал подробно описывать не буду, т.к. уже тоже есть готовые решения.

У меня, к сожалению, найти не получилось… Может вы ткнете носом в пример установки highslide на LS0.3 или расскажете более развернуто о том, как это сделали вы?
Спасибо
avatar
Перед созданием поста я произвел поиск по слову «highslide» и нашел этот топик. Там в коментах были какие-то решения, но что и как — не смотрел. Если возникнут проблемы, позже могу написать новую статью по этому поводу.
avatar
Очень буду ждать статью )))
avatar
По вашей просьбе =) Надеюсь понятно написал.
avatar
Спасибо за noindex, было бы вообще круто, указать списочек сайтов, который в ноиндекс не заключать. У редкого вебмастера 1 ресурс и было бы неплохо убирать noindex с сылок на «свои» ресурсы.
avatar
Это сделать не сложно. Но было бы логично интегрировать в модуль «Админ панель». Отпишите автору, может он и сделает. Дабы не городить модуль на модуль))
avatar
что-то с SEO ссылками не совсем получается, вставляю код а ссылки на сайт внутри топиков все равно в noindex
avatar
Один вопрос.
Зачем вы используете jQuery, если с самим LS уже грузится Mootools?
avatar
Уважаемый владелец сайта фотожаба, я так понимаю, что вы сделали watermark по этой инструкции (http://livestreet.ru/blog/1174.html). Скажите, а как вы сделали так, что на аватары не идёт наложение watermark? А то у меня на все картинки идёт наложение watermark.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.