Fork me on GitHub


 Bas   Précédent   Suivant

« 1 ... 32 33 34 (35) 36 37 38 »


Re: Upload mime type
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
Les fichiers et la gestion des mime peuvent etre a plusieurs endroits...

Au niveau de xoops effectivement mais si tu n'as rien modifie sur les class dunoyaux y a aucune raison que le pb viennent de la
Ca peut venir de ta config PHP et meme de ta config APACHE (ou IIS).

Donc deja lance un petit phpinfo() et regardes si tu as mime_magic je sais plus quoi de lancer

Posté le : 30/08/2006 16:39
Transférer la contribution vers d'autres applications Transférer


Re: Quel est l'éditeur que vous recommandez pour PHP ?
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
J'utilisais aussi UltraEdit mais depuis 2 mois je me suis mis a PHPEclipse...
Ca va un peu plus loin que UltraEdit, ca m'annonce direct ou j'ai des erreurs de syntaxe (; oublie, ) } etc...)
http://www.syncreations.com/tutoriel_eclipse_phpeclipse_dbg.html

Sinon dans php solution de ce mois il y a PHPEdit de fournis gratuitement, c'est la version 2.0, j'ai juste ouvert et pas trop tester mais ca a l'air pas trop mal.

Posté le : 30/08/2006 10:18
Transférer la contribution vers d'autres applications Transférer


Re: Probleme avec un site
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
au niveau de ta base ca doit etre bon, vu que j'ai reussis a creer un user, et a poster sur le forum.
Donc apres regarde si tu as pas vire les droits au niveau du forum pour ton user (ce qui est bizarre car normalement sur newbb si tu as pas les droits tu as pas les boutons pour...)

Regardes tes droits au niveau admin de xoops, regardes aussi tes droits au niveau de la base de donnee... et regardes voir si au niveau securite tu es bien, car typiquement le post sur lequel j'ai poste est pas tres net, il a ete fait par un moteur qqconque, de là a penser qu'il t'a pourris qqchose...

Posté le : 29/08/2006 16:27
Transférer la contribution vers d'autres applications Transférer


Re: Probleme avec un site
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
regardes si par hasard tu n'as pas vire les droits de maj etc... au niveau de la base de donnee.

Posté le : 29/08/2006 16:18
Transférer la contribution vers d'autres applications Transférer


Re: Attribut "alt" pour les avatars des membres
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
ben dans ce cas tu remplis les 2... comme ca les gens verront ton libelle et google ton alt mais typiquement ici ton alt ne sert a rien pour google!!!!
C'est l'image des avatars, et leur texte alternatif, je vois pas ou est l'utilite de referencer les textes des alt des avatars pour google dans ce cas precis (ni pour google ni pour toi).

De toutes façons tu peux aussi faire ca :
<img class="comUserImg" src="<{$xoops_upload_url}>/<{$topic_post.poster.avatar}>" alt="<{$topic_post.poster.name}>" title="<{$topic_post.poster.name}>" />
(mais je vois pas l'utilite de renseigner alt ici...)

Je repete IE utilise le title pour infobulle exactement comme tous les browser, c'est juste quand le title n'est pas present qu'il affiche le texte de alt.
Et c'est le seul a avoir fait ce choix. Et quand les gens renseignent que le alt ils utilisent cette propriete de IE sans voir tous les gens qui n'utilisent pas IE. Et il y a de plus en plus de monde sur FF ...

Posté le : 29/08/2006 08:44
Transférer la contribution vers d'autres applications Transférer


Re: Attribut "alt" pour les avatars des membres
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
et tant pis pour les de plus en plus nombreux utilisateurs de Firefox ;)

fait cela ca sera bien mieux, ca marchera pour tous les browsers :
<img class="comUserImg" src="<{$xoops_upload_url}>/<{$topic_post.poster.avatar}>" alt="" title="<{$topic_post.poster.name}>" />


(alt est a mettre meme a vide sinon ca gere des erreurs si tu passes une validation w3c sur ton site)

Posté le : 28/08/2006 23:11
Transférer la contribution vers d'autres applications Transférer


