Поднадоело уже слушать балалайку про абсолютную невозможность доработок, особенно по отношению к гибкому дао. Постараюсь ответить максимально тезисно.
1)По моим оценкам — 60-70% желаемых доработок, озвученных мне клиентами (за все время существования плагина) возможно выполнить затрагивая только шаблоны или пользуясь гибкой настройкой плагина. Каких-то сверхзнаний и телепатии не требуется, и код в шаблонах красивый, ясный, верстка вполне легкая, а в админке все весьма ясно.
2)Обладая знаниями php и зная логику livestreet (плюсом будет и понимание ORM) — наследованием, и главное — хуками, можно решить еще около трети из озвученных мне в то или иное время задач, а я всячески консультирую по возникающим вопросам при обращении в суппорт по этой теме вплоть до открытия кода определенных функций. Учитывая тот факт, что мало кто хочет чтобы доработки слетали после апгрейда — даже для полностью открытых плагинов разумные люди доработки пишут хуками и наследованием. Так что в этом нет каких-либо ужасов.
3)Есть ряд задач, которые были озвучены пользователями, реализованы и уже включены в общую поставку, а также которые готовятся. Предложив интересную общей массе покупателей задачу вполне можно получить ее к следующему мажорному релизу (или через один релиз). Таких дополнений за время существования плагина уже было много. Также по объемному дополнительному функционалу выпускаются интегрированные плагины-аддоны с расширением логики (на данный момент «маркет», но до лета будут еще — сколько зависит от времени релиза 1.0 версии движка и обстоятельств связанных с релизом).
Почему код частично закрыт — слава Богу в этот раз объяснять не нужно, вы, судя по комментам, сами все понимаете абсолютно верно.
По дополнительным интересующим вопросам я готов продолжить беседу уже по адресу support@lsmods.ru
Господа недовольные покупатели шаблонов, у меня для вас плохая новость.
Нельзя создать действительно хороший проект, пытаясь набрать пул шаблонов и плагинов, собрав из этого конструктора сайт и объявить, что в результате вы получили нечто интересное, полезное и крутое. Все что вы получите — это просто набор плагинов + шаблон.
Главный тезис — все что вы здесь покупаете или скачиваете — должно восприниматья как платформа, база, фреймворк, на основе которого вы (подчеркиваю) _должны_ производить кастумизацию, дорабатывать, рефакторить, изменять структуру и привносить свои собственные идеи. Шаблон в данном случае — это концептуальная база, на основе которой необходимо реализовать свои идеи _самостоятельно_.
Данная самостоятельноть подразумевает не обязательно личное програмерство, но как минимум привличение профильных специалистов для соответсвующих задач.
То что здесь развелось нытье по поводу платности и клянченье по поводу «двухстрочечного» заголовка — просто смешно. Умные создатели сайтов должны взять (купить/скачать) неоходимый функционал, и допилить его под себя.
Вот минимальный алгоритм создания мало-мальски интересного проекта (с технической точки зрения, без учета рентабельности идеи):
1. Изучить все что есть на сайте LS;
2. Выбрать необходимый для своего проекта функционала;
3. Скачать/купить его;
4. Собрать конструктор и поиграть с ним немного;
5. Подумать и выкинуть половину этого функционала, так как он не профильный для вашего проекта;
6. Подумать и придумать _собственную_ информационную структуру, свой функционал, свои интерфейсные фишки на базе уже изученного конструктора.
7. Заказать в индивидуальном порядке (а не массовым заказом) эти доработки и внедрить их в свой проект;
8. Поиграться с полученным результатом и (вуаля!), повторить с пунтка 5! Да-да, думать об уместности и уникальности функционала надо на всех этапах.
9. Относитесь к любому купленому плагину или шаблону как к подарку судьбы, что вам так или иначе достался готовый продукт, который вы можете дальше использовать как платформу для реализации своих _собственных_ идей (а не разрабатывать эту платформу самому).
10. И на последок — не забывайте благодарить всех авторов шаблонов и плагинов, а также основателя фреймворка. Как словами, так и материально.
И напоследок, завершающий тезис: если хотите создать настоящий сайт для людей, а не очередной клонированый ГС, осознайте, — это все равно что взять и на скорость 100 км/ч взять и разбить автомобиль об стену. Ну хотя бы малолитражный, вроде матиза. Это в плане стоимости вашего _мало-мальски уникального и интересного_ проекта. После этого вам остается расслабиться и ждать результатов вашей (а не разработчиков) прозоривости: на сколько вы смогли грамотно разработать тот самый функционал для своего профильного проекта.
Нет денег на то, чтобы разбить об стену свой автомоиль ради свой мечты (а ваш проект — это ведь ваша мечта, не так ли?) — учитесь привлекать нужных специалистов под долю в проекте или просто высшим смыслом этого проекта.
Учитесь создавать такие проекты, которые смогут дать смысл разработчикам вложиться в ваш проект своей квалификцией.
Тут есть некоторое заблуждение. На самом деле купить плагин, программу и прочее — невозможно, их не продают вообще. На самом деле вы приобретаете только права на использование этих продуктов, при этом в соответствии с соглашением, которое разработано разработчиком или другим правообладателем. Поэтому непонятно что же вы хотите. ))
9) /gallery/user/Yupi/77/1047
Еще о кривых руках. При клике по любому фото у вас на сайте оно открывается аж 2 раза. Слабо подружить 2 плагина одного автора? ;)
Видимо, вы не в курсе, о чем говорите. Зашел на ваш сайт, с установленой галереей от экстраверта.
1) вижу категорию «Косплей» с 518-ю фото. Захожу — вижу только 3 фото.
2) на всех страницах галереи «Плагин Галерея для LiveStreet». ни разу не видел, чтобы на сайтах оставляли эту надпись по доброй воле. это о кривых руках.
3) от кнопки показа слайдшоу на вашем сайте видена только часть ее верха. если не знать ЛС-а — не понять, что за кнопка. это также о руках.
4) /gallery/category/cosplay/rating/ почему тут по 5 фоток на сранице и таких страниц 104. не от нагрузки ли? на таких страницах галерея должна генерировать тысячи запросов, которые вы никогда не исправите из-за закрытости кода и изначально «корявой» планировке архитектуры (600 фото на моем сайте генерировали более 3000 запросов при открытии страницы).
5) не огласите, сколько тут запросов у вас? /profile/Yupi/
6) на вашем сайте используется шаблон social. автор шаблона скорее всего отказался выводить дополнительную информацию о каждой фото т.к. в некоторых браузерах она накладывается одна на другую. экстраверт где-то год назад обещал это исправить.
7) функцию отметки пользователей тестили в разных браузерах? квадратик вместо фото при 1-й загрузке страницы не наблюдюдали (опера, ие)?
8) /gallery/tags/Cosplay/ по приближенному подсчету тут должно показываться не менее пары сотен фото, а всего 15.
По поводу заброшенности плагина. Глюки сначала не правились, затем были зашифрованы, нового функционала не добавлено за все время, пока галереей занимался экстраверт. С выходом ЛС 0,5 автор пообещал пофиксить баги в 0,4,2 и обновить до 0,5. Не сделал ни того ни другого, а занялся разработкой другого плагина.
BayBuKu, слабо без пустозвонства конструктивно ответить?
Все вышеописанные баги не относятся к плагину PicAlbums.
Хотелось бы возможность выводить на главную страницу или в любое другое место, например в sidebar, информер с последними материалами из разделов DAO модуля.
Чтобы можно было реализовать примерно следующее:
И так, у меня установлен плагин Blogs Autoconnect Plugin, и чтоб его заставить выводить список блогов по алфавиту, надо отредактировать Autoconnect.mapper.class.php
Топаем в /plugins/autoconnect/classes/modules/autoconnect/mapper/Autoconnect.mapper.class.php 37строка
Находим код
$sql = "SELECT
b.blog_id
FROM
".Config::Get('db.table.blog')." as b
WHERE
(b.user_owner_id = ? AND b.blog_type <> 'personal')
OR
(b.blog_type = 'open'
AND
b.user_owner_id <> ?
AND
b.blog_limit_rating_topic <= ?
)
OR
(b.blog_type = 'close'
AND
b.blog_id IN (SELECT bu.blog_id FROM ".Config::Get('db.table.blog_user')." AS bu WHERE bu.user_id = ? AND bu.user_role IN (?a))
AND
b.blog_limit_rating_topic <= ?
)
";
И в конце добавляем ORDER by b.blog_title asc
$sql = "SELECT
b.blog_id
FROM
".Config::Get('db.table.blog')." as b
WHERE
(b.user_owner_id = ? AND b.blog_type <> 'personal')
OR
(b.blog_type = 'open'
AND
b.user_owner_id <> ?
AND
b.blog_limit_rating_topic <= ?
)
OR
(b.blog_type = 'close'
AND
b.blog_id IN (SELECT bu.blog_id FROM ".Config::Get('db.table.blog_user')." AS bu WHERE bu.user_id = ? AND bu.user_role IN (?a))
AND
b.blog_limit_rating_topic <= ?
)
ORDER by b.blog_title asc
";
Всё. Сортировка по алфавиту готова.
PS. Для админа сортировка не работает. Я не стал париться. Но решение есть тут
Проблема в не целостности базы, возможно она была MyISAM.
Конвертировать текущую 0.3.1 БД в нормальный целостный вид можно этим скриптом. Далее уже получившуюся БД конвертировать в 0.4.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
set_time_limit(0);
$conn1 = mysql_connect("localhost", "root", "");
$conn2 = mysql_connect("localhost", "root", "",true);
if (!$conn1) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}
if (!mysql_select_db("livestreet03",$conn1)) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
if (!mysql_select_db("livestreet03new",$conn2)) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
mysql_query("set character_set_client='utf8'",$conn1);
mysql_query("set character_set_results='utf8'",$conn1);
mysql_query("set collation_connection='utf8_bin'",$conn1);
mysql_query("set character_set_client='utf8'",$conn2);
mysql_query("set character_set_results='utf8'",$conn2);
mysql_query("set collation_connection='utf8_bin'",$conn2);
function buildInsertSql($sTable,$aRow) {
$sql='INSERT INTO '.$sTable.' SET ';
foreach ($aRow as $key => $value) {
if (!is_null($value)) {
$value="'".mysql_escape_string($value)."'";
} else {
$value='NULL';
}
$sql.=' '.$key."=".$value.",";
}
return trim($sql,',');
}
function exportTable($sTable) {
global $conn1;
global $conn2;
$iAll=0;
$iExp=0;
$res = mysql_query("SELECT * FROM {$sTable}",$conn1);
if ($res) {
while ($row = mysql_fetch_assoc($res)) {
if (@mysql_query(buildInsertSql($sTable,$row),$conn2)) {
$iExp++;
}
}
$iAll=mysql_num_rows($res);
mysql_free_result($res);
}
echo "Export {$sTable}: {$iExp} from {$iAll}\n";
}
//пользователи
exportTable('prefix_user');
exportTable('prefix_user_administrator');
exportTable('prefix_user_vote');
//блоги
exportTable('prefix_blog');
exportTable('prefix_blog_user');
exportTable('prefix_blog_vote');
//топики
exportTable('prefix_topic');
exportTable('prefix_topic_vote');
exportTable('prefix_topic_tag');
exportTable('prefix_topic_read');
exportTable('prefix_topic_question_vote');
exportTable('prefix_topic_content');
exportTable('prefix_topic_comment');
exportTable('prefix_topic_comment_vote');
exportTable('prefix_topic_comment_online');
//почта
exportTable('prefix_talk');
exportTable('prefix_talk_comment');
exportTable('prefix_talk_user');
//география
exportTable('prefix_city');
exportTable('prefix_city_user');
exportTable('prefix_country');
exportTable('prefix_country_user');
//остальное
exportTable('prefix_reminder');
exportTable('prefix_page');
exportTable('prefix_invite');
exportTable('prefix_friend');
exportTable('prefix_favourite_topic');
?>
Почитал топик и комментарии… У меня история очень похожая и проблемы те же самые.
Немного информации: сайту чуть меньше года, регион — Казахстан, тематика общая, зарегистрировано немногим более 500 человек.
Сейчас я самый активный автор на своем сайте, я много пишу (копи-паст и не только) и много комментирую. После моих сообщений как-то повышается посещаемость за счет поисковиков. Но народ остается очень пассивным, костяк сайта растет очень медленно.
Дополнительные модули работают очень слабо, если точнее, то Афиша вообще не работает, я так и не смог заставить/привлечь арт-директоров заведений оставлять анонсы, а самим юзерам это не надо.
Галерея почти не работает, очень редко там кто-то что-то размещает и еще реже комментирует.
Микроблоги боле-менее работают.
Блогость есть, социальности пока мало. Уверен, что сообща мы сможем найти какое-то решение проблемы. Уверен, что многое зависит от функциональности. Первое, что буду делать после перехода на 0,4 — подключать авторизацию/регистрацию через openID и прикручу кнопочки публикации в твиттере, фейсбуке, вконтакте. Правда в том, что надо не убегать от социальных монстров, а их использовать.
Функционал дружбы и профилей наверное нужно как-то расширять. Давайте делится идеями!!!
По своему опыту скажу, что есть два способа адаптации модуля под 0.4:
1) Оставить его, как «модуль», просто обеспечив его работоспособность под новым релизом
2) Практически переписать его, оформив в виде «плагина»
Путь первый — быстрее. Но он не очень правильный. Путь второй — правильный, но гораздо более трудоемкий. Только начиная переписывать «модули» в «плагины» я ошибся в своих прогнозах относительно трудоемкости в разы.
Я понимаю, что клиентам все эти рассуждения «до лампочки», и их, по большому счету, мало волнуют проблемы разработчиков. Но, надеюсь, хоть какое-то понимание мои пояснения внесут.
В первых строках php ругается на то, что используемые функции устарели...
Не-а, не сами ф-ции устарели, а устарел синтаксис вовзврата значения по ссылке. Т.к. в PHP5 объекты всегда передаются по ссылке (в т.ч. и в возврате функций), то правильней будет просто убрать & из такой конструкции:
3 варианта решения проблемы:
1. отключить в feedburner добавления параметров
2. добавить в RSS ленту слеш после "/123.html", т.е. должно быть "/123.html/"
3. в ActionBlog изменить регулярное выражение
1)http://learn.iis.net/page.aspx/460/using-url-rewrite-module/ качаем ставим
2)http://learn.iis.net/page.aspx/557/translating-htaccess-content-to-iis-webconfig/
3)пишем свой рул так как путем
импорта работать не будет
4) не забываем про define('SYS_OFFSET_REQUEST_URL',1);
и про права для папока в системе
1)По моим оценкам — 60-70% желаемых доработок, озвученных мне клиентами (за все время существования плагина) возможно выполнить затрагивая только шаблоны или пользуясь гибкой настройкой плагина. Каких-то сверхзнаний и телепатии не требуется, и код в шаблонах красивый, ясный, верстка вполне легкая, а в админке все весьма ясно.
2)Обладая знаниями php и зная логику livestreet (плюсом будет и понимание ORM) — наследованием, и главное — хуками, можно решить еще около трети из озвученных мне в то или иное время задач, а я всячески консультирую по возникающим вопросам при обращении в суппорт по этой теме вплоть до открытия кода определенных функций. Учитывая тот факт, что мало кто хочет чтобы доработки слетали после апгрейда — даже для полностью открытых плагинов разумные люди доработки пишут хуками и наследованием. Так что в этом нет каких-либо ужасов.
3)Есть ряд задач, которые были озвучены пользователями, реализованы и уже включены в общую поставку, а также которые готовятся. Предложив интересную общей массе покупателей задачу вполне можно получить ее к следующему мажорному релизу (или через один релиз). Таких дополнений за время существования плагина уже было много. Также по объемному дополнительному функционалу выпускаются интегрированные плагины-аддоны с расширением логики (на данный момент «маркет», но до лета будут еще — сколько зависит от времени релиза 1.0 версии движка и обстоятельств связанных с релизом).
Почему код частично закрыт — слава Богу в этот раз объяснять не нужно, вы, судя по комментам, сами все понимаете абсолютно верно.
По дополнительным интересующим вопросам я готов продолжить беседу уже по адресу support@lsmods.ru
Нельзя создать действительно хороший проект, пытаясь набрать пул шаблонов и плагинов, собрав из этого конструктора сайт и объявить, что в результате вы получили нечто интересное, полезное и крутое. Все что вы получите — это просто набор плагинов + шаблон.
Главный тезис — все что вы здесь покупаете или скачиваете — должно восприниматья как платформа, база, фреймворк, на основе которого вы (подчеркиваю) _должны_ производить кастумизацию, дорабатывать, рефакторить, изменять структуру и привносить свои собственные идеи. Шаблон в данном случае — это концептуальная база, на основе которой необходимо реализовать свои идеи _самостоятельно_.
Данная самостоятельноть подразумевает не обязательно личное програмерство, но как минимум привличение профильных специалистов для соответсвующих задач.
То что здесь развелось нытье по поводу платности и клянченье по поводу «двухстрочечного» заголовка — просто смешно. Умные создатели сайтов должны взять (купить/скачать) неоходимый функционал, и допилить его под себя.
Вот минимальный алгоритм создания мало-мальски интересного проекта (с технической точки зрения, без учета рентабельности идеи):
1. Изучить все что есть на сайте LS;
2. Выбрать необходимый для своего проекта функционала;
3. Скачать/купить его;
4. Собрать конструктор и поиграть с ним немного;
5. Подумать и выкинуть половину этого функционала, так как он не профильный для вашего проекта;
6. Подумать и придумать _собственную_ информационную структуру, свой функционал, свои интерфейсные фишки на базе уже изученного конструктора.
7. Заказать в индивидуальном порядке (а не массовым заказом) эти доработки и внедрить их в свой проект;
8. Поиграться с полученным результатом и (вуаля!), повторить с пунтка 5! Да-да, думать об уместности и уникальности функционала надо на всех этапах.
9. Относитесь к любому купленому плагину или шаблону как к подарку судьбы, что вам так или иначе достался готовый продукт, который вы можете дальше использовать как платформу для реализации своих _собственных_ идей (а не разрабатывать эту платформу самому).
10. И на последок — не забывайте благодарить всех авторов шаблонов и плагинов, а также основателя фреймворка. Как словами, так и материально.
И напоследок, завершающий тезис: если хотите создать настоящий сайт для людей, а не очередной клонированый ГС, осознайте, — это все равно что взять и на скорость 100 км/ч взять и разбить автомобиль об стену. Ну хотя бы малолитражный, вроде матиза. Это в плане стоимости вашего _мало-мальски уникального и интересного_ проекта. После этого вам остается расслабиться и ждать результатов вашей (а не разработчиков) прозоривости: на сколько вы смогли грамотно разработать тот самый функционал для своего профильного проекта.
Нет денег на то, чтобы разбить об стену свой автомоиль ради свой мечты (а ваш проект — это ведь ваша мечта, не так ли?) — учитесь привлекать нужных специалистов под долю в проекте или просто высшим смыслом этого проекта.
Учитесь создавать такие проекты, которые смогут дать смысл разработчикам вложиться в ваш проект своей квалификцией.
Еще о кривых руках. При клике по любому фото у вас на сайте оно открывается аж 2 раза. Слабо подружить 2 плагина одного автора? ;)
1) вижу категорию «Косплей» с 518-ю фото. Захожу — вижу только 3 фото.
2) на всех страницах галереи «Плагин Галерея для LiveStreet». ни разу не видел, чтобы на сайтах оставляли эту надпись по доброй воле. это о кривых руках.
3) от кнопки показа слайдшоу на вашем сайте видена только часть ее верха. если не знать ЛС-а — не понять, что за кнопка. это также о руках.
4) /gallery/category/cosplay/rating/ почему тут по 5 фоток на сранице и таких страниц 104. не от нагрузки ли? на таких страницах галерея должна генерировать тысячи запросов, которые вы никогда не исправите из-за закрытости кода и изначально «корявой» планировке архитектуры (600 фото на моем сайте генерировали более 3000 запросов при открытии страницы).
5) не огласите, сколько тут запросов у вас? /profile/Yupi/
6) на вашем сайте используется шаблон social. автор шаблона скорее всего отказался выводить дополнительную информацию о каждой фото т.к. в некоторых браузерах она накладывается одна на другую. экстраверт где-то год назад обещал это исправить.
7) функцию отметки пользователей тестили в разных браузерах? квадратик вместо фото при 1-й загрузке страницы не наблюдюдали (опера, ие)?
8) /gallery/tags/Cosplay/ по приближенному подсчету тут должно показываться не менее пары сотен фото, а всего 15.
По поводу заброшенности плагина. Глюки сначала не правились, затем были зашифрованы, нового функционала не добавлено за все время, пока галереей занимался экстраверт. С выходом ЛС 0,5 автор пообещал пофиксить баги в 0,4,2 и обновить до 0,5. Не сделал ни того ни другого, а занялся разработкой другого плагина.
BayBuKu, слабо без пустозвонства конструктивно ответить?
Все вышеописанные баги не относятся к плагину PicAlbums.
Чтобы можно было реализовать примерно следующее:
еще, бы хорошо было бы чтобы использовали конструкцию типа для подключения блоков в слайдбар, ибо при установке нескольких плагинов пересекающиеся блоки могут затираться
И так, у меня установлен плагин Blogs Autoconnect Plugin, и чтоб его заставить выводить список блогов по алфавиту, надо отредактировать Autoconnect.mapper.class.php
Топаем в /plugins/autoconnect/classes/modules/autoconnect/mapper/Autoconnect.mapper.class.php 37строка
Находим код
И в конце добавляем ORDER by b.blog_title asc
Всё. Сортировка по алфавиту готова.
PS. Для админа сортировка не работает. Я не стал париться. Но решение есть тут
3) в экшене сделать далее в шаблоне
Конвертировать текущую 0.3.1 БД в нормальный целостный вид можно этим скриптом. Далее уже получившуюся БД конвертировать в 0.4.
Немного информации: сайту чуть меньше года, регион — Казахстан, тематика общая, зарегистрировано немногим более 500 человек.
Сейчас я самый активный автор на своем сайте, я много пишу (копи-паст и не только) и много комментирую. После моих сообщений как-то повышается посещаемость за счет поисковиков. Но народ остается очень пассивным, костяк сайта растет очень медленно.
Дополнительные модули работают очень слабо, если точнее, то Афиша вообще не работает, я так и не смог заставить/привлечь арт-директоров заведений оставлять анонсы, а самим юзерам это не надо.
Галерея почти не работает, очень редко там кто-то что-то размещает и еще реже комментирует.
Микроблоги боле-менее работают.
Блогость есть, социальности пока мало. Уверен, что сообща мы сможем найти какое-то решение проблемы. Уверен, что многое зависит от функциональности. Первое, что буду делать после перехода на 0,4 — подключать авторизацию/регистрацию через openID и прикручу кнопочки публикации в твиттере, фейсбуке, вконтакте. Правда в том, что надо не убегать от социальных монстров, а их использовать.
Функционал дружбы и профилей наверное нужно как-то расширять. Давайте делится идеями!!!
1) Оставить его, как «модуль», просто обеспечив его работоспособность под новым релизом
2) Практически переписать его, оформив в виде «плагина»
Путь первый — быстрее. Но он не очень правильный. Путь второй — правильный, но гораздо более трудоемкий. Только начиная переписывать «модули» в «плагины» я ошибся в своих прогнозах относительно трудоемкости в разы.
Я понимаю, что клиентам все эти рассуждения «до лампочки», и их, по большому счету, мало волнуют проблемы разработчиков. Но, надеюсь, хоть какое-то понимание мои пояснения внесут.
ЗЫ «Мопед не мой, я просто дал объяву» ©…
Т.е. я — не Кирилл, а просто кое-что пояснил. :)
1. отключить в feedburner добавления параметров
2. добавить в RSS ленту слеш после "/123.html", т.е. должно быть "/123.html/"
3. в ActionBlog изменить регулярное выражение на
2)http://learn.iis.net/page.aspx/557/translating-htaccess-content-to-iis-webconfig/
3)пишем свой рул так как путем
импорта работать не будет
4) не забываем про define('SYS_OFFSET_REQUEST_URL',1);
и про права для папока в системе
5) получаем долгожданный web.config
И будет счастье!