• ¡Bienvenido a XenFácil!

    Estás viendo el sitio como Invitado. Para poder participar en este sitio

    y obtendrás privilegios adicionales, acceso a otras áreas y mucho mas.

    ¡Es gratis!


    ¿Ya eres miembro? Inicia sesión

Ayuda Xenporta y promociones de tema...

Lummox

Miembro
Mensajes
76
Puntuación de reacciones
2
Puntos
8
País
España
Página web
Web
Tengo un error cuando trato de eliminar la promocion de un tema en xenporta.

Cuando la quiero eliminar, voy al post en cuestion, hago click en "Opciones de promocion" y le doy a "Eliminar promocion", al hacer esto, se pone una pantalla en blanco (como si no hubiera cargado una pagina), asi que tengo que ir nuevamente, o bien hacia atras o entrar de nuevo en mi foro.

Entonces me aparece un mensaje de error y no carga el foro. Si entro en el panel de administracion y desactivo el bloque "Recent News" ya funciona todo, hasta que lo vuelvo a activar o bien, vuelvo a promocionar el tema que habia eliminado de la promocion.

Los errores que me lanza el log son estos:

PHP:
Info del error
XenForo_Exception: Cannot delete data without a condition - library/XenForo/DataWriter.php:1782
Generado por: Lummox, hace 23 minutos
Seguimiento
#0 /var/www/library/XenForo/DataWriter.php(1737): XenForo_DataWriter->_delete()
#1 /var/www/library/EWRporta/Model/Promotes.php(94): XenForo_DataWriter->delete()
#2 /var/www/library/EWRporta/ControllerPublic/Thread.php(96): EWRporta_Model_Promotes->updatePromotion(Array)
#3 /var/www/library/XenForo/FrontController.php(310): EWRporta_ControllerPublic_Thread->actionPromote()
#4 /var/www/library/XenForo/FrontController.php(132): XenForo_FrontController->dispatch(Object(XenForo_RouteMatch))
#5 /var/www/index.php(13): XenForo_FrontController->run()
#6 {main}
Estado de la solicitud
array(3) {
  ["url"] => string(56) "http://www.dangoria.es/tema/evento-17-11-13.1078/promote"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(8) {
	["promote_icon"] => string(8) "disabled"
	["zone"] => string(3) "CET"
	["date"] => string(10) "2013-11-15"
	["hour"] => string(2) "01"
	["mins"] => string(2) "55"
	["ampm"] => string(2) "PM"
	["delete"] => string(16) "Delete Promotion"
	["_xfToken"] => string(8) "********"
  }
}

Y este otro:

PHP:
Info del error
Zend_Db_Statement_Mysqli_Exception: Mysqli prepare error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') OR EWRporta_promotes.promote_date < ? ) AND xf_thread.discussion_state = ' at line 11 - library/Zend/Db/Statement/Mysqli.php:77
Generado por: Lummox, hace 21 minutos
Seguimiento
#0 /var/www/library/Zend/Db/Statement.php(115): Zend_Db_Statement_Mysqli->_prepare('?????SELECT xf_...')
#1 /var/www/library/Zend/Db/Adapter/Mysqli.php(381): Zend_Db_Statement->__construct(Object(Zend_Db_Adapter_Mysqli), '?????SELECT xf_...')
#2 /var/www/library/Zend/Db/Adapter/Abstract.php(478): Zend_Db_Adapter_Mysqli->prepare('?????SELECT xf_...')
#3 /var/www/library/Zend/Db/Adapter/Abstract.php(734): Zend_Db_Adapter_Abstract->query('?????SELECT xf_...', Array)
#4 /var/www/library/EWRporta/Block/RecentNews.php(38): Zend_Db_Adapter_Abstract->fetchAll('?????SELECT xf_...', Array)
#5 /var/www/library/EWRporta/Model/Blocks.php(116): EWRporta_Block_RecentNews->getModule(Array, 1)
#6 /var/www/library/EWRporta/ViewPublic/Custom.php(71): EWRporta_Model_Blocks->getBlockParams(Array, 1)
#7 /var/www/library/XenForo/ViewRenderer/Abstract.php(217): EWRporta_ViewPublic_Custom->renderHtml()
#8 /var/www/library/XenForo/ViewRenderer/HtmlPublic.php(67): XenForo_ViewRenderer_Abstract->renderViewObject('EWRporta_ViewPu...', 'Html', Array, 'EWRporta_Portal')
#9 /var/www/library/XenForo/FrontController.php(533): XenForo_ViewRenderer_HtmlPublic->renderView('EWRporta_ViewPu...', Array, 'EWRporta_Portal', NULL)
#10 /var/www/library/XenForo/FrontController.php(156): XenForo_FrontController->renderView(Object(XenForo_ControllerResponse_View), Object(XenForo_ViewRenderer_HtmlPublic), Array)
#11 /var/www/index.php(13): XenForo_FrontController->run()
#12 {main}
Estado de la solicitud
array(3) {
  ["url"] => string(23) "http://www.dangoria.es/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}

He desactivado la cache del bloque (lei en algun sitio que quizas puede que resuelva el problema) sin resultado.

No se que mas hacer.... a que se debe esto?.
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Por lo que veo no te toma el thread_id y de ahí el error. ¿Por qué? Ni idea.

¿Qué versión de xenforo y qué versión de xenPortal usas?

Salud2
 

Lummox

Miembro
Mensajes
76
Puntuación de reacciones
2
Puntos
8
País
España
Página web
Web
He reinstalado Xenporta, parece que todo va bien ahora, pero....

Cuando trato de responder o crear un nuevo tema, me salta este error:

PHP:
Ha ocurrido el siguiente error:
 
 
 
 
Argument 1 passed to XenForo_DataWriter_Discussion_Thread::_discussionPostSave() must be of the type array, none given, called in /var/www/library/EWRporta/DataWriter/Discussion/Thread.php on line 7 and defined
XenForo_Application::handlePhpError() in XenForo/DataWriter/Discussion/Thread.php at line 183
XenForo_DataWriter_Discussion_Thread->_discussionPostSave() in EWRporta/DataWriter/Discussion/Thread.php at line 7
EWRporta_DataWriter_Discussion_Thread->_discussionPostSave() in XenForo/DataWriter/Discussion.php at line 391
XenForo_DataWriter_Discussion->_postSave() in XenForo/DataWriter.php at line 1385
XenForo_DataWriter->save() in XenForo/DataWriter/DiscussionMessage.php at line 1047
XenForo_DataWriter_DiscussionMessage->_saveDiscussionDataWriter() in XenForo/DataWriter/DiscussionMessage.php at line 530
XenForo_DataWriter_DiscussionMessage->_postSave() in XenForo/DataWriter.php at line 1385
XenForo_DataWriter->save() in Dark/TaigaChat/DataWriter/DiscussionMessage/Post.php at line 7
Dark_TaigaChat_DataWriter_DiscussionMessage_Post->save() in XenForo/ControllerPublic/Thread.php at line 504
XenForo_ControllerPublic_Thread->actionAddReply() in Waindigo/PostAsUser/Extend/XenForo/ControllerPublic/Thread.php at line 69
Waindigo_PostAsUser_Extend_XenForo_ControllerPublic_Thread->actionAddReply() in XenForo/FrontController.php at line 310
XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 132
XenForo_FrontController->run() in /var/www/index.php at line 13

Vale, es por que uso una version incorrecta de xenporta :p
 

Lummox

Miembro
Mensajes
76
Puntuación de reacciones
2
Puntos
8
País
España
Página web
Web
Nada, me esta troleando cosa mala el portal...

Ahora va bien, pero cuando quiero quitar un tema del portal, al darle a borrar la promocion, me manda a una pagina en blanco y el tema no se borra del portal.

No da errores en el log...

:confused:

Cuando le da, a veces da este error:

PHP:
Server Error
 
 
 
 
Cannot delete data without a condition
 
 
 
 
XenForo_DataWriter->_delete() in XenForo/DataWriter.php at line 1737
XenForo_DataWriter->delete() in EWRporta/Model/Promotes.php at line 94
EWRporta_Model_Promotes->updatePromotion() in EWRporta/ControllerPublic/Thread.php at line 96
EWRporta_ControllerPublic_Thread->actionPromote() in XenForo/FrontController.php at line 310
XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 132
XenForo_FrontController->run() in /var/www/index.php at line 13
 
Última edición por un moderador:

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Intenta con esto:
El archivo EWRporta/DataWriter/Promotes.php tiene este código:
Insertar CODE, HTML o PHP:
<?php
 
class EWRporta_DataWriter_Promotes extends XenForo_DataWriter
{
	protected $_existingDataErrorPhrase = 'requested_page_not_found';
 
	protected function _getFields()
	{
		return array(
			'EWRporta_promotes' => array(
				'thread_id'		=> array('type' => self::TYPE_UINT, 'required' => true),
				'promote_date'	=> array('type' => self::TYPE_UINT, 'required' => true),
				'promote_icon'	=> array('type' => self::TYPE_STRING, 'required' => true, 'default' => 'default',
					'allowedValues' => array('default', 'avatar', 'attach', 'image', 'medio', 'disabled'),
				),
				'promote_data'	=> array('type' => self::TYPE_STRING, 'required' => true, 'default' => '0'),
			)
		);
	}
 
	protected function _getExistingData($data)
	{
		if (!$threadID = $this->_getExistingPrimaryKey($data, 'thread_id'))
		{
			return false;
		}
 
		return array('EWRporta_promotes' => $this->getModelFromCache('EWRporta_Model_Promotes')->getPromoteByThreadId($threadID));
	}
 
	protected function _getUpdateCondition($tableName)
	{
		return 'thread_id = ' . $this->_db->quote($this->getExisting('thread_id'));
	}
}
Cámbialo por este otro (guarda los cambios y sobreescribe el archivo por FTP):
Rich (BB code):
<?php
 
class EWRporta_DataWriter_Promotes extends XenForo_DataWriter
{
	protected $_existingDataErrorPhrase = 'requested_page_not_found';
 
	protected function _getFields()
	{
		return array(
			'EWRporta_promotes' => array(
				'thread_id'		=> array('type' => self::TYPE_UINT, 'required' => true),
				'promote_date'	=> array('type' => self::TYPE_UINT, 'required' => true),
				'promote_icon'	=> array('type' => self::TYPE_STRING, 'required' => true, 'default' => 'default',
					'allowedValues' => array('default', 'avatar', 'attach', 'image', 'medio', 'disabled'),
				),
				'promote_data'	=> array('type' => self::TYPE_STRING, 'required' => true, 'default' => '0'),
			)
		);
	}
 
	protected function _getExistingData($data)
	{
		if (!$threadID = $this->_getExistingPrimaryKey($data, 'thread_id'))
		{
			return false;
		}
 
		return array('EWRporta_promotes' => $this->getModelFromCache('EWRporta_Model_Promotes')->getPromoteByThreadId($threadID));
	}
 
	protected function _getUpdateCondition($tableName)
	{
		return 'thread_id = ' . $this->_db->quote($this->getExisting('thread_id'[BCOLOR=#ffff00], $tableName[/BCOLOR]));
	}
}
Te remarco en negrita y azul, resaltado en amarillo, lo que añado.

Salud2
 

Lummox

Miembro
Mensajes
76
Puntuación de reacciones
2
Puntos
8
País
España
Página web
Web
Nada, he añadido lo que dices pero sigue dando el mismo error :S

Investigando he logrado encontrar la solucion para quien le pase esto.

Si añado en library/config.php la siguiente linea:

PHP:
ini_set('display_errors', true);

Para que me muestre el error en la pagina en blanco que aparece, me sale lo siguiente:

PHP:
Fatal error: Call to a member function query() on a non-object in /var/www/library/EWRporta/Model/Promotes.php on line 95

Si voy hasta esa linea en library/EWRporta/Model/Promotes.php pone esto:

PHP:
$db->query("DELETE FROM EWRporta_catlinks WHERE thread_id = ?", $input['thread_id']);

Asi pues, si cambiamos esta linea por esta otra:

PHP:
$this->_getDb()->query("DELETE FROM EWRporta_catlinks WHERE thread_id = ?", $input['thread_id']);

Con esto se solucionaria el problema

Un saludo ;).
 
Última edición por un moderador:

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Me alegro de que lo hayas solucionado. Gracias por compartirla. Así aprendemos todos.

Salud2
 
Arriba