Re: Erreur SQL
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
vu sur le manuel MySQL http://dev.mysql.com/doc/refman/5.0/fr/create-table.html
Citation :

#

La valeur NULL est traitée différemment dans les colonnes de type TIMESTAMP. Vous ne pouvez pas stocker de valeur NULL littérale dans une colonne TIMESTAMP; insérer une valeur NULL dans une telle colonne revient à insérer la date et l'heure courante. Car les colonnes TIMESTAMP ignorent les attributs NULL et NOT NULL.

Cela facilite grandement l'utilisation des colonnes TIMESTAMP pour les clients MySQL : le serveur indique que ces colonnes peuvent se voir assigner une valeur NULL (ce qui est vrai), même si les colonnes TIMESTAMP ne contiendront jamais de valeur NULL. Vous pouvez le constater lorsque vous utiliser la commande DESCRIBE nom_de_table pour avoir une description de votre table.

Notez qu'affecter la valeur 0 à une colonne TIMESTAMP n'est pas la même chose que lui affecter la valeur NULL, car 0 est une valeur TIMESTAMP valide.
#

Une valeur DEFAULT doit être une constante, ¸a ne peut être une fonction ou une expression. Cela signifie notamment que vous ne pouvez pas donner une valeur par défaut à une colonne de date, le résultat de la fonction NOW() ou CURRENT_DATE.

Posté le : 28/08/2006 22:36
Transférer la contribution vers d'autres applications Transférer


