0 Пользователей и 1 Гость просматривают эту тему.
  • 24 Ответов
  • 39414 Просмотров
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Letterman и Joostina 1.3
« : 10.02.2011, 21:07:44 »
Ребята! Вроде почти удалось сделать этот замечательный компонент рассылки писем под Joostina 1.3. Потом могу файлы выложить.
Но есть одна проблема. Загружаю mod_letterman_1_2_5, а во фронте сайта пишет: This module requires the Letterman component.

Что делать? Как подключить компонент к модулю? Подскажите пожалуйста. Вроде единственная проблема осталась и Joostina 1.3 с Letterman подружатся :)

Код модуля: 

Код
<?php
/**
* Letterman Subscriber Module
* based on the one for Yanc 1.3
*
* @author shaynebartlett
* @author soeren
* @author Wee Keat Chin
* @Copyright (C) 2004-2005 soeren
* @ All rights reserved
* @ Released under GNU/GPL License : http://www.gnu.org/copyleft/gpl.html
* @version 1.2.5
*
* Email: support@thejfactory.com
**/

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
global $my, $database;
/**
 * Configuration
 * ------------------
 */
if( !file_exists($mosConfig_absolute_path . "/components/com_letterman/letterman.php")) {
echo '<p>This module requires the Letterman component.</p>';
}
else {

if( !@include_once( $mosConfig_absolute_path . "/administrator/components/com_letterman/language/$mosConfig_lang.messages.php" ) ) {
include_once( $mosConfig_absolute_path . "/administrator/components/com_letterman/language/english.messages.php" );
}

require_once( $mosConfig_absolute_path . '/components/com_letterman/letterman.class.php');

// The Text to be shown in front of the Subscribe Form
$pretext = isset( $params->_params->pretext )
? $params->_params->pretext
:"Keep yourself updated with our FREE newsletters now!";

//1 to limit the number of characters of title, 0 to disable it
$chars_limit = $params->get( 'chars_limit', 1);

// used with character limits enabled. the value signifies the number of characters to display
$chars = intval( $params->get( 'chars', 15) );

//to hide the name field, set it to 1
$hide_name_field = $params->get( 'hide_name_field', 0);
$my->load( $my->id );
$username = ( !empty( $my->name ) )? $my->name : $my->username;

// GetItemid
$query = "SELECT id"
. "\n FROM #__menu"
. "\n WHERE type = 'components'"
. "\n AND published = 1"
. "\n AND link = 'index.php?option=com_letterman'"
;
$database->setQuery( $query );
$_Itemid = $database->loadResult();

?>
<script type="text/javascript" language="Javascript"><!--
function changeTask() {
var name = document.lettermanMod.subscriber_name.value;
var email;
var max_length = <?php echo $chars ?>;
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

if (filter.test(document.lettermanMod.email.value)) {
email = document.lettermanMod.email.value;
var a = true;
} else {
alert("<?php echo LM_FORM_NOEMAIL ?>");
var a = true; return false;
}
try {
<?php
  if( !empty($chars_limit) && $hide_name_field=="0" ) { ?>
if(document.lettermanMod.subscriber_name.length > max_length) {
alert("<?php echo LM_FORM_SHORTERNAME; ?>");
return false;
}
<?php
}
  if( $hide_name_field=="0" ) { ?>
if(document.lettermanMod.subscriber_name.length < 1) {
alert("<?php echo LM_FORM_NONAME ?>");
return false;
}
<?php
  }
  ?>
}
catch(e) {}
return true;
} // -->
</script>
<?php if( !empty( $pretext)) {
echo '<p>'. $pretext .'</p>';
}
?>
<form method="post" action="<?php echo $mosConfig_live_site ?>/index.php?option=com_letterman&amp;Itemid=<?php echo $_Itemid; ?>" name="lettermanMod">
<p>
<?php
if($hide_name_field == 1) { ?>
  <input type="hidden" name="subscriber_name" value="<?php echo !empty( $username)? $username: "Subscriber"; ?>" />
<?php
}
else { ?>
         <input type="text" id="subscriber_name" style="font-size:smaller;" name="subscriber_name" class="inputbox" value="<?php echo $username; ?>" /><br/>
         <span class="smallgrey"><label for="subscriber_name"><?php echo _CMN_NAME ; ?></label></span><br/>
<?php
}
?>
<input type="text" id="lm_email" name="email" style="font-size:smaller;" class="inputbox" value="<?php echo $my->email; ?>" /><br/>
<span class="smallgrey"><label for="lm_email"><?php echo _CMN_EMAIL ; ?></label></span>
</p>
<p>
<?php
if( $my->id ) {

$q = "SELECT subscriber_id FROM `#__letterman_subscribers` WHERE user_id=".$my->id.' OR subscriber_email=\''.$my->email.'\'';
$database->setQuery($q); $subscriber = $database->loadResult();

if( empty($subscriber)) { ?>
<input name="task" type="hidden" value="subscribe" />
<input type="submit" class="button" value="<?php echo LM_SUBSCRIBE ?>" onclick="return changeTask();" />
<?php
}
else {
echo LM_ALREADY_SUBSCRIBED;
?><br/>
<input name="task" type="hidden" value="unsubscribe" />
<input type="submit" onclick="return( confirm('<?php echo LM_CONFIRM_UNSUBSCRIBE ?>'));" class="button" value="<?php echo LM_UNSUBSCRIBE ?>" onclick="return changeTask();" />
<?php
}
}
else {
?>
   <input name="task" type="radio" class="inputbox" id="lm_subscribe" value="subscribe" checked="checked"/>
<label for="lm_subscribe"><?php echo LM_SUBSCRIBE; ?></label><br/>
<input name="task" type="radio" class="inputbox" id="lm_unsubscribe" value="unsubscribe" />
<label for="lm_unsubscribe"><?php echo LM_UNSUBSCRIBE; ?></label>
<br/>
<input type="submit" class="button" value="<?php echo LM_BUTTON_SUBMIT ?>" onclick="return changeTask();" />

<?php
}
?>
</p>
<input type="hidden" name="Itemid" value="<?php echo $_Itemid; ?>" />
<?php
  // used for spoof hardening
$validate = lm_SpoofValue(1);
?>
<input type="hidden" name="<?php echo $validate; ?>" value="1" />
</form>
<?php
$my = $mainframe->getUser();
}
?>
*

