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(10) UNSIGNED NOT NULL,
`locale` enum('en','fr') NOT NULL DEFAULT 'fr',
`text` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `izendsms_content_sms` ADD PRIMARY KEY (`content_id`,`locale`);
ALTER TABLE `izendsms_content_sms` MODIFY `content_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;
Configuration
Dans le fichier config.inc, ajoutez le type de fil campaign
au paramètre $supported_threads
:
- global $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
:
- global $contents_model, $supported_contents, $limited_contents;
- $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), 'miniature' => array('type' => 'string', 'null' => true), 'title' => array('type' => 'string', 'null' => true), 'autoplay' => array('type' => 'boolean'), 'controls' => array('type' => 'boolean'), 'fs' => array('type' => 'boolean'), 'rel' => array('type' => 'boolean'), 'theme' => array('type' => 'enum', 'default' => 'dark')),
- // 'longtail' => array('file' => array('type' => 'string', 'null' => true), 'image' => array('type' => 'string', 'null' => true), 'width' => array('type' => 'number', 'default' => 0), 'height' => array('type' => 'number', 'default' => 0), 'icons' => array('type' => 'boolean'), 'skin' => array('type' => 'string', 'null' => true), 'controlbar' => array('type' => 'enum', 'default' => 'none'), 'duration' => array('type' => 'number', 'default' => 0), 'autostart' => array('type' => 'boolean'), 'repeat' => 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', 'longtail'
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
au sélecteur de type de fil dans la vue editing/threadeditsummary
en français et en anglais :
- <?php elseif ($type == 'campaign'): ?>
- <option value="campaign"<?php if ($thread_type == 'campaign'): ?> selected="selected"<?php endif; ?>>Campagne</option>
- <?php endif; ?>
- <?php elseif ($type == 'campaign'): ?>
- <option value="campaign"<?php if ($thread_type == 'campaign'): ?> selected="selected"<?php endif; ?>>Campaign</option>
- <?php endif; ?>
Ajoutez l'option campaign
au sélecteur de type de fil dans la vue editing/threadeditall
en français et en anglais :
- <?php elseif ($type == 'campaign'): ?>
- <option value="campaign"<?php if ($new_thread_type == 'campaign'): ?> selected="selected"<?php endif; ?>>Campagne</option>
- <?php endif; ?>
- <?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 == 'sms'): ?>
- <option value="sms" <?php echo $selected == 'sms' ? 'selected="selected"' : ''; ?>>SMS</option>
- <?php endif; ?>
Ajoute l'option sms
au sélecteur de type de contenu.
- $content_sms_text='';
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; ?>
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 echo htmlspecialchars($content_sms_text, ENT_COMPAT, 'UTF-8'); ?></textarea>
- <?php break; ?>
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.
Créez un fil du type Campagne
avec le titre Bar Foo
.
NOTE : Ce fil contient les campagnes gérées par un client. Dans le chapitre suivant, nous allons le créer automatiquement dès l'enregistrement d'un nouvel utilisateur.
Éditez le fil Bar Foo
.
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 le mot clé iZend moteur web
dans le nuage.
Ajoutez un contenu du type SMS
.
Tapez Créez votre site multimédias en quelques minutes avec iZend - Le moteur web : http://www.izend.org
comme texte du SMS.
un type # ou le #
le contenu
Affichez le noeud.
Créez votre site multimédias en quelques minutes avec iZend - Le moteur web : http://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
Commettez cette version :
$ git status
$ git add blocks/nodecontent.php includes/config.inc views/en/editing/nodecontenteditor.phtml views/en/editing/threadeditall.phtml views/en/editing/threadeditsummary.phtml views/fr/editing/nodecontenteditor.phtml views/fr/editing/threadeditall.phtml views/fr/editing/threadeditsummary.phtml views/nodecontent.phtml
$ git commit -m'Adds thread type campaign'
IMPORTANT : Éditez le connecteur à la BD défini dans le fichier includes/db.inc. Suivez les instructions dans le fichier SMS pour mettre à jour la BD.
Commentaires