Fork me on GitHub






inclure xoops tag dans un module
Semi pro
Inscrit: 06/09/2005 01:34
De Royan
Messages: 609
Bonjour a tous !

j'essaie d'inclure xoops tag dans catads (je sais encore catads !!! )

j'y suis partiellement arriver, catads a déjà un système de tags qui fonctionne plus ou moins (ne filtre pas les le, la, et etc...)

Donc je voulais me servir de ce système pour lui ajouter la pris en charge de xoops tag (2.30 je crois) et donc de deux block "nuage de tags" et "top tag"

voici comment je m'y suis pris (pas forcement la meilleur façon)

j'ai ajouter dans xoops_version.php
//ajout CPascal 4/09/2009 - blocks tags de xoops tag
$modversion['blocks'][6]['file'] = "catads_block_tag.php";
$modversion['blocks'][6]['name'] = _MI_CATADS_TAG_CLOUD;
$modversion['blocks'][6]['description'] = "Show tag cloud";
$modversion['blocks'][6]['show_func'] = "catads_tag_block_cloud_show";
$modversion['blocks'][6]['edit_func'] = "catads_tag_block_cloud_edit";
$modversion['blocks'][6]['options'] = "100|0|150|80";
$modversion['blocks'][6]['template'] = 'catads_tag_block_cloud.html';

$modversion['blocks'][7]['file'] = "catads_block_tag.php";
$modversion['blocks'][7]['name'] = _MI_CATADS_TOP_TAGS;
$modversion['blocks'][7]['description'] = "Show top tag";
$modversion['blocks'][7]['show_func'] = "catads_tag_block_top_show";
$modversion['blocks'][7]['edit_func'] = "catads_tag_block_top_edit";
$modversion['blocks'][7]['options'] = "50|30|c";
$modversion['blocks'][7]['template'] = 'catads_tag_block_top.html';
//fin de l'ajout


et une variable dans préférence du module
//ajout CPascal 4/09/2009 - blocks tags de xoops tag
$modversion['config'][$i]['name'] = 'usercantag';
$modversion['config'][$i]['title'] = '_MI_CATADS_USE_TAGS';
$modversion['config'][$i]['description'] = '';
$modversion['config'][$i]['formtype'] = 'yesno';
$modversion['config'][$i]['valuetype'] = 'int';
$modversion['config'][$i]['default'] = 0;
$i++;
//fin de l'ajout


Puis dans les fichiers: form1_ads.inc.php, form2_ads.inc.php et form3_ads.inc.php
//Modif CPascal le 5/09/2009            
        //$title_tags = new XoopsFormText(_MD_CATADS_TAGS, "ads_tags", 52, 100, $ads_tags);
        //$adsform->addElement($title_tags);
//ajout CPascal le 5/09/2009 - ajout fonction xoops tag
if ( $xoopsModuleConfig['usercantag'] ) {
       require_once 
XOOPS_ROOT_PATH '/modules/tag/include/formtag.php';
       
$title_tags = new XoopsFormTag('ads_tags'52100$ads_tags);
       
$adsform -> addElement($title_tags);
    } else {
       
$adsform -> addElement( new XoopsFormHidden'ads_tags'$ads_tags ) );
}
//fin de l'ajout


jusqu'à là je pense que c'est correct la texbox de xoops tag s'affiche dans les formulaires de soumission, de modification etc...
Open in new window

après cela se complique,

j'ai créer un fichier: catads_block_tag.php que j'ai mis dans le dossier blocks du module:
function catads_tag_block_cloud_show($options)
{
    require_once 
XOOPS_ROOT_PATH.'/modules/tag/blocks/block.php';
// sans ce code le block s'affiche mais affiche les tags de d'autres modules et affiche:
//Undefined variable: module_dirname in file /modules/catads/blocks/catads_block_tag.php line 14    
    /*if(!isset($module_dirname)) {
        $module_dirname = 'catads'; 
    }*/
    
return tag_block_cloud_show($options$module_dirname);
}

function 
catads_tag_block_cloud_edit($options)
{
    require_once 
XOOPS_ROOT_PATH.'/modules/tag/blocks/block.php';
    return 
tag_block_cloud_edit($options);
}

