Fil d'une campagne
BD
Ajoutez la valeur campaign au champ thread_type de la table thread :
Ajoutez la valeur sms au champ content_type de la table node_content :
Créez la table content_sms :
`content_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`locale` enum('en','fr') NOT NULL DEFAULT 'fr',
`text` text,
PRIMARY KEY (`content_id`,`locale`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Configuration
Dans le fichier config.inc, ajoutez le type de fil campaign au paramètre $supported_threads :
- $supported_threads=array('thread', 'folder', 'story', 'book', 'rss', 'newsletter', 'campaign'); // 'thread', 'folder', 'story', 'book', 'rss', 'newsletter'
Ajoutez la description du contenu sms au paramètre $contents_model :
- $contents_model = array(
- 'text' => array('text' => array('type' => 'string', 'null' => true), 'eval' => array('type' => 'boolean', 'default' => false)),
- 'infile' => array('path' => array('type' => 'string', 'null' => true)),
- 'download' => array('name' => array('type' => 'string', 'null' => true), 'path' => array('type' => 'string', 'null' => true)),
- 'file' => array('path' => array('type' => 'string', 'null' => true), 'start' => array('type' => 'number', 'default' => 0), 'end' => array('type' => 'number', 'default' => 0), 'format' => array('type' => 'string', 'null' => true), 'lineno' => array('type' => 'boolean', 'default' => true)),
- 'youtube' => array('id' => array('type' => 'string', 'null' => true), 'width' => array('type' => 'number', 'default' => 0), 'height' => array('type' => 'number', 'default' => 0), 'center' => array('type' => 'boolean'), 'miniature' => array('type' => 'string', 'null' => true), 'title' => array('type' => 'string', 'null' => true), 'autoplay' => array('type' => 'boolean')),
- 'sms' => array('text' => array('type' => 'string', 'null' => true)),
- );
Ajoutez le type sms au paramètre $supported_contents :
- $supported_contents=array('text', 'infile', 'download', 'file', 'youtube', 'sms'); // 'text', 'infile', 'download', 'file', 'youtube'
Limitez les types de contenus pour un fil de type campaign à sms en éditant le paramètre $limited_contents :
- $limited_contents=array('rss' => array('text'), 'newsletter' => array('text'), 'campaign' => array('sms'));
Code
Ajoutez l'option campaign après l'option newsletter au sélecteur de type de fil dans la vue editing/threadeditsummary en français et en anglais :
- <?php elseif ($type == 'newsletter'): ?>
- <option value="newsletter"<?php if ($thread_type == 'newsletter'): ?> selected="selected"<?php endif; ?>>Infolettre</option>
- <?php elseif ($type == 'campaign'): ?>
- <option value="campaign"<?php if ($thread_type == 'campaign'): ?> selected="selected"<?php endif; ?>>Campagne</option>
- <?php endif; ?>
- <?php elseif ($type == 'newsletter'): ?>
- <option value="newsletter"<?php if ($thread_type == 'newsletter'): ?> selected="selected"<?php endif; ?>>Newsletter</option>
- <?php elseif ($type == 'campaign'): ?>
- <option value="campaign"<?php if ($thread_type == 'campaign'): ?> selected="selected"<?php endif; ?>>Campaign</option>
- <?php endif; ?>
Ajoutez l'option campaign après l'option newsletter au sélecteur de type de fil dans la vue editing/threadeditall en français et en anglais :
- <?php elseif ($type == 'newsletter'): ?>
- <option value="newsletter"<?php if ($new_thread_type == 'newsletter'): ?> selected="selected"<?php endif; ?>>Infolettre</option>
- <?php elseif ($type == 'campaign'): ?>
- <option value="campaign"<?php if ($new_thread_type == 'campaign'): ?> selected="selected"<?php endif; ?>>Campagne</option>
- <?php endif; ?>
- <?php elseif ($type == 'newsletter'): ?>
- <option value="newsletter"<?php if ($new_thread_type == 'newsletter'): ?> selected="selected"<?php endif; ?>>Newsletter</option>
- <?php elseif ($type == 'campaign'): ?>
- <option value="campaign"<?php if ($new_thread_type == 'campaign'): ?> selected="selected"<?php endif; ?>>Campaign</option>
- <?php endif; ?>
Ajoutez le traitement du type de contenu sms dans la vue editing/nodecontenteditor en français et en anglais :
- <?php elseif ($type == 'youtube'): ?>
- <option value="youtube" <?php echo $selected == 'youtube' ? 'selected="youtube"' : ''; ?>>YouTube</option>
- <?php elseif ($type == 'sms'): ?>
- <option value="sms" <?php echo $selected == 'sms' ? 'selected="selected"' : ''; ?>>SMS</option>
- <?php endif; ?>
Ajoute l'option sms après l'option youtube au sélecteur de type de contenu.
- $content_sms_text='';
- extract($c); /* content_id content_number content_ignored content_type ... */
Initialise la variable contenant le texte du SMS avant d'extraire les données collectées par le bloc nodecontenteditor.
- <?php case 'sms': ?>
- <label>SMS :</label>
- <?php break; ?>
- <?php endswitch; ?>
Affiche le label du contenu.
- <?php case 'sms': ?>
- <textarea id="content_sms_text_<?php echo $i; ?>" name="content_sms_text[<?php echo $i; ?>]" cols="80" rows="5"><?php if ($content_sms_text): ?><?php echo htmlspecialchars($content_sms_text, ENT_COMPAT, 'UTF-8'); ?><?php endif; ?></textarea>
- <?php break; ?>
- <?php endswitch; ?>
Affiche le champ de saisie du texte du SMS.
Ajoutez l'affichage d'un contenu de type sms à la vue nodecontent :
- case 'sms':
- $text = $c['text'];
- if ($text) {
- echo '<div class="sms">', PHP_EOL;
- echo '<p>', htmlspecialchars($text, ENT_COMPAT, 'UTF-8'), '</p>', PHP_EOL;
- echo '</div>', PHP_EOL;
- }
- break;
Ajoutez la préparation de paramètres de la vue pour un contenu de type sms dans le bloc nodecontent :
- case 'sms':
- $text=$c['content_sms_text'];
- $contents[] = compact('type', 'text');
- break;
Test
Connectez-vous
en tant qu'administrateur.
Naviguez dans l'éditeur
jusqu'à la liste des fils.
Ajoutez un fil du type Campagne avec le titre BarFoo.
NOTE : Ce fil contient les campagnes gérées par un client. Dans un chapitre ultérieur, il sera créé automatiquement dès l'enregistrement d'un nouvel utilisateur.
Éditez le fil BarFoo.
Créez un contenu avec le titre Le moteur web.
Éditez-le.
Entrez Première campagne de promotion d'iZend auprès des éditeurs de logiciels comme extrait et les mots clés iZend moteur web dans le nuage.
Décochez toutes les options.
Appuyez sur Éditer.
Ajoutez un contenu du type SMS.
Entrez Créez votre site multimédias en quelques minutes avec iZend - Le moteur web : https://www.izend.org comme texte du SMS.
un type # ou le #
le contenu
Appuyez sur Modifier.
Affichez
le noeud.
Créez votre site multimédias en quelques minutes avec iZend - Le moteur web : https://www.izend.org
Cliquez sur le clavier
pour revenir en mode édition.
Appuyez sur le drapeau
pour afficher la version en anglais.
Entrez le titre The web engine.
Entrez First promotional campaign of iZend for software editors comme extrait et les mots clés iZend web engine dans le nuage.
Appuyez sur Éditer.
Entrez Create your multimedia website in a few minutes with iZend - The web engine: https://www.izend.org comme texte du SMS.
Appuyez sur Modifier.
Affichez
le noeud.
Create your multimedia website in a few minutes with iZend - The web engine: https://www.izend.org
Git
- /izendsms.com
- blocks
- nodecontent.php
- includes
- config.inc
- views
- nodecontent.phtml
- en
- editing
- nodecontenteditor.phtml
- threadeditall.phtml
- threadeditsummary.phtml
- editing
- fr
- editing
- nodecontenteditor.phtml
- threadeditall.phtml
- threadeditsummary.phtml
- editing
- blocks
Commitez cette version :
$ git status
$ git add --update
$ git commit -m'Adds thread type campaign'
Commentaires