Re: Criteria is not null
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
Ca marche chez moi de cette façon.
Pour moi IS NULL ou IS NOT NULL sont des operateurs donc j'ai modifié la classe criteria pour que cela soit pris comme tel
(je mets tout le fichier criteria et pas que la methode render car j'ai modifie un truc aussi ailleurs)

<?php
// $Id: criteria.php 558 2006-06-20 06:35:23Z skalpa $
//  ------------------------------------------------------------------------ //
//                XOOPS - PHP Content Management System                      //
//                    Copyright (c) 2000 XOOPS.org                           //
//                       <http://www.xoops.org/>   ... nbsp;   //
//  ------------------------------------------------------------------------ //
//  This program is free software; you can redistribute it and/or modify     //
//  it under the terms of the GNU General Public License as published by     //
//  the Free Software Foundation; either version 2 of the License, or        //
//  (at your option) any later version.                                      //
//                                                                           //
//  You may not change or alter any portion of this comment or credits       //
//  of supporting developers from this source code or any supporting         //
//  source code which is considered copyrighted (c) material of the          //
//  original comment or credit authors.                                      //
//                                                                           //
//  This program is distributed in the hope that it will be useful,          //
//  but WITHOUT ANY WARRANTY; without even the implied warranty of           //
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //
//  GNU General Public License for more details.                             //
//                                                                           //
//  You should have received a copy of the GNU General Public License        //
//  along with this program; if not, write to the Free Software              //
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
//  ------------------------------------------------------------------------ //
// Author: Kazumi Ono (AKA onokazu)                                          //
// URL: http://www.myweb.ne.jp/http://www.xoops.org/http://jp.xoops.org/ //
// Project: The XOOPS Project                                                //
// ------------------------------------------------------------------------- //
// Modified by: Nathan Dial                                                  //
// Date: 20 March 2003                                                       //
// Desc: added experimental LDAP filter generation code                      //
//       also refactored to remove about 20 lines of redundant code.         //
// ------------------------------------------------------------------------- //
// Modified by: Lionel FORTE Aka Garrath                                     //
// Date: 28 Aout 2006                                                        //
// Desc: added IS NULL and IS NOT NULL test                                  //
// ------------------------------------------------------------------------- //

/**
 * 
 * 
 * @package     kernel
 * @subpackage  database
 * 
 * @author        Kazumi Ono    <onokazu@xoops.org>
 * @copyright    copyright (c) 2000-2003 XOOPS.org
 */

/**
 * A criteria (grammar?) for a database query.
 * 
 * Abstract base class should never be instantiated directly.
 * 
 * @abstract
 * 
 * @package     kernel
 * @subpackage  database
 * 
 * @author        Kazumi Ono    <onokazu@xoops.org>
 * @copyright    copyright (c) 2000-2003 XOOPS.org
 */
class CriteriaElement
{
    
/**
     * Sort order
     * @var    string
     */
    
var $order 'ASC';

    
/**
     * @var    string
     */
    
var $sort '';

    
/**
     * Number of records to retrieve
     * @var    int
     */
    
var $limit 0;

    
/**
     * Offset of first record
     * @var    int
     */
    
var $start 0;

    
/**
     * @var    string
     */
    
var $groupby '';

    
/**
     * Constructor
     **/
    
function CriteriaElement()
    {

    }

    
/**
     * Render the criteria element
     */
    
function render()
    {

    }

    
/**#@+
    * Accessor
    */
    /**
     * @param    string  $sort
     */
    
function setSort($sort)
    {
        
$this->sort $sort;
    }

    
/**
     * @return    string
     */
    
function getSort()
    {
        return 
$this->sort;
    }

    
/**
     * @param    string  $order
     */
    
function setOrder($order)
    {
        if (
'DESC' == strtoupper($order)) {
            
$this->order 'DESC';
        }
    }

    
/**
     * @return    string
     */
    
function getOrder()
    {
        return 
$this->order;
    }

    
/**
     * @param    int $limit
     */
    
function setLimit($limit=0)
    {
        
$this->limit intval($limit);
    }

    
/**
     * @return    int
     */
    
function getLimit()
    {
        return 
$this->limit;
    }

    
/**
     * @param    int $start
     */
    
function setStart($start=0)
    {
        
$this->start intval($start);
    }

    
/**
     * @return    int
     */
    
function getStart()
    {
        return 
$this->start;
    }

    
/**
     * @param    string  $group
     */
    
function setGroupby($group){
        
$this->groupby $group;
    }

    
/**
     * @return    string
     */
    
function getGroupby(){
        return 
' GROUP BY '.$this->groupby;
    }
    
/**#@-*/
}

/**
 * Collection of multiple {@link CriteriaElement}s 
 * 
 * @package     kernel
 * @subpackage  database
 * 
 * @author        Kazumi Ono    <onokazu@xoops.org>
 * @copyright    copyright (c) 2000-2003 XOOPS.org
 */
class CriteriaCompo extends CriteriaElement
{

    
/**
     * The elements of the collection
     * @var    array   Array of {@link CriteriaElement} objects
     */
    
var $criteriaElements = array();

    
/**
     * Conditions
     * @var    array
     */
    
var $conditions = array();

    
/**
     * Constructor
     * 
     * @param   object  $ele
     * @param   string  $condition
     **/
    
function CriteriaCompo($ele=null$condition='AND')
    {
        if (isset(
$ele) && is_object($ele)) {
            
$this->add($ele$condition);
        }
    }

    
/**
     * Add an element
     * 
     * @param   object  &$criteriaElement
     * @param   string  $condition
     * 
     * @return  object  reference to this collection
     **/
    
function &add(&$criteriaElement$condition='AND')
    {
        
$this->criteriaElements[] =& $criteriaElement;
        
$this->conditions[] = $condition;
        return 
$this;
    }

    
/**
     * Make the criteria into a query string
     * 
     * @return    string
     */
    
function render()
    {
        
$ret '';
        
$count count($this->criteriaElements);
        if (
$count 0) {
            
$ret '('$this->criteriaElements[0]->render();
            for (
$i 1$i $count$i++) {
                
// Garrath 28/08/2006
                // Correction au cas ou criteriaElements[$i]->render() 
                // ne ramene rien pas la peine de mettre le AND ou OR
                
$critere $this->criteriaElements[$i]->render();
                if (
$critere)
                    
$ret .= ' '.$this->conditions[$i].' '.$critere;
            }
            
$ret .= ')';
        }
        return 
$ret;
    }

    
/**
     * Make the criteria into a SQL "WHERE" clause
     * 
     * @return    string
     */
    
function renderWhere()
    {
        
$ret $this->render();
        
$ret = ($ret != '') ? 'WHERE ' $ret $ret;
        return 
$ret;
    }

    
/**
     * Generate an LDAP filter from criteria
     *
     * @return string
     * @author Nathan Dial ndial@trillion21.com
     */
    
function renderLdap(){
        
$retval '';
        
$count count($this->criteriaElements);
        if (
$count 0) {
            
$retval $this->criteriaElements[0]->renderLdap();
            for (
$i 1$i $count$i++) {
                
$cond $this->conditions[$i];
                if(
strtoupper($cond) == 'AND'){
                    
$op '&';
                } elseif (
strtoupper($cond)=='OR'){
                    
$op '|';
                }
                
$retval "($op$retval$this->criteriaElements[$i]->renderLdap().")";
            }
        }
        return 
$retval;
    }
}