Vladzimir

  • Захожу иногда
  • 107
  • 22 / 1
  • В очередь! в очередь! День Сурка © М.Борзыкин
Re: Letterman и Joostina 1.3
« Ответ #1 : 10.02.2011, 23:08:08 »
Не объявлена глобальная переменная $mosConfig_absolute_path
Но лучше заменить в модуле все $mosConfig_absolute_path на JPATH_BASE
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Re: Letterman и Joostina 1.3
« Ответ #2 : 10.02.2011, 23:13:55 »
Vladzimir, а как строка должна выглядеть? допустим эта:

Код
if( !file_exists($mosConfig_absolute_path . "/components/com_letterman/letterman.php")) {
echo '<p>This module requires the Letterman component.</p>';
}
else {
*

Vladzimir

  • Захожу иногда
  • 107
  • 22 / 1
  • В очередь! в очередь! День Сурка © М.Борзыкин
Re: Letterman и Joostina 1.3
« Ответ #3 : 11.02.2011, 03:00:51 »
Код
if( !file_exists(JPATH_BASE . '/components/com_letterman/letterman.php')) {
echo '<p>This module requires the Letterman component.</p>';
}
else {
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Re: Letterman и Joostina 1.3
« Ответ #4 : 11.02.2011, 08:13:12 »
хм... теперь пишет в модуле такую штуку:

Код
Fatal error: Call to a member function Quote() on a non-object in /home/site.com/docs/includes/libraries/database/database.php on line 821

что копать?..
« Последнее редактирование: 11.02.2011, 14:38:27 от Mikl »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Letterman и Joostina 1.3
« Ответ #5 : 11.02.2011, 08:38:45 »
Этой функции не передается ничего, либо передаеттся не объект. Смотри где в модуле вызывается эта функция и что ей передается.
*

Vladzimir

  • Захожу иногда
  • 107
  • 22 / 1
  • В очередь! в очередь! День Сурка © М.Борзыкин
Re: Letterman и Joostina 1.3
« Ответ #6 : 11.02.2011, 10:32:02 »
Наверное из-за вот этого проблемы
Код
	$query = "SELECT id"
. "\n FROM #__menu"
. "\n WHERE type = 'components'"
. "\n AND published = 1"
. "\n AND link = 'index.php?option=com_letterman'"
;

Надо переписать более красиво (убрать переводы строки и т.д.)
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Letterman и Joostina 1.3
« Ответ #7 : 11.02.2011, 10:39:58 »
Да не должно от этого быть, я так многие запросы на строки бью чтобы при отладке нормально читались. Возможно такой строки в таблице нет?
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Re: Letterman и Joostina 1.3
« Ответ #8 : 11.02.2011, 14:40:23 »
хмм... и что тут сделать можно?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Letterman и Joostina 1.3
« Ответ #9 : 11.02.2011, 14:46:00 »
1. Вывести этот запрос на отладку функцией var_dump или print_r, скопировать запрос и проверить его в майадмине, предварительно заменив #_ на свой префикс БД. Если выводит непустую строку значит все ннормально и ошибка происходит дальше, если нет, то разбирать запрос, хотя с виду он правильный.
2. А какой функцией у тебя создается объект данных из этого запроса?
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Re: Letterman и Joostina 1.3
« Ответ #10 : 11.02.2011, 15:04:52 »
Arkadiy, я в БД вообще на шарю фактически... где можно почитать что-то, чтобы ответить на Ваши вопросы?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Letterman и Joostina 1.3
« Ответ #11 : 11.02.2011, 17:16:30 »
Ну хотя-бы php.su про MySQL и php
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Re: Letterman и Joostina 1.3
« Ответ #12 : 11.02.2011, 22:43:24 »
не могу врубиться... может кто поможет?..
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Letterman и Joostina 1.3
« Ответ #13 : 11.02.2011, 22:52:13 »
Ошибка не явная и никто не сможет подсказать ее 100% решение, даже неизвестно что ее производит.
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Re: Letterman и Joostina 1.3
« Ответ #14 : 12.02.2011, 10:10:53 »
я бы смог это сделать, если бы была хотя бы более подробная пошаговая инструкция... :)
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Letterman и Joostina 1.3
« Ответ #15 : 12.02.2011, 10:35:51 »
Да как таковой инструкции-то и нет, можно пробовать комментировать разные строки и смотреть когда уберется эта ошибка, исходя из этого и думать дальше.
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Re: Letterman и Joostina 1.3
« Ответ #16 : 12.02.2011, 10:38:13 »
Arkadiy, комментировать тут - includes/libraries/database/database.php
?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Letterman и Joostina 1.3
« Ответ #17 : 13.02.2011, 01:02:24 »
Нет, в модуле. Там все работает нормально.
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Re: Letterman и Joostina 1.3
« Ответ #18 : 13.02.2011, 12:28:32 »
Нет, в модуле. Там все работает нормально.
пробую, но пока что-то нет результата... на другом сайте в ошибке выше прибавляется ещё такая:

Код
Notice: Undefined property: mosUser::$_db in /home/siti.ru/docs/includes/libraries/database/database.php on line 821
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Re: Letterman и Joostina 1.3
« Ответ #19 : 13.02.2011, 13:08:17 »
Помогло комментирование вот этой строки:

Код
/* 
//to hide the name field, set it to 1
$hide_name_field = $params->get( 'hide_name_field', 0);
$my->load( $my->id );
$username = ( !empty( $my->name ) )? $my->name : $my->username;
 */
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Letterman и Joostina 1.3
« Ответ #20 : 13.02.2011, 15:20:34 »
Значит косячит строка
Код
$my->load( $my->id );
Попробуй закомментировать только ее и все.
*

Gold Dragon

  • Захожу иногда
  • 289
  • 33 / 2
Re: Letterman и Joostina 1.3
« Ответ #21 : 25.03.2011, 08:56:23 »
Mikl, компонент адаптирован под 1.3.0.4 ? Если ДА, то поделись. Если НЕТ, то я буду адаптировать, т.к. очень нужен
*

Mikl

  • Захожу иногда
  • 64
  • 0 / 0
Re: Letterman и Joostina 1.3
« Ответ #22 : 25.03.2011, 10:06:39 »
Mikl, компонент адаптирован под 1.3.0.4 ? Если ДА, то поделись. Если НЕТ, то я буду адаптировать, т.к. очень нужен
слушай, мне сложно сказать. но я сделал так, что у меня всё что надо - работает :) файлы рабочие могу скинуть, пиши в личку куда
*

