Quelques articles de la catégorie: Acajoom

Acajoom Supprimer les guillemets pour un import

Appréciation moyenne:  / 0

Supprimer automatiquement les guillemets d'un fichier à importer 

Acajoom permet d'importer un fichier contenant des adresses afin de se créer une liste de diffusion (les abonnés)

Dans un autre article, nous avons vu comment faire en sorte qu'acajoom permette l'importation d'un fichier avec seulement deux paramètres.

Il faut savoir que par défaut, le fichier à importer doit être structué avec 4 paramètres qui sont Nom, adresse mail, envoi en html et membre du site (en gros).

Quelques modifications dans le code d'acajoom et on peut importer un fichier avec seulement Nom et adresse mail.

Mais la structure du fichier est exigeante, et il ne faut pas que ces deux paramètres soient encadrés par des guillemets, et ils doivent être séparés par une virgule:

Nom, adresse mail

La modification que nous allons faire maintenant va permettre d'importer un fichier structuré en:

"Nom","adresse mail"

Cette modif enlève tout simplement les guillemets au moment de l'importation.

Pour ce faire, allons dans le fichier:

/administrator/components/com_acajoom/classes/class.subscribers.php

et modifions la fonction:

function import($listId)

à la suite immédiate des deux lignes existantes suivantes:

$import = file_get_contents($path . $filename);
$import = str_replace(array("\r\n","\r"),"\n",$import);

rajouter simplement celle-ci:

// j'enlève les guillemets de l'import:
$import = str_replace("\"","",$import);

et voilà.

 

Acajoom résolution de quelques bugs mineurs

Appréciation moyenne:  / 0

Acajoom: petits bugs mineurs

En parcourant le code d'acajoom à la recherche de petites adaptations à faire au niveau importation nootamment, je suis tombé sur des petites choses à corriger.


Fichier /administrator/components/com_acajoom/admin.acajoom.html.php:
function showCompsList($update)

...

 $moreLink = '<a href="'.$component->homePath.'" traget="_blank">'. _ACA_MORE_INFO . '</a>';
 $tryitLink = '<a href="'.$component->download.'" traget="_blank">'. _ACA_TRY_IT . '</a>';


 

traget ne semble pas être un truc valide

corrigé comme suit:

  $moreLink = '<a href="'.$component->homePath.'" target="_blank">'. _ACA_MORE_INFO . '</a>';
  $tryitLink = '<a href="'.$component->download.'" target="_blank">'. _ACA_TRY_IT . '</a>';

 

Acajoom permettre un minimum de deux arguments lors de l'importation

Appréciation moyenne:  / 0

Acajoom: autoriser un minimum de deux champs pour l'importation des souscripteurs

Problème: j'ai un logiciel qui m'exporte mes contacts, mais il n'a dans ses données que l'adresse mail et le nom du contact.

Or, je ne souhaite pas reprendre les lignes exportées une à une pour rajouter les deux champs (inscrit et html) supplémentaires exigés par l'import de acajoom.

Il faut donc que je trouve une technique pour remplir ses champs automatiquement s'ils n'existent pas.

Après quelques recherches, je vais modifier le code du fichier:

/administrator/components/com_acajoom/classes/class.subscribers.php

Au niveau de la fonction:

function import($listId)

je cherche la partie concernant le test sur le nombre de paramètres de la ligne importée, et le voilà: 

if(count($values) != 4){
  echo '<br />'.acajoom::printM('red' , $row.' : Acajoom needs 4 arguments for each user separated by a comma (,)' );
  continue;
}

 La modification consiste à tester, dans le cas où le nombre de paramètres est différent de 4, si ce nombre est aussi inférieur à 2, et dans ce cas on poursuit le traitement en erreur à la ligne du contact suivant, comme le code d'origine lorsque les arguments ne sont pas 4.

Si le nombre d'argument n'est pas 4 et qu'il n'est pas inférieur à 2 (car mon fichier d'import est structuré avec 2 arguments, à adapter à chaque cas à ce niveau, j'ai fait simple pour moi), je rajoute les deux arguments manquants.

Voici le code modifié:

if(count($values) != 4)
{
	if(count($values) < 2)
	{
		echo '<br />'.acajoom::printM('red' , $row.' : Acajoom needs 4 arguments for each user separated by a comma (,)' );
		continue;
	}
else
	{
		$values[2] = 1;
		$values[3] = 1;
	}
}

et c'est tout, ça fonctionne très bien ainsi pour moi.

Reste un petit problème, le logiciel utilisé pour exporter les données génère les entrées en les encadrant de guillemets, et acajoom met du coup tout ça en erreur.

Je rajoute donc au niveau du code le remplacement de guillemet si trouvée par rien du tout:

 

Acajoom free Etendre l'éditeur sur toute la largeur

Appréciation moyenne:  / 0

Etendre l'éditeur sur toute la largeur

J'ai trouvé un défaut à la version free d'acajoom, c'est la faible largeur de l'éditeur lorsqu'on crée ou modifie une Infolettre.

Cette largeur est déterminée en fait par la partie à droite qui propose les options.

Pour corriger ça, j'ai décidé de modifier un peu le fichier gérant cette partie de acajoom:

/administrator/components/com_acajoom/mailings.acajoom.html.php 

Avec Firebug de Firefox, j'ai repéré la partie qui m'intéresse, dans la fonction function layout, un tableau paramétré comme suit:

<table class="acajoomtable" cellspacing="1" width="99%">

Ne restait plus qu'à repérer le bon fichier, cf plus haut, et à trouver le code correspondant.

Cette partie est composée d'un tableau à deux colonnes et deux lignes, la seconde colonne ayant une largeur définie à 450px.

Pour faire un premier test, j'ai enlevé de la colonne de droite la largeur définie et j'ai ajoutée dans celle de gauche contenant l'éditeur une largeur à 100%.

Résultat, ça fonctionne, on est donc au bon endroit, mais la partie paramètrages est horrible, normale.

La modification définitive que je vais faire consistera à remplacer ce tableau à deux colonnes par un tableau à une colonne et deux lignes.

Pour ce faire, j'ai modifié la fonction function layout en rajoutant du colspan=2 sur les deux premières colonnes, et en déplaçant la seconde colonne en la transformant en une ligne, du classique de gestion de tableaux en html.

ça va beaucoup mieux ainsi.