Генерация ссылок на новости

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
butcher_88
Forum Members
Forum Members
Posts: 113
Joined: Tue Jun 22, 2010 11:05 am

Генерация ссылок на новости

Post by butcher_88 »

Всем доброго времени суток))
Если описанное ниже есть бред, и можно сделать проще - пишите))
Есть такая задача получить в плагине (тэге function.xxxxx.php) ссылку на определенную новость из модуля новости, сейчас код такой:

Code: Select all

global $gCms;
$newsModule =& $gCms->modules['News']['object'];
$href = $newsModule->CreateLink('cntnt01','detail','18','',$paramsLink,'',true, true); 
функция

Code: Select all

CreateLink($id, $action, $returnid='', $contents='', $params=array(), $warn_message='', $onlyhref=false, $inline=false, $addttext='', $targetcontentonly=false, $prettyurl='')
где
$id -  The id given to the module on execution, сейчас статично $id == 'cntnt01'. Не есть гуд...
так вот вопрос где же $id брать?
т.е. в

Code: Select all

& $gCms->modules['News']['object']
вроде не нашел такого id.
Sonya

Re: Генерация ссылок на новости

Post by Sonya »

butcher_88 wrote: так вот вопрос где же $id брать?
Этот внутренний $id сам там как-то формируется (простите, за туповатое объяснение), т. е. он вообще всегда существует, как только запускается CMS. Я его всегда оставляю $id и у меня еще ни разу не было случаев, чтобы нужно было его где-то узнавать или вычислять, он просто всегда есть.

Или функция по этому поводу ругается? Какая ошибка?
butcher_88
Forum Members
Forum Members
Posts: 113
Joined: Tue Jun 22, 2010 11:05 am

Re: Генерация ссылок на новости

Post by butcher_88 »

Sonya wrote:
butcher_88 wrote: так вот вопрос где же $id брать?
Я его всегда оставляю $id
Спасибо вспомнил как это внутри модуля работает))
Тогда тоже сильно заморочился))

Code: Select all

$moduleId = $newsModule->smarty->id;
Вот так этот id можно молучить. Это относится к смарти оказывается. Почему-то поиск по var_dump не сработал - пришлось искать руками.

А вообще, Sonya наколько я понимаю один из самых опытных разработчиков здесь, не подскажите как лучше добавлять функционал  к существующему модулю т.е. править код, делать свою копию модуля (и называть по-другому) или вот так при помощи плагинов?
Sonya

Re: Генерация ссылок на новости

Post by Sonya »

butcher_88 wrote: А вообще, Sonya наколько я понимаю один из самых опытных разработчиков здесь,
Да уж, настолько "опытная", что не смогла объяснить по-человечески возникновение этого $id :)
butcher_88 wrote: не подскажите как лучше добавлять функционал  к существующему модулю т.е. править код, делать свою копию модуля (и называть по-другому) или вот так при помощи плагинов?
Больная тема. Есть несколько вариантов.

1. Сначала я смотрю можно ли функционал добавить при помощи пользовательских тегов и "подвесить" на события. То есть, немного похоже на систему hook в Drupal. Этот вариант подразумевает, что события в модуле уже "подцеплены". Если событий не хватает, то смотрю, жив ли разработчик модуля, когда был последний релиз. Если модуль свежий, то прошу в Feature Request "подцепить" нужное мне событие, обычно это фикситься довольно быстро в следующем релизе. А до релиза, я сама цепляю событие, правя модуль вживую. Но поскольку - это только пара строчек, то обычно не проблема.

2. Если модуль неживой, то можно попробовать его перенять на себя и развивать дальше в свою сторону, получая исправление багов :). Вот, например, мое последнее "приобретение" - Simple Tagging. Списалась с разработчиком, узнала, что он этот модуль развивать не будет, попросила добавить меня в админы, сделала изменения и новый релиз. Теперь он работает, как мне надо :) Там есть баги, я их знаю, но для моих целей они мне не мешают, поэтому сижу и жду, когда другие разработчики решение для этих багов предложат и я их внедрю.

3. Если изменения серьезные, скажем на 50% дописывать функциональность или изменять существующую, то копирую модуль, переименовываю. При желании можно добавить его в forge как новый. Хотя я этот вариант не очень приветствую, дабы не плодить мусор и клоны существующих модулей, но некоторые так делают.

4. Если речь идет о создании нового типа контента использую MCFactory, если нужен каталогоподобный модуль с иерархией, то CTLModuleMaker. Оба модуля создают новые модули с индивидуальной структурой.
butcher_88
Forum Members
Forum Members
Posts: 113
Joined: Tue Jun 22, 2010 11:05 am

Re: Генерация ссылок на новости

Post by butcher_88 »

Спасибо за информацию))
Может есть смысл добавить что-то из этого на русскоязычном сайте?
Sonya wrote: При желании можно добавить его в forge как новый. Хотя я этот вариант не очень приветствую, дабы не плодить мусор и клоны существующих модулей...
Полностью согласен, да и переделка чужого кода бывает неприятной, поэтому теперь модули и не переделываю))
создании нового типа контента
Наверное есть смысл воспользоваться этими модулями, но не будут ли очень тормозить они?
http://dev.cmsmadesimple.org/projects/mcfactory
http://dev.cmsmadesimple.org/projects/ctlmodulemaker
Sonya

Re: Генерация ссылок на новости

Post by Sonya »

butcher_88 wrote: Спасибо за информацию))
Может есть смысл добавить что-то из этого на русскоязычном сайте?
Смысл есть, конечно. Пишу, перевожу, у меня три сайта по CMSMS, на трех языках (все в подписи) и от русского в финансовом плане, как от козла молока :) поэтому он у меня иногда "отдыхает". Хобби, типа. Жить-то нужно, даже за ссылки никто писать не хочет :)
butcher_88 wrote: Наверное есть смысл воспользоваться этими модулями, но не будут ли очень тормозить они?
Зависит от нагрузки, естественно, индексы нужно в таблице делать, это - дело индивидуальное, крутить код, если нагрузка большая. У CMSMS есть такое заболевание, когда для списка элементов не один запрос SELECT делается, а для каждого элемента, через класс, отдельный, что не есть гуд. Но это болезнь, не только этих модулей, у готовых она тоже встречается.
butcher_88
Forum Members
Forum Members
Posts: 113
Joined: Tue Jun 22, 2010 11:05 am

Re: Генерация ссылок на новости

Post by butcher_88 »

Ну не хотят наши люди платить, совсем не хотят ни за что))
даже за ссылки никто писать не хочет
Чисто интересно это как?

Еще давно хотел записаться в команду переводчиков, там набор еще идет?
Sonya

Re: Генерация ссылок на новости

Post by Sonya »

butcher_88 wrote:
даже за ссылки никто писать не хочет
Чисто интересно это как?
http://www.cmsmadesimple.ru/statji
butcher_88 wrote: Еще давно хотел записаться в команду переводчиков, там набор еще идет?
У нас всегда набор идет и не закрывается :) Кто-то приходит, попереводит и уходит, это - нормально. С удовольствием добавлю Вас, есть ли есть желание. Нужна регистрации вот здесь http://dev.cmsmadesimple.org/signup После этого Ваш логин мне в личку и я Вас подключу.
Post Reply

Return to “Russian - русский”