Gold Dragon

  • Захожу иногда
  • 289
  • 33 / 2
Re: Letterman и Joostina 1.3
« Ответ #23 : 25.03.2011, 10:22:00 »
отписался... проверю что и как и тогда выложу компонент у себя на сайте
*

yura-gamer

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
  • Joostina! - это RePack Joomla!
Re: Letterman и Joostina 1.3
« Ответ #24 : 22.06.2012, 11:01:46 »
Помогло комментирование вот этой строки:

/*
   //to hide the name field, set it to 1
   $hide_name_field = $params->get( 'hide_name_field', 0);
   $my->load( $my->id );
   $username = ( !empty( $my->name ) )? $my->name : $my->username;
 */
Убрал лишние пробелы. Работает на 1.3.05, теперь можно скрывать поле Имя без ругачек на DENWERe
//to hide the name field, set it to 1
   $hide_name_field = $params->get('hide_name_field', 0);
   $my->load($my->id );
   $username = (!empty($my->name)) ? $my->name : $my->username;
« Последнее редактирование: 22.06.2012, 11:09:48 от yura-gamer »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joostina 1.4

Автор Gold Dragon

Ответов: 9
Просмотров: 17490
Последний ответ 14.02.2017, 08:45:43
от Gold Dragon
На какой стадии теперь joostina?

Автор chemerzaev

Ответов: 7
Просмотров: 3842
Последний ответ 22.11.2016, 19:01:22
от XCOS
Примеры сайтов на Joostina CMS

Автор Nextdrift

Ответов: 54
Просмотров: 41411
Последний ответ 25.11.2015, 20:40:05
от friend111
Работа вики http://www.wiki.joostina.ru/

Автор dimanus

Ответов: 0
Просмотров: 3010
Последний ответ 11.08.2014, 14:08:18
от dimanus
Не функционирует сайт на платформе joostina - www.veshol.ru и не открывается админка, что случилось?

Автор Gukova

Ответов: 18
Просмотров: 4059
Последний ответ 06.08.2014, 18:27:42
от doctorgrif