/**
 * A single criteria
 * 
 * @package     kernel
 * @subpackage  database
 * 
 * @author        Kazumi Ono    <onokazu@xoops.org>
 * @copyright    copyright (c) 2000-2003 XOOPS.org
 */
class Criteria extends CriteriaElement
{

    
/**
     * @var    string
     */
    
var $prefix;
    var 
$function;
    var 
$column;
    var 
$operator;
    var 
$value;

    
/**
     * Constructor
     * 
     * @param   string  $column
     * @param   string  $value
     * @param   string  $operator
     **/
    
function Criteria($column$value=''$operator='='$prefix ''$function '') {
        
$this->prefix $prefix;
        
$this->function $function;
        
$this->column $column;
        
$this->value $value;
        
$this->operator $operator;
    }

    
/**
     * Make a sql condition string
     * 
     * @return  string
     **/
    
function render() {
        
// Garrath 28/08/2006
        // Rajout test sur IS NULL ou IS NOT NULL 
        
if ( in_arraystrtoupper($this->operator), array('IS NULL''IS NOT NULL')))
        {
            
$value '';
        }
        elseif (
'' === ($value trim($this->value))){
            return 
'';
        }
        elseif ( !
in_arraystrtoupper($this->operator), array('IN''NOT IN') ) ) {
            if ( ( 
substr$value0) != '`' ) && ( substr$value, -) != '`' ) ) {
                
$value "'$value'";
            } elseif ( !
preg_match'/^[a-zA-Z0-9_.-`]*$/'$value ) ) {
                
$value '``';
            }
        }
        
$clause = (!empty($this->prefix) ? "{$this->prefix}." "") . $this->column;
        if ( !empty(
$this->function) ) {
            
$clause sprintf($this->function$clause);
        }
        
$clause .= {$this->operator} $value";
        return 
$clause;
    }

    
/**
     * Generate an LDAP filter from criteria
     *
     * @return string
     * @author Nathan Dial ndial@trillion21.com, improved by Pierre-Eric MENUET pemen@sourceforge.net
     */
    
function renderLdap(){
        if (
$this->operator == '>') {
            
$this->operator '>=';
        }
        if (
$this->operator == '<') {
            
$this->operator '<=';
        }

        if (
$this->operator == '!=' || $this->operator == '<>') {
            
$operator '=';
            
$clause "(!(" $this->column $operator $this->value "))";
        }
        else {
            if (
$this->operator == 'IN') {
                
$newvalue str_replace(array('(',')'),'',
                
$this->value);
                
$tab explode(',',$newvalue);
                foreach (
$tab as $uid)
                {
                    
$clause .= '(' $this->column '=' $uid
                    
.')';
                }
                
$clause '(|' $clause ')';
            }
            else {
                
$clause "(" $this->column $this->operator $this->value ")";
            }
        }
        return 
$clause;
    }

    
/**
     * Make a SQL "WHERE" clause
     * 
     * @return    string
     */
    
function renderWhere() {
        
$cond $this->render();
        return empty(
$cond) ? '' "WHERE $cond";
    }
}
?>