function 
catads_tag_block_top_show($options)
{
    require_once 
XOOPS_ROOT_PATH.'/modules/tag/blocks/block.php';
    if(!isset(
$module_dirname)) {  // le block ne s'affiche pas !!!
        
$module_dirname 'catads';
    }
    return 
tag_block_top_show($options$module_dirname);
}

function 
catads_tag_block_top_edit($options)
{
    require_once 
XOOPS_ROOT_PATH.'/modules/tag/blocks/block.php';
    return 
tag_block_top_edit($options);
}


la je pense qu'il y a des problèmes ?!

puis

j'ai créer la page: plugin.tag.php que j'ai mis dans le dossier include du module:

function catads_tag_iteminfo(&$items)
{
    
$ads_tags = array();
    foreach (
array_keys($items) as $cat_id) {
        
// Some handling here to build the link upon catid
            // If catid is not used, just skip it
        
foreach (array_keys($items[$cat_id]) as $ads_tags) {
            
// In article, the item_id is "art_id"
            
$ads_tags[] = intval($ads_tags);
        }
    }
    
$item_handler =& xoops_getmodulehandler("ads_tags""catads");
    
$items_obj $item_handler->getObjects(new Criteria("ads_tags""(" implode(", "$catads_ads) . ")""IN"), true);
    
    foreach (
array_keys($items) as $cat_id) {
        foreach (
array_keys($items[$cat_id]) as $ads_tags) {
            
$item_obj =& $items_obj[$ads_tags];
            
$items[$ads_id][$ads_tags] = array(
                
"title"     => $item_obj->getVar("ads_title"),
                
"uid"       => $item_obj->getVar("uid"),
                
"link"      => "adslist.php?search=1&words=".$mots_tags[$i]."",
                
"time"      => $item_obj->getVar("item_time"),
                
"tags"      => tag_parse_tag($item_obj->getVar("ads_tags""n")), // optional
                
"content"   => "",
                );
        }
    }
    unset(
$items_obj);    
}
/** Remove orphan tag-item links **/
function mymodule_tag_synchronization($mid
{

}


La je pense que c'est un peut n'importe quoi ! je n'arrête pas de modifier ce fichier et le fichier catads_block_tag.php je me base sur le module news et oledrion comme exemple mais je n'y parviens pas les blocks s'affiche mais suivant les commentaires dans catads_block_tag.php au dessus et surtout les tags de catads n'apparaîssent pas dans les blocks "Nuage de mots clés de catads" et "top tags de catads"

par contre j'ai les tags des modules news et oledrion dedans et dans l'admin de xoops tag catads n'est pas détecter news et oledrion oui mais pas catads

Open in new window

qui serait m'indiquer la bonne démarche

je viens d'ajouter dans le fichier plugin.tag.php sa:
function catads_tag_synchronization($mid)
{
    global 
$xoopsDB;
    
$item_handler_keyName 'ads_id';
    
$item_handler_table $xoopsDB->prefix('catads_ads');
    
$link_handler =& xoops_getmodulehandler('link''tag');
    
$where "1=1";
    
$where1 "1=1";

    
/* clear tag-item links */
    
if($link_handler->mysql_major_version() >= 4):
    
$sql =    "    DELETE FROM {$item_handler_table->table}".
            
"    WHERE ".
            
"        ads_tags = {$mid}".
            
"        AND ".
            
"        ( ads_tags NOT IN ".
            
"            ( SELECT DISTINCT {$item_handler_keyName} ".
            
"                FROM {$item_handler_table} ".
            
"                WHERE $where".
            
"            ) ".
            
"        )";
    else:
    
$sql =     "    DELETE {$item_handler_table}.ads_tags = aa.{$item_handler_keyName}".
            
"    LEFT JOIN {$item_handler_table}.ads_tags = aa.{$item_handler_keyName} ".
            
"    WHERE ".
            
"        ads_tags = {$mid}".
            
"        AND ".
            
"        ( aa.{$item_handler_keyName} IS NULL".
            
"            OR $where1".
            
"        )";
    endif;
    
//if (!$item_handler_table->db->queryF($sql)) {
    //    trigger_error($item_handler_table->db->error());
  //    }


mais évidement ce n'est pas bon !:oops:
merci a vous

Posté le : 05/09/2009 15:53
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

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

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