a utiliser comme cela :
$criteria->add (new criteria('fax''''is not null'));

Posté le : 28/08/2006 22:29
Transférer la contribution vers d'autres applications Transférer


On peut pas heriter des classes du kernel de xoops!
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
Bonjour, j'ai poste un petit post sur le forum sourceforge ici http://sourceforge.net/forum/forum.ph ... d=1561098&forum_id=347994

Mais bon je suis vraiment pas sur que ce je dis en anglais soit super comprehensible donc si y en a dans le coin qui ecrivent un peu mieux l'anglais que moi ca serait pas mal ...

J'explique le pb.

C'est simple on ne peut pas heriter des classes du kernel de xoops qui ont un handler, c'est a dire les classes du kernel qui ont des acces aux base de donnée. Pour etre plus precis on peut pas heriter de leur handler.

Je veux modifier un petit truc sur les privmessages par exemple, je cree betement une classe etendant la classe de base, et du coup un handler etendant aussi la classe handler de base. J'ai juste un truc a modifier et je fais cela proprement dans un module pour ne pas aller toucher les classes du kernel.
Et la on tombe sur un pb, dans une bonne partie des methodes des classes handler du kernel, on teste a chaque fois que l'objet passe en parametre fait partie de la classe X.
Le hic c'est que lors d'un heritage de la classe et du handler, automatiquement mon objet passé en parametre fait partie de la classe fille (X') et non de la classe attendue par le handler...

Vous voyez meme en Français c pas tres clair ;)

Avec du code c peut-etre plus simple.
Je cree une classe customPM qui etends la classe du kernel Privmessage
class CustomPM extends XoopsPrivmessage
{
...
}


je cree aussi le handler qui va bien qui herite du handler de XoopsPrivmessage
class XoopsCustomPMHandler extends XoopsPrivmessageHandler
{
...
}


Toutes les methodes que je surcharge ok, ca se passe bien par contre les methodes que je veux utiliser sans modif par rapport XoopsPrivmessageHandler, la ca marche pas!!!!
Pourquoi? ben simplement par ce que il y a un test de fait sur le nom de la classe de l'objet. Exemple methode insert du handler
class XoopsPrivmessageHandler extends XoopsObjectHandler
{
...
    function 
insert(&$pm)
    {
        if (
strtolower(get_class($pm)) != 'xoopsprivmessage') {
            return 
false;
        }
    ....
    }
...
}

Alors oui je pourrais recopier le code complet de XoopsPrivmessageHandler et juste modifier ce dont j'ai besoin c'est clair, mais alors la du coup a quoi ca sert de faire de l'objet

Donc pour moi il ne faut pas faire de test ici sur le nom de la classe sinon cela veut dire qu'on peut pas heriter (etendre) ces classes, il faut faire un test sur le fait que l'objet en parametre est soit de la classe soit d'une classe fille.

A priori d'apres une reponse que j'ai eu par is_a() on doit y arriver (pas encore tester mais pas de raison que ca soit pas bon)
Donc normalement ca devrait donner ca
class XoopsPrivmessageHandler extends XoopsObjectHandler
{
...
    function 
insert(&$pm)
    {
        if (!
is_a($pm'xoopsprivmessage')) {
            return 
false;
        }
    ....
    }
...
}



Voilà, en français ca doit etre a peu pres clair
Si quelqu'un se sent de le faire en anglais

Posté le : 28/08/2006 18:32
Transférer la contribution vers d'autres applications Transférer


Re: Attribut "alt" pour les avatars des membres
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
Je sais pas si le hack existe mais ca me parait pas super difficile a faire.
Tu as deja les informations de passer vu que tu affiches deja le speudo du bonhomme, il faut juste modifier le template qui va bien.

Par contre attention, il faut pas mettre cela dans l'attribut "alt" sinon tu ne le verras pas dans tous les browsers (typiquement Firefox). Il faut le mettre dans l'attribut "title".

Dans la norme html, l'attribut title est sense t'afficher des infos quand tu passes avec ta souris sur une image.
L'attribut "alt" lui est sense t'afficher quelquechose si jamais l'image ne s'est pas chargée, c'est alt pour alternatif!
Ce qui se passe c'est que IE affiche l'attribut alt si l'attribut title n'est pas renseigné, c'est un choix de IE et de lui seul.

La chose correcte est donc de le mettre dans title si tu veux voir la meme chose s'afficher sous IE et FF (et dans un sens plus large dans tous les browser).

Posté le : 28/08/2006 17:31
Transférer la contribution vers d'autres applications Transférer



 Haut
« 1 ... 32 33 34 (35) 36 37 38 »




Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

27 Personne(s) en ligne (24 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 27 | Plus ...